Esports MCP.
Ask your LLM. Don't read the docs.

The esports MCP for Claude, ChatGPT, Grok, Gemini, and Cursor. Thirty seconds: paste the connector URL with your key, or install with uvx kashrock-mcp. Your agent gets props, moneylines, live scores, and (on Builder) history.
Counter-Strike 2ValorantLeague of LegendsDota 2Call of DutyRainbow Six SiegeDeadlockMobile Legends: Bang Bang

Set up in three steps

  1. 1

    Paste this in Cursor

    Settings → MCP → add a new server. Paste the uvx snippet. Save. Needs uv once: docs.astral.sh/uv

  2. 2

    Say “log in to KashRock”

    Cursor opens your browser. Continue with Google. You land on your real billed plan.

  3. 3

    Build in plain English

    Ask for moneylines, props, gamelogs, H2H — the agent picks tools. Call suggest_build if you want a plan.

Connect any LLM

One hosted endpoint — https://mcp.kashrock.com/mcp — works in Claude, ChatGPT, Grok, Gemini, Cursor, and every other MCP client. Get your key at kashrock.com/console → API keys. Never paste it into chat.

Claude
  • claude.ai or Claude Desktop → Customize → Connectors → Add custom connector
  • URL: https://mcp.kashrock.com/mcp
  • Authentication: No sign-in → Request headers → x-api-key: your key
Claude Code
  • One command:
claude mcp add --transport http kashrock https://mcp.kashrock.com/mcp --header "x-api-key: kr_…"
ChatGPT
  • Settings → Connectors → Advanced settings → Developer mode → Create
  • MCP server URL: https://mcp.kashrock.com/mcp
  • Authentication: API key → paste your key
Grok
  • grok.com/connectors → New Connector → Custom
  • URL: https://mcp.kashrock.com/mcp — paste your API key when it asks
  • CLI: `grok mcp add --transport http kashrock <url> --header "x-api-key: kr_…"`
Cursor / Windsurf / VS Code
  • mcp.json — remote URL, no uv needed:
{
  "mcpServers": {
    "kashrock": {
      "url": "https://mcp.kashrock.com/mcp",
      "headers": { "x-api-key": "kr_…" }
    }
  }
}
Gemini CLI
  • ~/.gemini/settings.json — note httpUrl (not url) for Streamable HTTP:
{
  "mcpServers": {
    "kashrock": {
      "httpUrl": "https://mcp.kashrock.com/mcp",
      "headers": { "x-api-key": "kr_…" }
    }
  }
}
Stdio package — Cursor / Claude Desktop (Google sign-in, no key to paste)
{
  "mcpServers": {
    "kashrock": {
      "command": "uvx",
      "args": ["kashrock-mcp"]
    }
  }
}

What your plan unlocks

  • Sandbox

    login, whoami, capabilities, CS2 props/matches/live (30-60s delay), gamelogs/boxscores/results (last 30 days)

  • Hobby

    All 8 sports · moneylines · consensus lines · research · rankings · streams · H2H · live 5s delay · gamelogs/boxscores/results (last 90 days)

  • Builder+

    Real-time live (under 2s) via get_live_boxscore or the WebSocket, full-vault gamelogs/boxscores/results, get_match_prep / get_player_board / get_tournament_maps / get_match_veto, closing mainlines, quote-tape history

Try saying

  • Log in to KashRock, then whoami.
  • Show CS2 Kalshi and Polymarket moneylines for tonight.
  • Pull PrizePicks and ParlayPlay CS2 kills for Vitality.
  • Live in-game KDA for a CS2 match right now.
  • Closing match-winner lines for a CS2 match from get_matches.
  • ZywOo last 10 maps and grade an Underdog kills prop.
  • suggest_build: DFS board + live streams for LoL
  • Head-to-head: Vitality vs MOUZ — then live streams.

Full tool catalog

Same surface as list_capabilities. Stacks are not exposed via MCP.

