Getting started/MCP Server (AI Agents)
Model Context Protocol

Cito MCP Server

Give Claude, Cursor, Windsurf, or any MCP-compatible agent direct, tool-based access to the entire Cito API — live scores, schedules, stats, rankings, webhooks — with one command.

What it does

The Cito MCP server turns our published OpenAPI contracts into native agent tools — over 100 of them covering every game we serve. Your AI doesn't guess endpoints or fumble with curl: it calls typed tools with the API's own documentation built in.

100+ tools, zero setup

Every public operation — LoL, CS2, Dota 2, UFC and more — generated from the live spec, including a cross-game cito_live_overview for "what's live right now?"

Always current

The server refreshes from our OpenAPI spec hourly. When we ship a new endpoint, your agent gets the tool automatically — no upgrades, no code changes.

Your key, your machine

Runs locally via npx. Your API key stays in your environment — it is never logged or sent anywhere but the Cito API.

Setup

You need a Cito API key (free tier works) and Node.js 20+.

Every client, one command

Code
npx cito-mcp install --key cito_your_key_here

Detects the MCP clients installed on your machine — Claude Code, Claude Desktop, Cursor, Windsurf, Codex and Grok — and writes the config for each, then restart your editor. Safe to re-run: it merges into existing config, leaves your other servers alone, backs up before the first change, and rotates the key rather than adding a second entry. Add --dry-run to see the plan first, or --client cursor to do just one.

Claude Code, by hand

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

Quote the "--". PowerShell strips a bare -- before the CLI sees it, and because -e takes a variable number of values it then swallows npx -y cito-mcp as environment variables and fails with unknown option '-y'. The quoted form works in PowerShell, cmd, bash and zsh alike.

Cursor / Windsurf, by hand

Add to your MCP config (e.g. .cursor/mcp.json):

JSON
{
  "mcpServers": {
    "cito": {
      "command": "npx",
      "args": ["cito-mcp"],
      "env": { "CITO_API_KEY": "cito_your_key_here" }
    }
  }
}

Try asking

  • "What LoL matches are live right now, and what's the score?"
  • "Show me this week's LCK schedule and standings."
  • "Get the CS2 world ranking for FaZe and their last 5 results."
  • "Compare the last three UFC events by fight count and finishes."
  • "Create a webhook for lol.match.completed and show my recent deliveries."

Configuration

VariableDefaultPurpose
CITO_API_KEYrequiredYour Cito API key (sent only to the Cito API).
CITO_API_BASEhttps://api.citoapi.com/api/v1API base URL override.
CITO_OPENAPI_URLSglobal + LoL specsComma-separated spec URLs to merge.
CITO_SPEC_REFRESH_MINUTES60How often tools regenerate from the spec.

Remote agent? The server also speaks Streamable HTTP: npx cito-mcp --http 8080 (POST /mcp).

Good to know

  • Tools are generated from our published OpenAPI contracts — the same source of truth as this docs site and llms.txt.
  • Rate limits are your plan's normal API limits; the MCP server adds none of its own.
  • Errors come back verbatim (including GAME_NOT_INCLUDED and rate-limit codes) so agents can self-correct.
  • Source package: cito-mcp on npm — it contains only the MCP client runtime, nothing else.