Skip to content

MCP Setup

DockPod runs a Model Context Protocol server so Claude, Cursor, or any other MCP-compatible AI client can inspect and manage your containers directly from a conversation.

Why a Separate Port

The MCP server listens on its own port (--mcp-addr, default :8090), separate from the main web UI/API port. This isn't incidental — MCP's SSE transport needs a connection that stays open and streams chunks as they're produced, and Fiber's fasthttp-based Flush() is a no-op under the hood, which silently buffers everything until the handler returns. Running MCP on a dedicated net/http.Server avoids that entirely.

1. Generate an API Key

Go to Settings → API Keys → Generate key, give it a name (e.g. "Claude Desktop"), and copy the key immediately — it's shown only once, in the form dp_mcp_xxxxxxxxxxxxxxxxxxxx.

2. Configure Your MCP Client

Claude Code (the CLI) supports remote SSE servers natively:

bash
claude mcp add --transport sse DockPod http://your-server:8090/sse \
  -H "Authorization: Bearer dp_mcp_xxxxxxxxxxxxxxxxxxxx"

Claude Desktop does not support a bare url/headers entry in claude_desktop_config.json — its config schema only accepts stdio servers (command/args/env). Bridge it with mcp-remote:

json
{
  "mcpServers": {
    "DockPod": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://your-server:8090/sse",
        "--header",
        "Authorization:${AUTH_HEADER}"
      ],
      "env": {
        "AUTH_HEADER": "Bearer dp_mcp_xxxxxxxxxxxxxxxxxxxx"
      }
    }
  }
}

Replace your-server with your DockPod host, and use the port you configured with --mcp-addr if you changed it from the default. Fully quit and reopen Claude Desktop after editing the config for it to take effect.

3. Try It

In your AI client's conversation:

"List all my running containers" "Show logs for nginx" "Deploy my-app"

See Available Tools for the full list and which tier each requires.

Released under a commercial-friendly freemium license.