Available connectors
Notion
Notion workspace access via
notion-mcp-server.Needs: an integration token from
notion.so/profile/integrationsAllows: api.notion.comConfluence
Atlassian Confluence access via
mcp-atlassian-confluence.Needs: site name, account email, and an API token from
id.atlassian.comAllows: <your-site>.atlassian.netairlock/base image, so there is
nothing to install inside the sandbox.
What setup writes
airlock setup mcp prompts for each credential (token input is hidden) and
then writes to exactly three places:
1
Credentials → ~/.airlock/secrets.toml
Stored outside every repo, keyed by connector name, with file mode
0600.
Credentials are never written into the repo.2
Enable flag → .airlock.toml
Adds the connector to
[mcp] enable so the sandbox knows to wire it up.3
Server registration → .mcp.json
Adds the server command under
mcpServers so Claude Code auto-detects it.
No credentials go in this file — the server inherits its environment from
the sandbox.How credentials reach the server
Nothing is baked into.mcp.json. At sandbox start, Airlock reads the stored
secrets and injects them as environment variables that the stdio MCP server
reads:
If a credential is missing, Airlock prints a warning naming the connector and
the missing field, and starts the sandbox without it rather than failing.
Domains are derived, not guessed
Each connector declares the domains it needs, and Airlock adds only those to the egress allowlist. Confluence declares{site}.atlassian.net, and the {site}
placeholder is filled in from your stored credential — so the allowlist ends up
containing your specific site, not all of Atlassian. A domain whose placeholder
cannot be resolved is dropped rather than allowed broadly.
Enabling by hand
You can skip the prompts and edit policy directly:.airlock.toml
~/.airlock/secrets.toml — run
airlock setup mcp at least once per connector, or write the file yourself.

