REFERENCE · CONNECT

Point your agent at Preston.

Preston is one MCP server, reached over HTTPS at a single endpoint. Any MCP-capable agent can use it — the setup is the same three facts everywhere: the endpoint, a bearer key, and the one line of config your client wants them in. Below is that line for each client. Reads are reflexive and never ask; only request_review confirms first.

POST https://api.preston.bot/mcp
Authorization: Bearer <PRESTON_API_KEY>

The host shown is the production default. <PRESTON_API_KEY> is a placeholder — an account admin mints the real one in the app under Settings → API keys. The key is shown once at mint; paste it wherever the placeholder appears below.

NATIVE
speaks remote HTTP MCP directly.
BRIDGED
stdio-only — reaches Preston through mcp-remote.

A native client takes the endpoint and a header as-is. A bridged client can only spawn a local command, so it reaches Preston through mcp-remote — a small proxy (run via npx) that turns the HTTP endpoint into the local server the client expects, and forwards the key. You never install it; npx fetches it on first run.

Claude Codenativeone shell command

Adds Preston as an HTTP MCP server, key and all, in a single command — no file to edit.

claude mcp add --transport http preston \
  https://api.preston.bot/mcp \
  --header "Authorization: Bearer <PRESTON_API_KEY>"

Run it in the repo you want the agent to work in. claude mcp list confirms it registered.

Cursornative~/.cursor/mcp.json

Cursor speaks remote MCP directly — point it at the endpoint and carry the key in a header.

{
  "mcpServers": {
    "preston": {
      "url": "https://api.preston.bot/mcp",
      "headers": { "Authorization": "Bearer <PRESTON_API_KEY>" }
    }
  }
}

Global at ~/.cursor/mcp.json, or per-project at .cursor/mcp.json in the repo root.

Claude Desktopbridgedclaude_desktop_config.json

Bridged through mcp-remote — the most reliable path for a static-key server on current builds.

{
  "mcpServers": {
    "preston": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote",
        "https://api.preston.bot/mcp",
        "--header", "Authorization: Bearer <PRESTON_API_KEY>"
      ]
    }
  }
}

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json — restart the app after saving. Newer builds can instead add Preston under Settings → Connectors as a custom connector.

Codexbridged~/.codex/config.toml

Codex's config is TOML and it spawns local processes only, so mcp-remote bridges to the HTTP endpoint.

[mcp_servers.preston]
command = "npx"
args = ["-y", "mcp-remote", "https://api.preston.bot/mcp", "--header", "Authorization: Bearer <PRESTON_API_KEY>"]

The mcp-remote bridge is what lets a stdio-only client reach a remote server at all.

Claude Agent SDKnativemcpServers config

The exact server shape the Preston CLI hands any Claude-compatible client — verified against the wiring.

{
  "mcpServers": {
    "preston": {
      "type": "http",
      "url": "https://api.preston.bot/mcp",
      "headers": { "Authorization": "Bearer <PRESTON_API_KEY>" }
    }
  }
}

The rule generalizes. If your client speaks remote MCP, give it the endpoint and the Authorization header. If it only spawns local commands, wrap the endpoint in the bridge:

npx -y mcp-remote https://api.preston.bot/mcp --header "Authorization: Bearer <PRESTON_API_KEY>"

Your client’s own MCP docs are the final word on where its config lives and what keys it expects — these are the current forms, not a contract each vendor owes you.

Once connected, make one read to ground the agent. New here? Call start_here — it returns a short guided first session built from what this team has climbed. Already know the repo? Call orient with a repo for the session briefing. Both are read-only and require no confirmation.

the endpoint and the auth header are read straight off Preston’s own wiring. the per-client config is each client’s documented MCP surface — verified where this repo can, deferred to the vendor where it can’t. nothing here is invented.