Session

ToolWhen to usePlan
loginGoogle sign-in; stores API key locally.Sandbox+
whoamiYour plan, quota, and unlocked drawers.Sandbox+
list_capabilitiesWhich tools this plan can use.Sandbox+
suggest_buildMap a one-line app goal to tools + plan.Sandbox+
list_sportsSports KashRock covers.Sandbox+
list_booksLive book registry (DFS + sportsbooks including Bovada, Thunderpick, Cloudbet, BetRivers, Pinnacle + Kalshi/Polymarket).Hobby+
list_marketsCanonical market / moneyline names.Sandbox+
explain_errorTurn a 403/401 into plain English.Sandbox+

Board

ToolWhen to usePlan
get_propsDFS player props only. Sandbox=all sports (500 req/UTC day). Prefer filters + slim.Sandbox+
get_player_propsDFS + sportsbook named-player props. board=dfs|main|all; default view=groups+slim.Sandbox+
get_player_snapshotMedia + slim player-prop groups for one player.Sandbox+
get_moneylinesTeam match/map moneylines (line is null — that is normal).Hobby+
get_linesConsensus team mainlines across sportsbooks, DFS Teams, and prediction markets.Hobby+
get_best_linesTop cross-venue consensus edges from get_lines (upcoming only by default).Hobby+
get_gapsDFS book-vs-book line spreads (same prop, different lines).Hobby+
get_coveragePer-book prop counts / freshness (no prop rows).Sandbox+
get_mediaResolve player faces + team logos by name/id.Sandbox+

Players & research

ToolWhen to usePlan
search_playersFind players by nickname. Sandbox=all sports.Sandbox+
get_playerPlayer profile by id or nickname. Sandbox=all sports.Sandbox+
get_player_statsCanonical player stats (KPR, etc.). Sandbox=all sports.Sandbox+
get_player_stats_fullFull aggregate: period + foundation + recent maps.Hobby+
get_rankingsPlayer rankings board. Sandbox=all sports.Sandbox+
research_boardResearch slips for the current board.Hobby+
research_board_tapesResearch quote tapes for the live board.Hobby+
research_playerCareer tape for one player + market.Hobby+
get_streamsLive Twitch/Kick streams for a sport.Hobby+
get_team_h2hTeam head-to-head meetings from the vault.Hobby+

Schedule & history

ToolWhen to usePlan
get_matchesUpcoming / live / finished lists with kr_match_id + kr_tm_* team ids. Sandbox=all sports; Builder+ finished vault.Sandbox+
get_matchOne match by kr_match_id or slug. Sandbox=all sports.Sandbox+
search_matchesFind a match by team names + date. Sandbox=all sports.Sandbox+
get_team_matchesFull finished team schedule from the vault.Builder+
get_live_gamesGames with live in-game telemetry (list game_ids). Sandbox=all sports, 30-60s delayed; Hobby=5s delayed; Builder+=real-time.Sandbox+
get_live_boxscoreLive in-game board (KDA plus sport state: CS2 money/bomb, LoL gold/towers, Deadlock gold/CS/level). Omit game_id to list games. Sandbox=all sports, 30-60s delayed; Hobby=5s delayed; Builder+=real-time.Sandbox+
get_live_frameRaw live NormalizedFrame + metadata for one game_id. Sandbox=all sports, 30-60s delayed; Hobby=5s delayed; Builder+=real-time.Sandbox+
get_live_eventsSport-native live events (CS2 bomb/rounds, LoL towers, Dota roshan) for one game_id. Sandbox=30-60s delayed, Hobby=5s delayed, Builder+=real-time.Sandbox+
get_live_oddsIn-play shifting betting odds and active markets (omit game_id to list matches). Hobby+.Hobby+
get_live_odds_historyIn-play Redis shift log (minutes). Closing ML/totals/spreads: get_lines_history. Hobby+.Hobby+
get_lines_historyOpening and closing team mainlines, plus the full tick-by-tick quote tape per book, for a match slug / kr_match_id.Builder+
get_live_wsLive push WebSocket URL + subscribe contract (Builder+). Connect from your app.Builder+
get_gamelogsPer-map player history for grading, including sport-native model fields when present (up to 5000 maps). Sandbox=last 30 days, Hobby=last 90 days, Builder+=full vault.Sandbox+
get_boxscoreFinished-match vault boxscore + STARTER/SUB lineup and model fields by slug/kr_match_id — not live KDA (use get_live_boxscore). Sandbox=last 30 days, Hobby=last 90 days, Builder+=full vault.Sandbox+
get_match_prepCS2, R6, COD, Valorant & Apex team stats, mode/map winrates, map pool/biases, key player matchups, and betting insights.Builder+
get_player_boardCS2 favourite weapons or Valorant agent/role board for a match.Builder+
get_tournament_mapsCS2 tournament maps for a KashRock match slug / kr_match_id.Builder+
get_match_vetoPre-match map veto/pick-ban sequence for CS2, Valorant, or R6.Builder+
get_resultsSettled prop and line-odds grades (hit/miss/push). Sandbox=last 30 days, Hobby=last 90 days, Builder+=full vault.Sandbox+
get_history_tapeQuote tape for a prop/book over time.Builder+

