Install Harbor through the supported client flow.

Use the dashboard install guide for agent handoff, or install the Harbor CLI and sign in locally. Remote MCP install endpoints are not advertised from this page.

Dashboard install

Workspace-aware setup for supported coding agents.

The dashboard generates the current handoff instructions for your selected workspace and keeps setup tied to Harbor auth.

Open install guide

Harbor CLI

Local hrbr command surface for auth, plugins, runs, and skills.

npm install -g @zonko-ai/harbor
hrbr login

Harbor is a Cloudflare-native MCP control plane that gives AI agents access to your connected workspace tools. To connect a coding agent, open the dashboard install guide at /dashboard/install, pick your client (Claude, Cursor, Windsurf, ChatGPT), and paste the generated configuration. For local development, install the hrbr CLI with npm install -g @zonko-ai/harbor and sign in with hrbr login. Harbor’s first-party remote MCP server lives at https://mcp.tryharbor.ai/mcp and uses OAuth 2.1 with PKCE.

How do I connect Harbor to ChatGPT, Claude, Cursor, or Windsurf?

Use the in-product install guide. Sign in to Harbor, open /dashboard/install, and select your client. The dashboard renders a workspace-aware configuration block for that client and explains exactly where to paste it.

Generated configs are bound to the workspace you have selected, so the credentials, plugins, and tool grants the agent sees are the ones that workspace has authorized. The install guide is the only setup path the public site advertises; remote MCP install URLs are intentionally not surfaced from this page so that workspace selection always happens through the dashboard.

What is the Harbor MCP server URL?

Harbor exposes itself as a first-party MCP server at https://mcp.tryharbor.ai/mcp. Auth is OAuth 2.1 with PKCE — there is no static API key and no shared bearer token.

When you connect an MCP client, the client redirects through Harbor’s authorization layer (WorkOS / AuthKit), you pick a workspace, and the client receives a workspace-scoped token. The remote endpoint exposes two protocol tools: inspect(workspace and control-plane reads — auth status, source list, tool search, workspace switch) and exec (traced TypeScript execution against your workspace’s plugins, with hrbr.* runtime primitives in scope). Local stdio access uses the same split: hrbr serve mcp boots the cli-mcp adapter from packages/sdk/cli-mcp with those same two tools.

How does Harbor handle OAuth for connected tools?

Every plugin connection is scoped to a workspace, not a user profile. OAuth tokens are stored encrypted at rest in Cloudflare KV / Secrets Store and decrypted in-memory only when the workspace requests a tool call.

OAuth is the floor, not the ceiling: beyond the provider’s consent screen, Harbor asks you to authorize each tool — or pattern of tools — before an agent can invoke it. You can review, narrow, or revoke these grants from the dashboard, and revocation takes effect immediately for subsequent calls. Every invocation is recorded as a run with spans for tool dispatch, sandbox stdout/stderr, plugin calls, and orbit access.

What MCP clients does Harbor support today?

The in-product install guide ships configuration generators for the major MCP clients. Any standards-compliant MCP client that supports OAuth 2.1 + PKCE will work with the remote endpoint.

  • Claude Desktop— Anthropic’s local desktop client. Configured via claude_desktop_config.json.
  • Claude Code— Anthropic’s CLI agent. Loads Harbor as an MCP server and pulls bundled skill files.
  • Cursor— via the editor’s MCP settings.
  • Windsurf— Codeium’s agent IDE.
  • Codex CLI and Gemini CLI— setup guides live at the Codex CLI guide and the Gemini CLI guide.
  • mcp-inspector— the standard MCP protocol-inspection tool works against mcp.tryharbor.ai/mcp for debugging.
  • ChatGPT desktop app— Harbor exposes itself as an HTTPS MCP endpoint at https://mcp.tryharbor.ai/mcp. Add it in the ChatGPT desktop app under Settings → Connectors → MCP and complete the OAuth 2.1 + PKCE handshake against your workspace. See the Harbor install entrypoint for the current setup flow.

Can I use Harbor with a self-hosted agent?

