Esports props, odds, live scores, and player stats across 8 titles for agents.
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx kashrock-mcp
MCP client config
{
"mcpServers": {
"kashrock-mcp": {
"command": "uvx",
"args": [
"kashrock-mcp"
]
}
}
}Full tier-scoped KashRock esports MCP for Cursor, Claude, and other agents.
{
"mcpServers": {
"kashrock": {
"command": "uvx",
"args": ["kashrock-mcp"]
}
}
}
Then say log in to KashRock. Google opens; the agent gets your billed plan.
Requires uv. Optional: KASHROCK_API_KEY skips login.
cd mcp && uv sync
Cursor ~/.cursor/mcp.json:
{
"mcpServers": {
"kashrock": {
"command": "uv",
"args": ["run", "--directory", "/ABS/PATH/TO/kashrock/mcp", "kashrock-mcp"],
"env": { "KASHROCK_API_KEY": "kr_…" }
}
}
}
get_props), DFS+sportsbook player props (get_player_props), media (get_media), player snapshot (get_player_snapshot), consensus lines including DFS Teams (get_lines / get_best_lines), gaps (get_gaps)get_live_boxscore / get_live_games / get_live_frame / get_live_odds / get_live_odds_history), live WebSocket (get_live_ws → WS /v6/esports/live/ws), gamelogs, finished vault boxscores (get_boxscore), results, history tape, closing mainlines (get_lines_history)get_match_prep (CS2, R6, COD, Valorant & Apex team stats, mode/map winrates, map pool/biases, key player matchups, betting insights), get_player_board (CS2 weapons / Valorant agents), get_tournament_maps — pass KashRock slug/kr_match_id onlykr_match_id, kr_tm_* teams, kr_pl_* players. Lineup includes STARTER and SUB. Never pass foreign numerics.Live KDA path: get_live_boxscore("cs2") → pick game_id → get_live_boxscore("cs2", game_id). Sport boards: CS2 money/bomb, LoL gold/towers, Dota gold/roshan when visible, Deadlock gold/CS/level on tournament games. Do not use get_boxscore for mid-map stats (that is finished-match vault + lineup + model fields).
Live WebSocket (Builder+): call get_live_ws for the wss://…/v6/esports/live/ws URL + subscribe ops. Auth with your API key (?api_key= / Bearer / x-api-key). After hello, send {"op":"subscribe","sport":"cs2","game_id":"<id>|*" }. Pushes: snapshot, games_list, frame, boxscore, meta, event, odds. WS traffic does not count against HTTP req/min. MCP returns the contract only — your app holds the socket.
Call whoami, list_capabilities, or suggest_build first. Stacks are not exposed.