Skip to main content

Prerequisite

Sign in once at app.pome.sh. This provisions your Pome user and workspace/team. Runs, quota, and billing land on that team.

Auth model

Auth is Clerk MCP OAuth — there is no manual API key to paste. An unauthenticated request gets 401 with a WWW-Authenticate header pointing at the OAuth protected-resource metadata. Modern clients discover this, self-register (dynamic client registration is enabled), and pop the Clerk consent screen. After you consent, the tools appear.

Interactive clients

Claude Code, Claude Desktop, and claude.ai only need the server URL:
No headers or keys are needed — auth is OAuth, handled by the client’s consent flow. The Claude Code CLI equivalent:

Headless / managed agents

If there’s no browser available, complete the OAuth flow once, interactively, with the target Pome account. Store the resulting OAuth credentials/refresh token in the agent platform’s credential vault, scoped to the Pome connector. Verify by having the agent call get_started. A 401 means the interactive mint needs to be redone.

Verify the connection

The first thing the agent should do is call get_started, then get_platform_context to confirm identity, team, and quota headroom. Quota exhaustion returns HTTP 402, never 429.

Revocation

Authorization is the Clerk OAuth grant. To disconnect:
  • Revoke the OAuth application/grant in the Clerk dashboard, or
  • Remove the user from the Pome team (~30s cache TTL).
Revoking the managed pme_ key in app.pome.sh does not disconnect the MCP — the server re-mints it on the next call.
This MCP is the coach surface. It does not run twins itself. See Workflow for how the coach launches an examinee.