Esports MCP.
Ask your LLM. Don't read the docs.
uvx kashrock-mcp. Your agent gets props, moneylines, live scores, and (on Builder) history.
Set up in three steps
- 1
Paste this in Cursor
Settings → MCP → add a new server. Paste the uvx snippet. Save. Needs uv once: docs.astral.sh/uv
- 2
Say “log in to KashRock”
Cursor opens your browser. Continue with Google. You land on your real billed plan.
- 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.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
- One command:
claude mcp add --transport http kashrock https://mcp.kashrock.com/mcp --header "x-api-key: kr_…"
- Settings → Connectors → Advanced settings → Developer mode → Create
- MCP server URL: https://mcp.kashrock.com/mcp
- Authentication: API key → paste your key
- 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_…"`
- mcp.json — remote URL, no uv needed:
{
"mcpServers": {
"kashrock": {
"url": "https://mcp.kashrock.com/mcp",
"headers": { "x-api-key": "kr_…" }
}
}
}- ~/.gemini/settings.json — note httpUrl (not url) for Streamable HTTP:
{
"mcpServers": {
"kashrock": {
"httpUrl": "https://mcp.kashrock.com/mcp",
"headers": { "x-api-key": "kr_…" }
}
}
}{
"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
| Tool | When to use | Plan |
|---|---|---|
| login | Google sign-in; stores API key locally. | Sandbox+ |
| whoami | Your plan, quota, and unlocked drawers. | Sandbox+ |
| list_capabilities | Which tools this plan can use. | Sandbox+ |
| suggest_build | Map a one-line app goal to tools + plan. | Sandbox+ |
| list_sports | Sports KashRock covers. | Sandbox+ |
| list_books | Live book registry (DFS + sportsbooks including Bovada, Thunderpick, Cloudbet, BetRivers, Pinnacle + Kalshi/Polymarket). | Hobby+ |
| list_markets | Canonical market / moneyline names. | Sandbox+ |
| explain_error | Turn a 403/401 into plain English. | Sandbox+ |
Board
| Tool | When to use | Plan |
|---|---|---|
| get_props | DFS player props only. Sandbox=all sports (500 req/UTC day). Prefer filters + slim. | Sandbox+ |
| get_player_props | DFS + sportsbook named-player props. board=dfs|main|all; default view=groups+slim. | Sandbox+ |
| get_player_snapshot | Media + slim player-prop groups for one player. | Sandbox+ |
| get_moneylines | Team match/map moneylines (line is null — that is normal). | Hobby+ |
| get_lines | Consensus team mainlines across sportsbooks, DFS Teams, and prediction markets. | Hobby+ |
| get_best_lines | Top cross-venue consensus edges from get_lines (upcoming only by default). | Hobby+ |
| get_gaps | DFS book-vs-book line spreads (same prop, different lines). | Hobby+ |
| get_coverage | Per-book prop counts / freshness (no prop rows). | Sandbox+ |
| get_media | Resolve player faces + team logos by name/id. | Sandbox+ |
Players & research
| Tool | When to use | Plan |
|---|---|---|
| search_players | Find players by nickname. Sandbox=all sports. | Sandbox+ |
| get_player | Player profile by id or nickname. Sandbox=all sports. | Sandbox+ |
| get_player_stats | Canonical player stats (KPR, etc.). Sandbox=all sports. | Sandbox+ |
| get_player_stats_full | Full aggregate: period + foundation + recent maps. | Hobby+ |
| get_rankings | Player rankings board. Sandbox=all sports. | Sandbox+ |
| research_board | Research slips for the current board. | Hobby+ |
| research_board_tapes | Research quote tapes for the live board. | Hobby+ |
| research_player | Career tape for one player + market. | Hobby+ |
| get_streams | Live Twitch/Kick streams for a sport. | Hobby+ |
| get_team_h2h | Team head-to-head meetings from the vault. | Hobby+ |
Schedule & history
| Tool | When to use | Plan |
|---|---|---|
| get_matches | Upcoming / live / finished lists with kr_match_id + kr_tm_* team ids. Sandbox=all sports; Builder+ finished vault. | Sandbox+ |
| get_match | One match by kr_match_id or slug. Sandbox=all sports. | Sandbox+ |
| search_matches | Find a match by team names + date. Sandbox=all sports. | Sandbox+ |
| get_team_matches | Full finished team schedule from the vault. | Builder+ |
| get_live_games | Games with live in-game telemetry (list game_ids). Sandbox=all sports, 30-60s delayed; Hobby=5s delayed; Builder+=real-time. | Sandbox+ |
| get_live_boxscore | Live 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_frame | Raw live NormalizedFrame + metadata for one game_id. Sandbox=all sports, 30-60s delayed; Hobby=5s delayed; Builder+=real-time. | Sandbox+ |
| get_live_events | Sport-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_odds | In-play shifting betting odds and active markets (omit game_id to list matches). Hobby+. | Hobby+ |
| get_live_odds_history | In-play Redis shift log (minutes). Closing ML/totals/spreads: get_lines_history. Hobby+. | Hobby+ |
| get_lines_history | Opening and closing team mainlines, plus the full tick-by-tick quote tape per book, for a match slug / kr_match_id. | Builder+ |
| get_live_ws | Live push WebSocket URL + subscribe contract (Builder+). Connect from your app. | Builder+ |
| get_gamelogs | Per-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_boxscore | Finished-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_prep | CS2, R6, COD, Valorant & Apex team stats, mode/map winrates, map pool/biases, key player matchups, and betting insights. | Builder+ |
| get_player_board | CS2 favourite weapons or Valorant agent/role board for a match. | Builder+ |
| get_tournament_maps | CS2 tournament maps for a KashRock match slug / kr_match_id. | Builder+ |
| get_match_veto | Pre-match map veto/pick-ban sequence for CS2, Valorant, or R6. | Builder+ |
| get_results | Settled prop and line-odds grades (hit/miss/push). Sandbox=last 30 days, Hobby=last 90 days, Builder+=full vault. | Sandbox+ |
| get_history_tape | Quote 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.