Platform MCP API¶
Note
This feature is available with the Robusta SaaS platform and self-hosted commercial plans. It is not available in the open-source version.
Robusta exposes a Model Context Protocol (MCP) server that lets any MCP client — Claude Code, Claude Desktop, or your own agent — run cross-cluster investigation tools against every cluster connected to your account.
POST https://api.robusta.dev/api/platform-mcp¶
A standard MCP Streamable HTTP endpoint. It accepts the usual MCP JSON-RPC methods (initialize, tools/list, tools/call) as a single request or a batch.
Enabling external access¶
Cross-cluster tool calls from an external MCP client are opt-in per account. Turn on Robusta MCP Server Enabled under Settings → AI Assistant → MCP Server Settings before an API key can list or call any remote_* tool. It is off by default.
Authentication¶
Send your Robusta API key as a Bearer token, with your account ID as the first word:
Authorization: Bearer <ACCOUNT_ID> <API_KEY>
The key must have the Robusta AI: Write permission. You can generate this token in the platform by navigating to Settings -> API Keys -> New API Key, and creating a key with the "Robusta AI" resource and "Write" permission.
Header |
Description |
|---|---|
|
|
Example Request¶
A real MCP client opens every session with the standard initialize / notifications/initialized handshake before calling any tool method. The endpoint itself is stateless — it does not issue or check a session ID between requests — but showing the full sequence here keeps this example valid input for any spec-compliant MCP client, not just this server.
curl -X POST 'https://api.robusta.dev/api/platform-mcp' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json, text/event-stream' \
--header 'MCP-Protocol-Version: 2025-03-26' \
--header 'Authorization: Bearer ACCOUNT_ID API-KEY' \
--data '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2025-03-26",
"capabilities": {},
"clientInfo": {"name": "example-client", "version": "1.0.0"}
}
}'
curl -X POST 'https://api.robusta.dev/api/platform-mcp' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json, text/event-stream' \
--header 'MCP-Protocol-Version: 2025-03-26' \
--header 'Authorization: Bearer ACCOUNT_ID API-KEY' \
--data '{
"jsonrpc": "2.0",
"method": "notifications/initialized"
}'
curl -X POST 'https://api.robusta.dev/api/platform-mcp' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json, text/event-stream' \
--header 'MCP-Protocol-Version: 2025-03-26' \
--header 'Authorization: Bearer ACCOUNT_ID API-KEY' \
--data '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list"
}'
MCP client configuration¶
For Claude Code:
claude mcp add --transport http robusta-platform \
"https://api.robusta.dev/api/platform-mcp" \
--header "Authorization: Bearer ACCOUNT_ID API-KEY"
For Claude Desktop or any generic MCP client (mcp.json):
{
"mcpServers": {
"robusta-platform": {
"type": "http",
"url": "https://api.robusta.dev/api/platform-mcp",
"headers": {
"Authorization": "Bearer ACCOUNT_ID API-KEY"
}
}
}
}
What an API key can call¶
An API key is treated as an external caller and can only reach the cross-cluster remote_* tools (for example, listing available clusters and dispatching a tool call to one of them). It cannot call the static Slack, Teams, or incident-triage tools — those are reserved for Holmes' own internal use of this endpoint.
Calls run with the RBAC of the user who created the API key, not as an account-wide superuser: a key only reaches the clusters and namespaces its owner can already access. Deleting or demoting that user's access also narrows what the key can do.
Rate limits and errors¶
Status |
Error |
Description |
|---|---|---|
401 |
Unauthorized |
Missing/malformed |
429 |
Too Many Requests |
Rate limit exceeded. Each actual tool call (not |
500 |
Internal Server Error |
Unhandled error while processing the request. |
See Also¶
Holmes Chat API — for a single-turn "ask Holmes a question" REST API instead of a full MCP tool session.