Deplo

REST and MCP

Beta

The handful of endpoints that stay outside GraphQL: binary upload, log streams, the MCP server and the deploy hook.

A few endpoints stay REST because GraphQL is the wrong transport for them: binary upload and long-lived byte streams.

Prop

Type

MCP server

AI agents reach Deplo at POST /api/mcp, speaking the Model Context Protocol, revision 2026-07-28. This is the wire-protocol reference; for setup and the token-driven security model, see MCP server.

Beta

It works and is gated like everything else, but the spec revision is new and the tool surface will move. It is a different framing of this same API, not a second one: each tool runs a GraphQL document in-process as the caller's own principal, so every capability gate, folder grant, token scope and 2FA policy applies identically.

Authentication is the ordinary API token, there is no MCP-specific credential:

claude mcp add --transport http deplo https://deplo.example.com/api/mcp \
  --header "Authorization: Bearer deplo_your_token" \
  --header "X-Deplo-Team: acme"

The protocol is stateless (no session, no initialize handshake). Every call runs in one team: the default is chosen by X-Deplo-Team when the agent is connected, and every tool takes an optional team argument (id or slug) to work in another; list_teams names the ones the connection can act in. tools/list returns only the tools the token can actually call. A 403 means the team has switched MCP off (Settings -> MCP Server, needs manage_team) or the token's owner lacks manage_mcp there; a 429 means the per-token rate limit.

No tool can reveal a secret, whatever capabilities the token holds: list_env shows keys with masked values and there is no reveal_env. That holds for graphql_query and graphql_mutate too, the two tools that run a query the agent wrote: they refuse by name any field that returns a credential or runs a command in a container. Everything else the token's capabilities allow, it can do, Deplo adds no confirmation step of its own. Destructive tools carry destructiveHint in tools/list, which is what makes an MCP client ask its own user first.

Deploy hook

The deploy hook (POST /api/apps/[id]/deploy-hook/[token]) has moved to its own page: see Deploy hook for the request, response and error codes.

See also

Did this page help you?

On this page