MCP
Prefer MCP over hunting HTTP paths. Claude, ChatGPT, Grok, Gemini, Cursor — every MCP client connects to https://mcp.kashrock.com/mcp with your API key, or run the stdio package and say “log in to KashRock.” Pitch and connect steps live on the Esports MCP page; this page is the tool catalog.
Hosted connector
No install — point any MCP client at https://mcp.kashrock.com/mcp and send your key as the x-api-key header (an Authorization: Bearer header works too). 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_…" } } } }
Setup
Needs uv. Package: kashrock-mcp on PyPI.
{
"mcpServers": {
"kashrock": {
"command": "uvx",
"args": ["kashrock-mcp"]
}
}
}Optional env KASHROCK_API_KEY skips browser login. Never paste a key into chat.
Sports
cs2valorantloldota2codr6mlbbdeadlockPlans
- Sandbox: CS2 props and match discovery to prove your integration (1,500 credits/UTC day). No live desk, no vault, no other titles.
- Hobby: every title, moneylines, lines, live odds, research, streams, H2H, live REST 15s delayed, gamelogs/boxscores/results capped to 90 days
- Builder+: real-time live scores, live WebSocket push, full history vault (gamelogs, finished boxscores, results, no date cap), match prep / player-board / tournament maps, history tape, closing mainlines
Call list_capabilities or whoami after login. Stacks are not exposed via MCP.
Tools
V7 API (preferred)
| Tool | When | Min plan |
|---|---|---|
| v7_meta | Call first. Sports, books (kind + supports), markets, routes, your plan. include=boards shows which books have live lines per sport. | Sandbox+ |
| v7_matches | One match list. sport=all, or one title. date is YYYY-MM-DD. include adds boxscore, prep, veto, maps, player_board, lines, streams, or h2h. | Sandbox+ |
| v7_props | Props for one sport. board=dfs|main|all. view is groups, rows, or both. | Sandbox+ |
| v7_lines | Team lines for one sport. view is consensus or moneyline. | Hobby+ |
| v7_parlays | Price or discover independent main-line parlays for one book. Discover is +EV by default; include=all keeps negatives. placeable_basis is combo_eligible or book_price. Hobby+. | Hobby+ |
| v7_flow | Flow plays. kind is all, volume, shift, steam, or whale. | Hobby+ |
| v7_arb | Cross-book arbs off the lines board. Legs with source/decimal/offer_id/deeplink, margin_pct, stake_share. | Quant+ |
| v7_live | Live matches. sport=all is every title in one call. include adds boxscore, events, frame, odds, or odds_history. | Sandbox+ |
| v7_uav | One match overview, prematch through live (Quant+). match= a kr_match_id or slug (required). | Quant+ |
| v7_signals | Mispricing alerts, steam moves, and arb alerts — push or poll (Pro+). | Pro+ |
| v7_clv | Closing line value per bet, per book, with historical CLV tracking (Quant+). | Quant+ |
| v7_backtest | Test a strategy against historical data — P&L, hit rate, drawdown (Quant+). | Quant+ |
| v7_portfolio | Track bets, auto-grade against results, running P&L and ROI (Quant+). | Quant+ |
| v7_players | Players. sort=rank. include is research, gamelogs, stats, stats_full, history, or media. | Sandbox+ |
| v7_teams | Teams. id is kr_tm_*. include is form, roster, maps, h2h, main_lines, or upcoming. | Hobby+ |
| v7_breakdown | Actionable fact bundle for a match, team, or H2H pair (odds, form, maps, starter props, targets). Builder+. | Builder+ |
| v7_history | Stored history. kind is contract or lines. props is an alias of contract. | Builder+ |
| v7_results | Settled grades already stored. from and to are YYYY-MM-DD. | Sandbox+ |
Session
| Tool | When | Min 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/Fanatics/FlipX). | Hobby+ |
| list_markets | Canonical market / moneyline names. | Sandbox+ |
| explain_error | Turn a 403/401 into plain English. | Sandbox+ |
Board
| Tool | When | Min plan |
|---|---|---|
| get_props | DFS player props only. Sandbox=all sports (1,500 credits/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 | Min 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+ |
| get_team | The team behind a kr_tm_ id, with its record and recent matches. | Sandbox+ |
| get_team_stats | A team's aggregate record, span and most-played opponents. | Sandbox+ |
| get_player_combo | Player profile + props + media in one call. | Sandbox+ |
| get_defense_vs_role | Defense-vs-role splits for DFS research. | Sandbox+ |
Schedule & history
| Tool | When | Min 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=15s 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=15s delayed; Builder+=real-time. | Sandbox+ |
| get_live_frame | Raw live NormalizedFrame + metadata for one game_id. Sandbox=all sports, 30-60s delayed; Hobby=15s 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=15s 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 7 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 7 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 7 days, Hobby=last 90 days, Builder+=full vault. | Sandbox+ |
| get_history_tape | Quote tape for a prop/book over time. | Builder+ |
| get_trade_ws | Auto-trade WebSocket contract (/v7/trade): signed trade intents, heartbeat, halt, report. Connect from your app or run `kashrock trade`. Paper by default; plan priority applies. | Pro+ |
| get_live_coverage | Share of listed CS2 matches that had live in-game stats, by tournament and tier, last 1-14 days. Same on every plan. | Sandbox+ |
