MCP clients
An agent reaches its mission through the instance's execution door, https://your-domain/mcp, over MCP's HTTP transport, with the mission key as a bearer token; any MCP client that can send an Authorization header works the same way.
Never run with Claude Code as the agent yet. The project's suites drive both doors with the official MCP client; no person has yet pointed Claude Code at a running instance (known limitations). The configurations below follow each client's documentation.
Keep the key in an environment variable, VAUBAAN_MISSION_TOKEN, set where the client runs; the configuration only refers to it.
Claude Code
Put the kit's entry in the project's .mcp.json; Claude Code expands ${VAUBAAN_MISSION_TOKEN} from the environment:
{
"mcpServers": {
"vaubaan": {
"type": "http",
"url": "https://your-domain/mcp",
"headers": { "Authorization": "Bearer ${VAUBAAN_MISSION_TOKEN}" }
}
}
}
Do not commit a .mcp.json that holds the secret itself.
Cursor
Cursor reads .cursor/mcp.json in the project; it writes an environment variable as ${env:NAME}:
{
"mcpServers": {
"vaubaan": {
"url": "https://your-domain/mcp",
"headers": { "Authorization": "Bearer ${env:VAUBAAN_MISSION_TOKEN}" }
}
}
}
Any other client
- Endpoint:
https://your-domain/mcp, MCP over HTTP (POST). - Header:
Authorization: Bearerfollowed by the mission key. tools/listreturns the tools of the mission's services;GET https://your-domain/mcp/catalogwith the same header says whose key it is, the mission's resources and permissions.
Check a key from a shell:
curl -sS https://your-domain/mcp \
-H "Authorization: Bearer $VAUBAAN_MISSION_TOKEN" \
-H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
The kit printed with the key carries this command for your instance.
Several agents on one key
An orchestrator hands its sub-agents the same configuration, same endpoint and same key — never a key per agent. Each agent names itself with the header X-Vaubaan-Agent: <label> in its copy of the configuration, or with _meta.agent on each tools/call when one process sends the calls of several agents. The label appears in the activity; it is attribution only, never an identity, and no decision reads it.
Which tools are listed
Every tool of a service for which the mission holds an account and at least one permission is listed; a listed tool whose own permission the mission does not hold is refused with risk-not-accepted when called. Tools of an experimental plugin are never listed.