Yes. Harbor supports two ingress paths for self-hosted or custom agents: remote MCP over HTTP and local stdio via hrbr serve mcp.

  1. Remote MCP over HTTP. Point your agent at https://mcp.tryharbor.ai/mcp. Standard MCP transport (SSE / streamable HTTP). OAuth 2.1 + PKCE handles auth.
  2. Local stdio via hrbr serve mcp.Run the CLI’s bundled cli-mcp adapter (packages/sdk/cli-mcp) and point your agent at the stdio endpoint. This is the lowest-latency path for an agent running on the same machine and uses the same inspect / exec split as the remote endpoint.

Either ingress lands in Harbor’s execution layer: source resolution against your workspace, MCP client pooling, sandbox isolate execution via the codemode worker runtime, and orbit.* runtime primitives inside hrbr exec.

Install Harbor in your AI client.

The dashboard install guide at /dashboard/installgenerates workspace-bound configuration for each supported client. The snippets below show the shape of that configuration so you know what to expect — substitute {{mcpUrl}} with the URL the dashboard emits for your workspace, or use https://mcp.tryharbor.ai/mcp for the shared first-party endpoint.

Claude Desktop

Claude Desktop loads MCP servers from claude_desktop_config.json. On macOS that file lives at ~/Library/Application Support/Claude/claude_desktop_config.json and on Windows at %APPDATA%\Claude\claude_desktop_config.json. Add Harbor under mcpServers using the mcp-remote bridge so the OAuth 2.1 + PKCE handshake completes in the browser the first time you launch the app. Restart Claude Desktop after editing, then approve Harbor from the connector list.

json
{
  "mcpServers": {
    "harbor": {
      "command": "npx",
      "args": ["mcp-remote", "https://mcp.tryharbor.ai/mcp"]
    }
  }
}

Cursor

Cursor 0.42 and later supports MCP servers through ~/.cursor/mcp.json (global) or .cursor/mcp.json (per-project). The fastest path is Settings → MCP → Add new MCP server from inside the editor — paste the JSON below, save, and approve the connector when Cursor prompts. Harbor will appear in the MCP tool list for every chat in that workspace and the OAuth flow opens in your browser the first time the connector is used.

json
{
  "mcpServers": {
    "harbor": {
      "url": "https://mcp.tryharbor.ai/mcp"
    }
  }
}

Windsurf

Windsurf manages MCP servers through Settings → Cascade → MCP servers. The exact on-disk config path is owned by Windsurf and may change between releases — the in-product editor is the source of truth. Add Harbor with the JSON shape below; Windsurf will validate the entry, persist it, and surface Harbor’s tools in Cascade after a restart. See the Windsurf MCP docs if the UI labels move.

json
{
  "mcpServers": {
    "harbor": {
      "serverUrl": "https://mcp.tryharbor.ai/mcp"
    }
  }
}

ChatGPT

ChatGPT connects to Harbor as a remote MCP connector — there is no local command to install. In the ChatGPT desktop app open Settings → Connectors → MCP, choose Add MCP server, and point it at Harbor’s endpoint. ChatGPT runs the OAuth 2.1 + PKCE handshake against Harbor’s authorization layer, you pick a workspace, and ChatGPT receives a workspace-scoped token. The connector then exposes Harbor’s inspect and exec tools to that ChatGPT session.

text
https://mcp.tryharbor.ai/mcp

Codex CLI

OpenAI’s Codex CLI manages MCP servers through its own subcommand. Run the command below and Codex will write the connector into its local config, prompt for OAuth, and bind Harbor to your selected workspace. The next Codex session will list Harbor under available MCP tools — ask it to list Harbor tools to confirm the connection. The same pattern works for any CLI agent that ships an mcp add subcommand (Claude Code, OpenCode); see the Codex CLI guide for the workspace-aware flow.

bash
codex mcp add harbor https://mcp.tryharbor.ai/mcp

Local stdio via hrbr serve mcp

For the lowest-latency path on the same machine, run Harbor’s bundled stdio adapter and point any MCP client at it directly. After npm install -g @zonko-ai/harbor and hrbr login, the command below boots the cli-mcp adapter from packages/sdk/cli-mcp with the same inspect and exec tools the remote endpoint exposes. Wire it into any client that accepts a command / args stdio entry by swapping the remote URL block for the stdio shape below.

json
{
  "mcpServers": {
    "harbor": {
      "command": "hrbr",
      "args": ["serve", "mcp"]
    }
  }
}