Every title, one server

Dota 2 MCP — ask for Dota 2 props, matches, and live scores on the same esports MCP — no extra server. Hobby unlocks the Dota board; Builder adds live K/D/A and history.

Kalshi MCP— Kalshi esports moneylines come through the same tools as DFS books. Ask for tonight's Kalshi and Polymarket prices; the agent calls get_moneylines.

If you need a normalized feed instead of another UI wrapper, the Esports API exposes live boards, schedules, and history on one schema — with the IDs and outcome patterns that keep backtests and grading honest. Start free on Sandbox, or see published pricing.

Frequently asked questions

What is an esports MCP?

An esports MCP is a Model Context Protocol server that lets Cursor or Claude call live esports props, odds, matches, and scores in plain English. KashRock's esports MCP is uvx kashrock-mcp — Google login, then the tools on your billed plan.

Do I need to read the API docs?

No. Paste the snippet, log in with Google, then ask in plain English. Prefer MCP over hunting HTTP paths. Full tool list lives on the MCP page and the MCP docs page.

Do I copy an API key?

Two ways. Hosted connector (Claude, ChatGPT, Grok, Gemini): paste your key once into the connector's auth field — get it at kashrock.com/console. Stdio (Cursor, Claude Desktop): Google login creates the key and stores it on your machine. Either way, never paste a key into chat.

Does this work in Claude, ChatGPT, Gemini, or Grok?

Yes — every MCP client works. Claude (claude.ai, Desktop, mobile, Claude Code), ChatGPT (Settings → Connectors → Developer mode → Create), Grok (grok.com/connectors → Custom), and Gemini CLI (~/.gemini/settings.json httpUrl + x-api-key header) all take the hosted URL https://mcp.kashrock.com/mcp with your API key as an x-api-key header. The uvx snippet below also runs in Cursor, Claude Desktop, and Windsurf with Google login instead of a key.

What does each plan unlock in MCP?

Sandbox: session tools + props, matches, players, and coverage on every sport. Hobby: all eight sports, moneylines, lines, research, streams, H2H. Builder+: schedule, live player kills/deaths/assists under 2s (including Deadlock tournament games), gamelogs, vault boxscores with model fields, results, history tape, closing mainlines. Call list_capabilities after login.

Which sports and books?

Sports: cs2, valorant, lol, dota2, cod, r6, mlbb, deadlock. Books include PrizePicks, Underdog, ParlayPlay, Betr, Sleeper, Dabble, Boom, Pick6, Thunderpick, Kalshi, and Polymarket. list_books returns the live registry.