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

Every client needs the same two facts — the name pome and the URL https://mcp.pome.sh/mcp. No headers and no keys: auth is OAuth, handled by the client’s own consent flow. This is the page that carries the per-client wiring; the rest of the docs link here rather than repeating it.

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.

Disconnecting

What you can do yourself: remove the pome server from your MCP client. That is the whole of the client side — the entry goes, the client stops calling, and nothing on your machine holds a Pome credential afterwards, because the OAuth flow never gave you a key to store. What you have to ask us for: revoking the grant itself. The authorization is an OAuth grant held by our Clerk instance, and today there is no self-serve surface for it — app.pome.sh has no “authorized applications” page, and it has no member-removal screen either. So a grant you want destroyed rather than unused is support@pome.sh, naming the account. The practical difference is small and worth knowing: an unused grant authorizes nothing on its own. It is exercised only by a client that holds the refresh token, so removing the server entry ends the access in every case except a token you have already copied somewhere else.
Revoking the managed pme_ key in app.pome.sh does not disconnect the MCP — the server re-mints it on the next call. The pme_ key and the OAuth grant are separate credentials, and this MCP runs on the grant.
This MCP is the coach surface. It does not run twins itself. See Evaluate an agent over MCP for how the coach launches an examinee.