MCP · Setup

Connecting clients

For MCP-aware clients, "connecting" is one config block. The client handles OAuth + DCR automatically. Per-client setup pages live under Agents; this page is the protocol-side overview.

The config block (every client)

Most MCP clients accept a JSON config snippet describing each MCP server. For Dock:

{
  "mcpServers": {
    "dock": {
      "url": "https://trydock.ai/api/mcp"
    }
  }
}

That's it. On first use, the client triggers the OAuth flow in your browser, you sign in, you're connected. No API key paste, no client_id registration.

Per-client setup pages

Exact config-file paths + verification commands for each supported client live in the Agents book:

Browse the Agents book for the full list (54 entries).

Verifying the connection

Once configured, ask the client to list available tools. You should see Dock's 63 tools (list_workspaces, create_row, etc.) in the result.

From the CLI:

# Lists every tool the MCP server exposes
dock mcp tools list

Troubleshooting

  • OAuth flow doesn't open browser: some terminal-only clients can't open URLs. Either paste the URL manually or set DOCK_API_KEY for headless auth (see the per-client page).
  • Tools list is empty: token expired, re-authorize via the client's reconnect flow.
  • 403 on tool call: the scope wasn't granted during OAuth. Disconnect and reconnect, granting the missing scope.
  • Confirm-token errors on upgrade/downgrade: expected. See dangerous-ops handshake.

Frequently asked questions

Which MCP clients work with Dock?
54 covered with full setup guides at `/docs/agents/*`. Native: Claude Code, Claude Desktop, Claude.ai web, ChatGPT, Cursor, Windsurf, Zed, Continue, Cline, Aider, Codex, GitHub Copilot, JetBrains AI. Frameworks, Local UIs, Builders, No-code (n8n, Zapier, Dify, Flowise, Langflow), and From-scratch SDKs. Learn more →
Does ChatGPT work with Dock's MCP server?
Yes, on Plus / Team / Enterprise tiers. Settings → Connectors → Add MCP Server, paste `https://trydock.ai/api/mcp`. ChatGPT auto-registers via Dock's `/api/oauth/register` (DCR) and opens a browser for OAuth consent.
Does Claude Code work with Dock's MCP server?
Yes. `claude mcp add dock --transport http https://trydock.ai/api/mcp`. Claude Code's built-in OAuth 2.1 + DCR handles auth (no key ceremony). Bearer-token auth via `--header` is also supported for owned-code agents.
Does Cursor work with Dock's MCP server?
Yes. Cursor Settings → MCP → Add new MCP Server, URL `https://trydock.ai/api/mcp`, paste your `dk_` Bearer. Restart Cursor; the 43 Dock tools appear in the chat panel via the standard `tools/list` handshake.
Does Claude Desktop work with Dock's MCP server?
Yes. Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or the equivalent Windows path. Add Dock under `mcpServers.dock` with `url: https://trydock.ai/api/mcp` and the Bearer header. Quit and relaunch Claude Desktop.
Can I use Dock with Windsurf?
Yes. Windsurf Settings → MCP → Add Server, URL + Bearer. Restart Windsurf and the Dock tools appear in Cascade chat. Same protocol, same tool catalog.
Can I use Dock with Zed?
Yes. Zed reads MCP servers from settings.json under `assistant.context_servers.dock`. Set `command` type to HTTP, URL `https://trydock.ai/api/mcp`, headers with the Bearer. Reload Zed.
Can I use Dock from a Python agent without a framework?
Yes. Use the MCP Python SDK to connect to `https://trydock.ai/api/mcp` with Bearer auth. Or hit Dock's REST API directly with `httpx` (skip MCP entirely if you don't need tool-discovery semantics). Learn more →
Can I use Dock from Node.js without a framework?
Yes. Use the MCP TypeScript SDK with `StreamableHTTPClientTransport` pointing at `/api/mcp`. Or use native `fetch` against Dock's REST API for simpler use cases. Both work in Node, Bun, and edge runtimes. Learn more →
Does my MCP client need OAuth or is dk_ Bearer enough?
Either works. OAuth 2.1 + DCR is the recommended path for third-party MCP hosts (Claude Desktop, ChatGPT, Cursor, Windsurf). Bearer (`dk_`) is fine for owned-code agents (CI, scripts, custom Python/Node). Pick whichever fits your runtime.
Updated