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. 1

    Copy the server URL

    https://api.citoapi.com/mcp
  2. 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. 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.

Bash
npx cito-mcp install --key cito_your_key_here

Safe 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

Bash
claude mcp add cito -e CITO_API_KEY=cito_your_key_here "--" npx -y cito-mcp

Keep 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):

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.md

Tools

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_INCLUDED or RATE_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-mcp on npm. npx always runs the latest version, so new tools arrive without an upgrade.

Related