Get a key

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.” The marketing guide is the Esports MCP page.

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

cs2valorantloldota2codr6mlbbdeadlock

Plans

  • Sandbox — all sports, props, matches, players, live REST 30-60s delayed (500 req/UTC day), gamelogs/boxscores/results capped to 30 days
  • Hobby — all sports, moneylines, lines, live odds, research, streams, H2H, live REST 5s 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

Session

ToolWhenMin plan
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

ToolWhenMin plan
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

ToolWhenMin plan
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

ToolWhenMin plan
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+