Champions MCP server
Give Claude, ChatGPT, Cursor or any MCP-capable agent a live view of your tracked contacts, job changes and plays - and let it add contacts, work plays and tune your ICP. Same permissions and workspace isolation as the REST API.
Server URL
https://mcp.getchampions.io
Streamable HTTP · OAuth 2.1 sign-in (recommended) or a workspace API key as the bearer token
Connect
Claude (web & desktop)
- Open Settings → Connectors and click Add custom connector.
- Name it Champions and paste
https://mcp.getchampions.io. Leave client id and secret empty. - Click Connect. You'll be sent to Champions to sign in with your usual magic link, pick a workspace and allow access.
Claude Code
claude mcp add --transport http champions https://mcp.getchampions.io
# then, inside Claude Code:
/mcp # → Champions → AuthenticateCursor, Windsurf, ChatGPT, custom agents
Any client that speaks Streamable HTTP works. If your client can't run the OAuth flow, create an API key in Settings → API & integrations and send it as a bearer token:
{
"mcpServers": {
"champions": {
"url": "https://mcp.getchampions.io",
"headers": { "Authorization": "Bearer chp_live_…" }
}
}
}Tools
21 tools. Read-only tools never spend credits; start_refresh is the only one that does, and it requires an explicit confirmation.
get_workspaceread
Who you are connected as, credit balance and price per check, refresh schedule and the next scheduled refresh.
list_contactsread
The people in the workspace with tracking status and, when tracked, their current company/title and last change. Filter by tracking_status (needs_linkedin, tracked, not_found…), profile status (moved, promoted, left, same_role), segment, owner, account_id, or free-text q.
get_contactread
Full detail for one contact: position history, detected changes, ICP fit evaluations, emails and plays.
add_contactswrite
Upsert up to 1,000 contacts (and optionally the accounts they belong to). Contacts with a LinkedIn URL start tracking right away; the rest wait in Needs LinkedIn. Dedupes on crm_id, then LinkedIn URL, then email, then name+company.
update_contactwrite
Give a contact its LinkedIn URL (resolves Needs LinkedIn / Not found and starts tracking) or exclude it from tracking.
list_accountsread
Companies in the CRM with contact counts (total, tracked, moved).
get_accountread
One account with all its contacts.
list_changesread
Detected moves, promotions, title changes (lateral/demotion, no play), departures and unreachable profiles, newest first. Use since (ISO timestamp) for 'what changed this week'.
list_playsread
Plays are the recommended action for a change: direct (account and contact fit), referral (account fit only), watch (contact fit only), promotion, archive, churn_risk (a contact at a customer account left or moved away — for CS). Open plays first. Each play carries the person's new role, the old relationship, the best email and a suggested opener.
get_playread
One play by id.
update_playwrite
Move a play through open → contacted → replied → meeting, mark it not_relevant, or attach notes.
get_icpread
Active account and contact fit rules. Account rules: industries, employee range, HQ countries/regions, keywords, funding stages, exclusions. Contact rules: title include/exclude, seniority, functions.
update_icpwrite
Replace the account and/or contact rules. Read get_icp first and send the full rule object back with your edits; each changed set becomes a new version.
list_runsread
Recent refresh runs with status and totals (moved, promoted, credits charged).
get_runread
Status and live totals of one run; poll it while a run is in progress.
estimate_refreshread
How many profiles a 'refresh now' would check and what it costs in credits/cents. Profiles checked in the last 24h are skipped. Always call this and confirm with the user before start_refresh.
start_refreshwrite
Queue a manual refresh of every tracked profile not checked in the last 24 hours. Spends one credit per profile - confirm with the user first (see estimate_refresh). Returns the existing run if one is already active.
resume_runwrite
Resume a run paused for lack of credits after topping up.
cancel_runwrite
Cancel a queued, running or paused run.
update_settingswrite
Change the workspace name or refresh cadence (weekly, biweekly, monthly, quarterly), day and timezone.
delete_contactwrite
Permanently delete a contact and, if nobody else references the person, everything held about them. Irreversible - confirm with the user.
Things to know
- One connection = one workspace. Members of several workspaces choose at sign-in; add a second connector for another workspace.
- Tokens expire after an hour and refresh silently for 30 days. Disconnect any time from Settings → API & integrations → Connected apps.
- Rate limits are shared with the REST API: 600 reads and 120 writes per minute per workspace.
- Questions: [email protected]