Canopy

Connect MCP hosts

Canopy ships a single Remote MCP endpoint at:

https://mcp.trycanopy.ai/mcp

That URL is everything. claude.ai, ChatGPT, Claude Desktop, Cursor, VS Code, Zed, Cline, Windsurf, and Claude Agent SDK all consume it directly. There's no package to install and no stdio process to manage.

How to add it

Web chat — claude.ai and ChatGPT

OAuth-based. Paste the URL into the host's Custom Connectors UI and complete the consent flow.

HostPath
claude.ai (Pro / Max / Team / Enterprise)Settings → Connectors → Add custom connector
ChatGPT (Plus / Pro / Team / Enterprise, Developer Mode on)Settings → Apps & Connectors → Advanced settings → Developer mode → Connectors → Create

The consent screen lets you pick (or auto-create) which Canopy agent the connector spends as. Every payment that connector triggers is attributed to that agent in your dashboard.

Desktop / IDE hosts — Claude Desktop, Cursor, VS Code, Zed, Cline, Windsurf

These hosts speak HTTP MCP. Add this mcpServers block to the host's config (replace the placeholders with the API key and agent id from Dashboard → Agents → Connect agent):

{
  "mcpServers": {
    "canopy": {
      "type": "http",
      "url": "https://mcp.trycanopy.ai/mcp",
      "headers": {
        "Authorization": "Bearer ak_live_xxxxxxxxxxxxx",
        "X-Canopy-Agent-Id": "agt_xxxxxxxx"
      }
    }
  }
}

Per-host config locations

HostConfig file
Claude Desktop (macOS)~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop (Windows)%APPDATA%\Claude\claude_desktop_config.json
Cursor (global)~/.cursor/mcp.json
Cursor (workspace)<workspace>/.cursor/mcp.json
VS CodeWorkspace .vscode/mcp.json (with appropriate Copilot settings)
Zed~/.config/zed/mcp.json
Cline / WindsurfSettings → MCP Servers (UI), or the equivalent JSON file

After saving the config, restart the host. The Canopy tools (canopy_pay, canopy_check_url, canopy_discover_services, canopy_approve, canopy_deny, …) appear in the host's tool palette.

Programmatic — Claude Agent SDK

If you're building a TypeScript agent on top of @anthropic-ai/claude-agent-sdk, see the dedicated Claude Agent SDK guide. Same URL, configured inside query({ options: { mcpServers: ... } }).

What's available

The remote MCP exposes ten tools — the full Canopy surface, identical to every other connection method:

canopy_pay, canopy_preview, canopy_check_url, canopy_get_approval_status, canopy_wait_for_approval, canopy_ping, canopy_get_budget, canopy_approve, canopy_deny, canopy_discover_services.

See the MCP tools reference for per-tool details.

Authentication

  • Web chat (claude.ai, ChatGPT): OAuth 2.1 with Dynamic Client Registration. Each connector binds to a specific agent at consent time.
  • Programmatic (Claude Desktop, Cursor, IDEs, Claude Agent SDK): Bearer-token auth using your existing org API key (ak_live_…) plus an X-Canopy-Agent-Id header. Same headers the SDK uses.

Either path produces the same observable behavior in your dashboard's activity feed.