AI agents
MCP server
Give Claude, ChatGPT, Cursor or any MCP client live access to Cito: scores, schedules, stats, rankings and odds for every game, through tools built for the questions people actually ask.
Connect without installing anything
Use the hosted server in any client that supports custom connectors. You sign in to Cito once; there is no key to copy.
- 1
Copy the server URL
https://api.citoapi.com/mcp - 2
Add it as a custom connector
Claude: Settings → Connectors → Add custom connector. ChatGPT: Settings → Connectors (developer mode). Cursor and VS Code: add it as a remote server with
"url": "https://api.citoapi.com/mcp"in your MCP config. - 3
Sign in and allow access
Your client opens a Cito page; choose Allow. The connection uses your plan's games and limits, and stops if you revoke the key it's tied to.
Run it locally
For editors and CLIs. Needs Node.js 20+ and a Cito key (free tier works). One command sets up every client it finds: Claude Code, Claude Desktop, Cursor, Windsurf and Codex.
npx cito-mcp install --key cito_your_key_hereSafe to re-run: it merges into your existing config, leaves other servers alone and backs up first. Add --dry-run to preview, or --client cursor for one client. Restart your editor afterwards.
Claude Code, by hand
claude mcp add cito -e CITO_API_KEY=cito_your_key_here "--" npx -y cito-mcpKeep the quotes around "--": PowerShell drops a bare --, and the command then fails with unknown option '-y'. The quoted form works in every shell.
Cursor, Windsurf and other clients, by hand
Add this to the client's MCP config (for Cursor, .cursor/mcp.json):
{
"mcpServers": {
"cito": {
"command": "npx",
"args": ["-y", "cito-mcp"],
"env": { "CITO_API_KEY": "cito_your_key_here" }
}
}
}Building an app with a coding agent?
Paste this into Claude Code, Codex or Cursor. The agent reads the playbook, stores your key in .env, picks the right endpoints and writes the integration.
Add Cito sports data to my app: citoapi.com/SKILL.mdTools
Every tool is read-only and answers a whole question, so an agent makes one call where it would otherwise stitch several REST requests together.
- Find things
- Turn a name like “T1”, “s1mple” or “UFC 333” into a Cito id before asking for detail.
resolve_entitysearch_entitieslist_capabilities - Live & schedule
- What's on now and next, across every game or one.
live_matchesupcoming_scheduletennis_schedule - Matches & events
- A match or fight card in one call: score, maps or rounds, players, result.
match_summarymatch_detailsmatch_previewevent_card - Teams & players
- Profiles, form, career stats and rivalries.
team_profileplayer_profileplayer_statshead_to_head - Tables & leaders
- Standings, rankings and stat leaderboards (tennis serve and return leaders, for example).
standingsleaderboard_*rankings_movers - Game-specific
- CS2 economy, clutches, vetoes and utility; RAF and BKFC through the combat_* tools.
cs2_round_economycs2_veto_sequencecombat_cardcombat_bout - Anything else
- Find and call any other read endpoint in the REST API.
list_routescall_api
Try asking
- What CS2 matches are live right now, and what's the score?
- Show this week's LCK schedule and the current standings.
- Who's on the UFC 333 card, and how did each fighter do last time out?
- Compare Sinner and Alcaraz on first-serve points won this season.
- Build me a Discord bot that posts CS2 results for my favourite team.
Good to know
- Limits
- Tool calls count against your plan's normal API limits; the MCP server adds none of its own.
- Errors
- API errors come back unchanged (for example
GAME_NOT_INCLUDEDorRATE_LIMIT_EXCEEDED) so the agent can explain or recover. - Your key
- Locally the key stays in your client's config and is sent only to the Cito API as x-api-key. It is never logged.
- Package
cito-mcpon npm.npxalways runs the latest version, so new tools arrive without an upgrade.