MCP Auth and Scopes
Every AutoCISO MCP call authenticates with a bearer token. This page is the canonical reference for creating MCP tokens, the mcp:read and mcp:write scopes, and how your org is bound to the token.
Create a token
- Go to Settings → API Tokens.
- Click New token.
- Give it a name that identifies the client (e.g.,
mcp-claude-desktop). - Select the scopes you need:
mcp:read— read access to all 22 read tools.mcp:write— adds therisk_create_drafttool. Write implies read.
- Click Create and copy the token immediately — it’s only shown once.
Scopes
| Scope | Grants | Notes |
|---|---|---|
mcp:read | All 22 read tools | The default for AI clients |
mcp:write | risk_create_draft plus all reads | Also gated by org-level write enablement |
About mcp:write
mcp:write is required for the one write tool, risk_create_draft. A token without it — or an org with write disabled — returns NOT_PERMITTED when the tool is called. This is expected behavior, not an error in your code. See MCP Errors and Retries.
Org binding — no org_id from the client
Your organization is bound to the token on the server. You never pass an org identifier:
- There is no
org_idargument on any tool and noX-Org-IDheader for normal tokens. - The SDK method signatures don’t accept an org parameter — there is no way to query another tenant.
This is least-privilege by design. Issue one token per client so you can revoke a single integration without affecting the others.
Using the token
Send the token in the Authorization header on every request:
curl -s \
-H "Authorization: Bearer $AUTOCISO_MCP_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' \
"https://autociso.io/mcp" Token lifecycle
- Revoke a token from Settings → API Tokens when a client is decommissioned.
- If a token leaks, revoke it immediately and issue a new one.
- Because each client uses its own token, revocation is surgical — only the leaked client loses access.
Last reviewed: 2026-09-09
Was this page helpful?