Connect

Connect a host

Connecting is the same idea on every host: register an MCP server named theorymcp pointed at your namespace route, then complete OAuth. Only two things ever change — where the host reads MCP config, and how it performs (or can’t perform) the OAuth flow.

Confirm the route first

The route is server-owned authority. Don’t synthesize it, and don’t treat a route you guessed as if it grants anything — it resolves your namespace identity, entitlement, and what is installable. Confirm the exact route with whoever owns the namespace before wiring it in.

codex

codex performs MCP OAuth natively. In .codex/config.toml:

[mcp_servers.theorymcp]
url            = "https://theorymcp.ai/theorycloud/mcp"
oauth_resource = "https://theorymcp.ai/theorycloud/mcp"
scopes         = ["mcp:tools", "ai.kb.query"]

Then authenticate (a browser window opens for you to approve). codex mcp login takes the configured server name, not the URL:

codex mcp login theorymcp

Scopes for agent memory

The scopes above (mcp:tools, ai.kb.query) cover namespace tools and knowledge queries. If you pin scopes by hand for an agent endpoint and want the agent to write memory, also include memory.append — otherwise memory_append calls fail closed. On routes where scopes aren’t pinned manually, the route’s default scope set already covers this.

Claude Code

Claude Code reads project MCP config only from the repo root .mcp.json and performs MCP OAuth natively:

{
  "mcpServers": {
    "theorymcp": {
      "type": "http",
      "url": "https://theorymcp.ai/theorycloud/mcp"
    }
  }
}

Then authenticate from inside Claude Code: open /mcp, select theorymcp, and complete the browser OAuth.

Antigravity

Antigravity speaks stdio MCP but cannot perform the MCP OAuth flow itself, so it reaches the route through the mcp-remote stdio bridge. In .agents/mcp_config.json:

{
  "mcpServers": {
    "theorymcp": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://theorymcp.ai/theorycloud/mcp"]
    }
  }
}

The bridge terminates OAuth in a browser on first connect and proxies authenticated requests afterward. See The mcp-remote bridge for setup and troubleshooting.

A copyable prompt

If your host already has the steward skills (this repo ships them), you can just ask:

Configure this workspace's theorymcp MCP server to point at
https://theorymcp.ai/theorycloud/mcp for <codex | claude_code | antigravity>.
Set the route in the right host config, walk me through authentication, then verify the
connection by grounding (describe_interface). Do not invent the route — use exactly the one above.

After you connect

Pitfall What happens Fix
Dashes in the server name codex rejects a dashed MCP server id Keep it theorymcp (and host/client names use underscores, e.g. claude_code)
Claude Code MCP config in a subfolder not picked up It must live in the repo root .mcp.json
Antigravity configured as plain HTTP OAuth never completes Route it through mcp-remote (see the bridge page)
Token for one route used on another tools missing / access denied Authorize each route you use — OAuth is route-scoped

Connected? Always ground next, then go use a namespace or an agent MCP.