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.
- In claude.ai, open Settings → Connectors → Add custom connector.
- URL:
https://mcp.recruitmcp.com/mcp. That path is the Streamable HTTP endpoint. The same process also serveshttps://recruitmcp.com/mcpandhttps://recruitmcp.com/api/mcp. - To include the advanced tools, append
?toolsets=sourcing,outreach,advanced.?toolsets=allis the same set. With no query, the server offerssourcingandoutreachonly. - 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/registerand requires PKCE (S256). - Leave request headers empty. claude.ai opens the consent page. Paste a live key (
rmcp_live_…; an olderrapi_live_…key still works). - Tick the permissions Claude should have.
outreach:sendis 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 withsourcing:read,sourcing:spend,outreach:read, andaccount:read.account:manageandbilling:manageare not offered. - 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.