MCP Server & AI Agents
The platform also exposes its read-only account lookups — the same ones the AI Assistant uses — to external AI tools over MCP (the Model Context Protocol), so an agent running in your own editor or desktop app can answer questions about your organizations, bandwidth, limits, projects, resources, and deployments without you switching to the dashboard.
Point any MCP-capable client at:
https://api.d2o.io/mcp
For self-hosted d2o, use the MCP address supplied by your operator. The hosted dashboard address does not serve this endpoint. See hosted addresses.
Authenticating
The MCP endpoint accepts only a paas_ API token as a Bearer credential — the same kind of token the CLI uses, and the same one from paas auth tokens list. It does not accept a dashboard session cookie. Get one by signing in with the CLI and printing it:
paas login --host https://dashboard.d2o.io
paas auth token
See Account, SSH Keys & API Tokens for managing and revoking tokens.
Configure your MCP client with the URL and an Authorization: Bearer header carrying the token. The exact configuration file depends on your client, but the shape is generally:
{
"mcpServers": {
"d2o-paas": {
"url": "https://api.d2o.io/mcp",
"headers": {
"Authorization": "Bearer paas_xxxxxxxxxxxxxxxxxxxx"
}
}
}
}
Treat the token like a password — anyone who has it can act with your account permissions through the API. MCP tools are read-only; that restriction does not narrow the token’s access to other API routes.
If the request has no token, or an invalid one, the endpoint replies 401 Unauthorized with a WWW-Authenticate: Bearer header rather than any account data.
What it can do
The same tools the AI Assistant uses are available here: list your organizations, look up bandwidth and plan-limit usage, list projects and resources, review recent deployments, and search the documentation. Every call runs as the token’s owner, through the same permission checks as the rest of the API — an agent can never see more through MCP than you could see yourself. It is read-only: there is no tool to deploy, scale, or change anything.
Protocol details
The server speaks MCP’s streamable HTTP transport as a stateless JSON endpoint: it does not pin a session to a connection, and it answers with a plain JSON response rather than an event stream. This means it works cleanly behind an ordinary load balancer and with simple HTTP-based MCP clients.
If your MCP client can’t reach /mcp on a self-hosted installation, ask whoever operates it to check the server’s allowed-hosts configuration.
Next steps
- AI Assistant — the same lookups, from the dashboard
- Account, SSH Keys & API Tokens — creating and revoking API tokens
- CLI Overview & Authentication — signing in and getting a token