MCP API
Model Context Protocol servers and per-tool authorization.
Discovery and authorization are deliberately separate steps. A newly discovered MCP tool is unauthorized until a human authorizes it, so a server that adds a tool cannot grant itself new reach.
#Endpoints
| Endpoint | Permission | Notes | |
|---|---|---|---|
GET |
/v1/mcp/servers |
mcp:read |
— |
POST |
/v1/mcp/servers |
mcp:register |
— |
POST |
/v1/mcp/servers/{serverId}/discover |
mcp:update |
— |
POST |
/v1/mcp/servers/{serverId}/tools/{toolId}/authorize |
mcp:update |
— |
POST |
/v1/mcp/servers/{serverId}/tools/{toolId}/disable |
mcp:disable |
— |
#What each endpoint does
#GET /v1/mcp/servers
List MCP servers.
Requires mcp:read.
#POST /v1/mcp/servers
Register an MCP server (starts PENDING).
Requires mcp:register.
#POST /v1/mcp/servers/{serverId}/discover
Discover tools. They stay unauthorized until approved.
Requires mcp:update.
#POST /v1/mcp/servers/{serverId}/tools/{toolId}/authorize
Explicitly authorize a discovered MCP tool.
Requires mcp:update.
#POST /v1/mcp/servers/{serverId}/tools/{toolId}/disable
Disable an MCP tool.
Requires mcp:disable.