docs mcp

claude.ai

Custom connector with OAuth sign-in.

claude.ai connects to RecruitMCP as a custom connector and signs in with OAuth. The API key is pasted on the RecruitMCP consent page. It is not a request header and it is not part of the URL.

  1. In claude.ai, open Settings → Connectors → Add custom connector.
  2. URL: https://mcp.recruitmcp.com/mcp. That path is the Streamable HTTP endpoint. The same process also serves https://recruitmcp.com/mcp and https://recruitmcp.com/api/mcp.
  3. To include the advanced tools, append ?toolsets=sourcing,outreach,advanced. ?toolsets=all is the same set. With no query, the server offers sourcing and outreach only.
  4. Authentication: sign in with OAuth. When Claude asks how to identify itself, choose Register automatically. RecruitMCP has no pre-issued client id. It registers a public client at POST /oauth/register and requires PKCE (S256).
  5. Leave request headers empty. claude.ai opens the consent page. Paste a live key (rmcp_live_…; an older rapi_live_… key still works).
  6. Tick the permissions Claude should have. outreach:send is the box that lets it send. Leave that box off to draft and preview only. If Claude does not ask for scopes, the page starts with sourcing:read, sourcing:spend, outreach:read, and account:read. account:manage and billing:manage are not offered.
  7. Optionally set a customer id (cus_…) and a daily credit cap, then approve. claude.ai receives a one-hour access token (rmcp_oat_…) and refreshes it on its own.

The grant never exceeds the key you pasted. Revoking that key with DELETE /v1/api-keys/KEY_ID ends it.

Use the same confirm habit as the other apps: start a search and read the summary and estimate first, and say yes before Claude calls a tool with confirm=true. Pausing and stopping outreach do not need it.

A missing or bad token is 401, with WWW-Authenticate pointing at /.well-known/oauth-protected-resource. That is how the connector finds the sign-in.

API reference