{"apiVersion":"v1","directorySlug":"kashrock-mcp-6eceb0e553","title":"Esports API — Props, Odds & Live Stats, Free Key | KashRock","description":"Normalized esports props, lines, matches, and player stats across CS2, Valorant, LoL, Dota 2, and more. Instant key, free sandbox — no enterprise quote.","pageUrl":"https://www.mcpbundles.com/skills/kashrock-mcp-6eceb0e553","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.kashrock.com/mcp","hostedMcpUrl":null,"toolCount":63,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.kashrock/kashrock-mcp-6eceb0e553","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"v7_matches","description":"Matches for one sport, or sport=all. status is live, upcoming, or finished. date is YYYY-MM-DD. date_from and date_to are a range (YYYY-MM-DD, both inclusive); with status=finished the range reads full history and pages with offset, so the total counts the range rather than one board page. team filters by name. include is boxscore, prep, veto, maps, player_board, lines, streams, or h2h. Replaces get_matches, get_match, search_matches, get_match_prep, get_match_veto, get_player_board, get_tournam","inputSchema":{"type":"object","required":["sport"],"properties":{"q":{"type":"string","default":""},"ids":{"type":"string","default":""},"date":{"type":"string","default":""},"team":{"type":"string","default":""},"limit":{"type":"integer","default":50},"sport":{"type":"string"},"offset":{"type":"integer","default":0},"status":{"type":"string","default":""},"date_to":{"type":"string","default":""},"include":{"type":"string","default":""},"date_from":{"type":"string","default":""}}},"logicalName":"v7_matches","displayName":"v7_matches","title":"v7_matches","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"v7_props","description":"Player props. board is dfs, main, or all. view is groups, rows, or both. Replaces get_props and get_player_props.","inputSchema":{"type":"object","required":["sport"],"properties":{"book":{"type":"string","default":""},"view":{"type":"string","default":"groups"},"board":{"type":"string","default":"dfs"},"limit":{"type":"integer","default":50},"sport":{"type":"string"},"market":{"type":"string","default":""},"player":{"type":"string","default":""}}},"logicalName":"v7_props","displayName":"v7_props","title":"v7_props","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"v7_lines","description":"Team lines for one sport. view is consensus or moneyline. With no market, only the main markets\n        return (match_winner, map_winner, total_maps, team_total_maps, map_handicap, correct_score, dfs_team_pick); round and\n        kill markets need market= (round_handicap, total_rounds, kill_handicap, total_kills),\n        tournament futures need market=outright (every listed pick with each book's own price, no consensus),\n        and BetWhale also lists map objectives (market=objective — xth bar","inputSchema":{"type":"object","required":["sport"],"properties":{"view":{"type":"string","default":""},"limit":{"type":"integer","default":0},"sport":{"type":"string"},"format":{"type":"string","default":""},"market":{"type":"string","default":""},"include_started":{"type":"boolean","default":false}}},"logicalName":"v7_lines","displayName":"v7_lines","title":"v7_lines","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"v7_parlays","description":"Price a multi-leg main-line ticket or discover ranked independent parlays for one book.\n        Pass ticket as comma-separated kr_match_id:market:selection to price; omit ticket to discover.\n        size is 2 or 3 legs when discovering. Default discover is +EV only; include=all keeps negatives.\n        Same-match (SGP) is not supported. Hobby+.\n        price_source is computed (product of legs) or book when a native multi-leg price exists.\n        placeable_basis is combo_eligible (Polymarket co","inputSchema":{"type":"object","required":["sport","book"],"properties":{"book":{"type":"string"},"size":{"type":"integer","default":2},"limit":{"type":"integer","default":25},"sport":{"type":"string"},"market":{"type":"string","default":""},"ticket":{"type":"string","default":""},"include":{"type":"string","default":""},"include_started":{"type":"boolean","default":false}}},"logicalName":"v7_parlays","displayName":"v7_parlays","title":"v7_parlays","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"v7_flow","description":"Money-behind, shift, and steam Flow plays. kind is all, volume, shift, steam, or whale.\n        Volume needs money floor + lopsided side share. Shift is a side-share move of 10+ points in 6h.\n        Whale returns available false when there is no trade-level tape. Hobby+.","inputSchema":{"type":"object","required":["sport"],"properties":{"kind":{"type":"string","default":"all"},"limit":{"type":"integer","default":25},"sport":{"type":"string"},"market":{"type":"string","default":""},"include":{"type":"string","default":""}}},"logicalName":"v7_flow","displayName":"v7_flow","title":"v7_flow","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"v7_live","description":"Live matches. sport=all returns every title in one call. game is a kr_match_id. include is boxscore, events, frame, odds, or odds_history. Live scores also stream on /v7/live/ws. Replaces get_live_games, get_live_boxscore, get_live_frame, get_live_events, get_live_odds, get_live_odds_history.","inputSchema":{"type":"object","properties":{"game":{"type":"string","default":""},"sport":{"type":"string","default":"all"},"include":{"type":"string","default":""}}},"logicalName":"v7_live","displayName":"v7_live","title":"v7_live","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"v7_players","description":"Players. sort=rank lists the rankings. include is research, gamelogs, stats, stats_full, history, or media. offset pages through the list with limit. Replaces search_players, get_player, get_player_stats, get_player_stats_full, get_rankings, get_gamelogs, research_player, get_media.","inputSchema":{"type":"object","required":["sport"],"properties":{"q":{"type":"string","default":""},"id":{"type":"string","default":""},"sort":{"type":"string","default":""},"limit":{"type":"integer","default":50},"sport":{"type":"string"},"market":{"type":"string","default":""},"offset":{"type":"integer","default":0},"include":{"type":"string","default":""}}},"logicalName":"v7_players","displayName":"v7_players","title":"v7_players","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"v7_teams","description":"Teams. id is kr_tm_*. include is form, roster, maps, h2h, main_lines, or upcoming. team1 and team2 return their meetings. Replaces get_team_h2h.","inputSchema":{"type":"object","required":["sport"],"properties":{"q":{"type":"string","default":""},"id":{"type":"string","default":""},"sport":{"type":"string"},"team1":{"type":"string","default":""},"team2":{"type":"string","default":""},"include":{"type":"string","default":""}}},"logicalName":"v7_teams","displayName":"v7_teams","title":"v7_teams","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"v7_history","description":"Stored history. kind is contract or lines. props is an alias of contract.","inputSchema":{"type":"object","required":["sport"],"properties":{"book":{"type":"string","default":""},"kind":{"type":"string","default":"contract"},"prop":{"type":"string","default":""},"limit":{"type":"integer","default":0},"match":{"type":"string","default":""},"sport":{"type":"string"}}},"logicalName":"v7_history","displayName":"v7_history","title":"v7_history","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"v7_results","description":"Settled grades already stored for this sport. start and end are YYYY-MM-DD. Replaces get_results.","inputSchema":{"type":"object","required":["sport"],"properties":{"end":{"type":"string","default":""},"grade":{"type":"string","default":""},"limit":{"type":"integer","default":50},"sport":{"type":"string"},"start":{"type":"string","default":""}}},"logicalName":"v7_results","displayName":"v7_results","title":"v7_results","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"v7_breakdown","description":"Actionable fact bundle for a match, team, or H2H pair (odds, form, maps, starter props, targets). Pass match= (slug/kr_match_id), team= (name/kr_tm_*), or team1= and team2=. Builder+.","inputSchema":{"type":"object","required":["sport"],"properties":{"team":{"type":"string","default":""},"limit":{"type":"integer","default":50},"match":{"type":"string","default":""},"sport":{"type":"string"},"team1":{"type":"string","default":""},"team2":{"type":"string","default":""}}},"logicalName":"v7_breakdown","displayName":"v7_breakdown","title":"v7_breakdown","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"v7_meta","description":"Call first. Sports, books (each carries kind + supports: lines, props, parlays), markets,\n        the routes table, and the caller's plan. include=boards adds which books have live lines per\n        sport — answers 'which books have data' without probing endpoints. include also takes\n        coverage, teams, tournaments, or changelog. Replaces list_sports, list_books, list_markets, get_coverage.","inputSchema":{"type":"object","properties":{"include":{"type":"string","default":""}}},"logicalName":"v7_meta","displayName":"v7_meta","title":"v7_meta","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"whoami","description":"Your KashRock plan, quota remaining, and unlocked data drawers. Prefer v7_meta for new work; this tool keeps working.","inputSchema":{"type":"object","properties":{}},"logicalName":"whoami","displayName":"whoami","title":"whoami","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_capabilities","description":"Tools available for your current plan — call whoami first if unsure of plan. Prefer v7_meta for new work; this tool keeps working.","inputSchema":{"type":"object","properties":{}},"logicalName":"list_capabilities","displayName":"list_capabilities","title":"list_capabilities","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_sports","description":"Prefer v7_meta — one call returns sports, books, markets, routes, and your plan. Sports KashRock covers. Prefer v7_meta for new work; this tool keeps working.","inputSchema":{"type":"object","properties":{}},"logicalName":"list_sports","displayName":"list_sports","title":"list_sports","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_books","description":"Prefer v7_meta — its books carry kind and supports (lines, props, parlays). Live book registry (DFS apps + sportsbooks including Pinnacle, Bovada, Thunderpick, Cloudbet, BetRivers, Betway, Dexsport, Bet365, Picklebet, 1xBet, BetOnline, GG.bet + Kalshi/Polymarket). Prefer v7_meta for new work; this tool keeps working.","inputSchema":{"type":"object","properties":{}},"logicalName":"list_books","displayName":"list_books","title":"list_books","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"list_markets","description":"Prefer v7_meta — it lists markets alongside the routes table that consumes them. Canonical prop stat_types and /lines market names agents should use. Prefer v7_meta for new work; this tool keeps working.","inputSchema":{"type":"object","properties":{}},"logicalName":"list_markets","displayName":"list_markets","title":"list_markets","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"explain_error","description":"Turn an API/MCP error string into a plain-English next step.","inputSchema":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}},"logicalName":"explain_error","displayName":"explain_error","title":"explain_error","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"suggest_build","description":"Given a one-line app goal, return which MCP tools + plan to use (no endpoints required).","inputSchema":{"type":"object","required":["goal"],"properties":{"goal":{"type":"string"}}},"logicalName":"suggest_build","displayName":"suggest_build","title":"suggest_build","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_props","description":"Prefer v7_props — board=dfs is this same board. DFS player props only. Sportsbook player props: get_player_props or v7_props with board=main|all. Fair price and EV live on get_lines / get_best_lines (needs two qualifying books), not on this DFS board. Prefer book/market/player filters — default slim+limit keeps payloads small. limit max 500; page with offset. Each row has deeplink + deeplink_level (selection|player|match|board) to open the book. Prefer v7_props for new work; this tool keeps work","inputSchema":{"type":"object","required":["sport"],"properties":{"book":{"type":"string","default":""},"slim":{"type":"boolean","default":true},"limit":{"type":"integer","default":50},"sport":{"type":"string"},"market":{"type":"string","default":""},"offset":{"type":"integer","default":0},"player":{"type":"string","default":""},"market_contains":{"type":"string","default":""}}},"logicalName":"get_props","displayName":"get_props","title":"get_props","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_player_props","description":"Prefer v7_props — board=main|all covers DFS and sportsbook props. DFS + sportsbook named-player props. Default view=groups + slim — not the full 8MB dump. Each row has deeplink + deeplink_level (selection|player|match|board) to open the book. An empty result says why: available is false with a reason (no_sportsbook_lists_player_props for board=main when no sportsbook lists player props for the sport, so use board=all; no_props_listed; no_props_match_filters) and a hint. A row that could not be t","inputSchema":{"type":"object","required":["sport"],"properties":{"book":{"type":"string","default":""},"slim":{"type":"boolean","default":true},"view":{"type":"string","default":"groups"},"board":{"type":"string","default":"all"},"limit":{"type":"integer","default":50},"sport":{"type":"string"},"market":{"type":"string","default":""},"offset":{"type":"integer","default":0},"player":{"type":"string","default":""},"event_id":{"type":"string","default":""},"player_id":{"type":"string","default":""},"market_contains":{"type":"string","default":""},"include_event_lines":{"type":"boolean","default":false}}},"logicalName":"get_player_props","displayName":"get_player_props","title":"get_player_props","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_moneylines","description":"Prefer v7_lines with view=moneyline. Team match moneylines from consensus lines board (not DFS props). Upcoming only by default. Prefer v7_lines for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport"],"properties":{"book":{"type":"string","default":""},"limit":{"type":"integer","default":50},"sport":{"type":"string"},"offset":{"type":"integer","default":0}}},"logicalName":"get_moneylines","displayName":"get_moneylines","title":"get_moneylines","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_lines","description":"Prefer v7_lines — view=consensus is the same board. Mainlines across sportsbooks, prediction markets and DFS Teams with a KashRock fair price and EV (Hobby+). Upcoming matches only by default; include_started=true adds matches already underway. Every outcome lists every book's price. fair (on each market and outcome) is the median of de-vigged prices from books that price both sides themselves, are fresh, and sit inside the overround band; with fewer than two such books it is available false wit","inputSchema":{"type":"object","required":["sport"],"properties":{"sport":{"type":"string"},"market":{"type":"string","default":""},"event_id":{"type":"string","default":""},"include_started":{"type":"boolean","default":false}}},"logicalName":"get_lines","displayName":"get_lines","title":"get_lines","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_best_lines","description":"Prefer v7_lines — ev_pct on each price ranks the same edges. Top positive-EV prices from /lines, ranked (useful operation — not raw board dump). Only markets with an available fair price can have an edge. Upcoming matches only by default; include_started=true adds matches already underway. Prefer v7_lines for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport"],"properties":{"limit":{"type":"integer","default":25},"sport":{"type":"string"},"market":{"type":"string","default":""},"include_started":{"type":"boolean","default":false}}},"logicalName":"get_best_lines","displayName":"get_best_lines","title":"get_best_lines","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_gaps","description":"DFS book-vs-book line spreads for the same player/event/market (Hobby+). Prefer v7_props for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport"],"properties":{"book":{"type":"string","default":""},"limit":{"type":"integer","default":50},"sport":{"type":"string"},"market":{"type":"string","default":""},"offset":{"type":"integer","default":0},"player":{"type":"string","default":""},"min_gap":{"type":"number","default":0.5},"market_contains":{"type":"string","default":""}}},"logicalName":"get_gaps","displayName":"get_gaps","title":"get_gaps","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_coverage","description":"Prefer v7_meta with include=boards — books_on_board per sport in one call. How many props each book has on the live board for a sport. Prefer v7_meta for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport"],"properties":{"sport":{"type":"string"}}},"logicalName":"get_coverage","displayName":"get_coverage","title":"get_coverage","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_media","description":"Prefer v7_players with include=media. Resolve player faces + team logos. Same links shape as props (player_image, team_logo). Prefer v7_players for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport"],"properties":{"team":{"type":"string","default":""},"sport":{"type":"string"},"player":{"type":"string","default":""},"team_id":{"type":"string","default":""},"opponent":{"type":"string","default":""},"player_id":{"type":"string","default":""}}},"logicalName":"get_media","displayName":"get_media","title":"get_media","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_player_snapshot","description":"Prefer v7_players — id= plus include=media, and v7_props for the prop groups. One-shot: media links + slim player-prop groups for a player (agent-friendly). Prefer v7_props for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","player"],"properties":{"board":{"type":"string","default":"all"},"limit":{"type":"integer","default":50},"sport":{"type":"string"},"player":{"type":"string"},"market_contains":{"type":"string","default":""}}},"logicalName":"get_player_snapshot","displayName":"get_player_snapshot","title":"get_player_snapshot","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"search_players","description":"Prefer v7_players with q=. Find a player by nickname. Returns kr_pl_* ids. limit caps rows (default 25, max 200). Prefer v7_players for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","q"],"properties":{"q":{"type":"string"},"limit":{"type":"integer","default":25},"sport":{"type":"string"}}},"logicalName":"search_players","displayName":"search_players","title":"search_players","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_player","description":"Prefer v7_players with id=. Player profile. player_id is kr_pl_* (preferred), slug, or nickname. For LoL, Dota 2\n        and Valorant the profile has totals, last-30/90-day windows and recent maps; include=heroes adds\n        the most-played champions, heroes or agents with games, win rate and key stats (win rate is null\n        when no map has a stored result; games_with_result says how many did). Prefer v7_players for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","player_id"],"properties":{"sport":{"type":"string"},"include":{"type":"string","default":""},"player_id":{"type":"string"}}},"logicalName":"get_player","displayName":"get_player","title":"get_player","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_player_stats","description":"Prefer v7_players with include=stats. Canonical player stats (KPR and related). Prefer v7_players for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","player_id"],"properties":{"sport":{"type":"string"},"player_id":{"type":"string"}}},"logicalName":"get_player_stats","displayName":"get_player_stats","title":"get_player_stats","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_player_stats_full","description":"Prefer v7_players with include=stats_full. Full Redis aggregate: period stats + foundation + recent maps. player = kr_pl_* id, slug, or nickname. A nickname shared by several players returns candidates. Prefer v7_players for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","player"],"properties":{"sport":{"type":"string"},"player":{"type":"string"},"recent_limit":{"type":"integer","default":20}}},"logicalName":"get_player_stats_full","displayName":"get_player_stats_full","title":"get_player_stats_full","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_rankings","description":"Prefer v7_players with sort=rank. Player rankings. filter: lifetime | last_3_months. Prefer v7_players for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport"],"properties":{"sport":{"type":"string"},"filter":{"type":"string","default":"lifetime"}}},"logicalName":"get_rankings","displayName":"get_rankings","title":"get_rankings","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"research_board","description":"Research slips for the current board. Prefer v7_props for new work; this tool keeps working.","inputSchema":{"type":"object","properties":{"sport":{"type":"string","default":"cs2"},"recent":{"type":"integer","default":0}}},"logicalName":"research_board","displayName":"research_board","title":"research_board","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"research_board_tapes","description":"Research quote tapes for the current board (Hobby+). Prefer v7_history for new work; this tool keeps working.","inputSchema":{"type":"object","properties":{"sport":{"type":"string","default":"cs2"}}},"logicalName":"research_board_tapes","displayName":"research_board_tapes","title":"research_board_tapes","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"research_player","description":"Prefer v7_players with include=research. Career tape for one player and market. player is kr_pl_* (preferred), catalog slug, or nickname. Empty tape is 200, not 404. Prefer v7_players for new work; this tool keeps working.","inputSchema":{"type":"object","required":["player"],"properties":{"sport":{"type":"string","default":"cs2"},"market":{"type":"string","default":"kills_maps_1_2"},"player":{"type":"string"},"recent":{"type":"integer","default":0}}},"logicalName":"research_player","displayName":"research_player","title":"research_player","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_matches","description":"Prefer v7_matches — same list plus date, team, and q filters and include=boxscore/prep/veto/maps/player_board/lines/streams/h2h. Match list (kr_match_id, kr_tm_* team ids). status: upcoming | live | finished. Builder+. finished uses vault history. Each match carries lan (true, false or null), lan_basis, competition_tier with competition_tier_source, competition_event_type (online or offline), competition_event_scope, stage_name and competition_country. Null means the tournament data does not sta","inputSchema":{"type":"object","required":["sport"],"properties":{"limit":{"type":"integer","default":200},"sport":{"type":"string"},"offset":{"type":"integer","default":0},"status":{"type":"string","default":"upcoming"},"end_date":{"type":"string","default":""},"start_date":{"type":"string","default":""}}},"logicalName":"get_matches","displayName":"get_matches","title":"get_matches","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_match","description":"Prefer v7_matches with ids= or q=. One match by kr_match_id (preferred) or slug. Teams/players are KashRock ids. Builder+. Carries lan (true, false or null) with lan_basis, competition_tier with competition_tier_source, competition_event_type, stage_name and competition_country; null means not stated by the tournament data. Prefer v7_matches for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport"],"properties":{"slug":{"type":"string","default":""},"sport":{"type":"string"},"match_id":{"type":"string","default":""}}},"logicalName":"get_match","displayName":"get_match","title":"get_match","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"search_matches","description":"Prefer v7_matches — team= and date= cover the same search. Find matches by team name(s) and optional YYYY-MM-DD. Builder+. Matches carry lan (true, false or null) with lan_basis and the competition tier and event type fields; null means not stated by the tournament data. Prefer v7_matches for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","team1"],"properties":{"date":{"type":"string","default":""},"sport":{"type":"string"},"team1":{"type":"string"},"team2":{"type":"string","default":""}}},"logicalName":"search_matches","displayName":"search_matches","title":"search_matches","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_team_matches","description":"Prefer v7_matches with team= and status=finished. Full finished team schedule from the history vault. Builder+. The team can be a team name, a slug or a KashRock team id (kr_tm_...); the id finds the same matches a name does. Prefer v7_matches for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","team"],"properties":{"team":{"type":"string"},"limit":{"type":"integer","default":200},"sport":{"type":"string"},"offset":{"type":"integer","default":0},"end_date":{"type":"string","default":""},"start_date":{"type":"string","default":""}}},"logicalName":"get_team_matches","displayName":"get_team_matches","title":"get_team_matches","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_team","description":"The team behind a KashRock team id, with its record and recent matches. The team can be a kr_tm_ id from any match payload (team1_kr_tm, team2_kr_tm, winner_kr_tm), a slug or a name. A team that was merged into another answers as the survivor and says so in merged_from, so an id published earlier still resolves. Prefer v7_teams for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","team"],"properties":{"team":{"type":"string"},"sport":{"type":"string"},"recent":{"type":"integer","default":5}}},"logicalName":"get_team","displayName":"get_team","title":"get_team","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_team_stats","description":"A team's aggregate record, the span it covers and its most-played opponents. Takes the same handles as get_team: a kr_tm_ id, a slug or a name. Prefer v7_teams for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","team"],"properties":{"team":{"type":"string"},"sport":{"type":"string"}}},"logicalName":"get_team_stats","displayName":"get_team_stats","title":"get_team_stats","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_streams","description":"Prefer v7_matches with include=streams. Live streams for a sport: Twitch, Kick and YouTube. Each stream has platform, channel, url and embed_url, plus language, official, name, viewers and thumbnail when known, and kr_match_id when it covers a listed match. Prefer v7_live for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport"],"properties":{"sport":{"type":"string"}}},"logicalName":"get_streams","displayName":"get_streams","title":"get_streams","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_live_games","description":"Prefer v7_live — sport=all lists every title in one call. List games with live in-game telemetry (KDA frames). Sandbox=all sports, 30-60s delayed; Hobby=all sports, 5s delayed; Builder+=real-time. Each game_id is the kr_match_id; use it with get_live_boxscore. Prefer v7_live for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport"],"properties":{"sport":{"type":"string"}}},"logicalName":"get_live_games","displayName":"get_live_games","title":"get_live_games","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_live_boxscore","description":"Prefer v7_live with include=boxscore. Live in-game board (K/D/A plus sport-native state: CS2 money/bomb, LoL gold/towers, Dota 2 last hits/denies/GPM/XPM/net worth, Deadlock gold/CS/level). Also returns maps (every map this series already finished, with its final player stats, provisional until the vault fills it) and columns (the title's own ordered stat columns: key, label, format). Each title carries only its own stats; an unmeasured stat is absent, never 0. Omit game_id to list live games (e","inputSchema":{"type":"object","required":["sport"],"properties":{"sport":{"type":"string"},"game_id":{"type":"string","default":""}}},"logicalName":"get_live_boxscore","displayName":"get_live_boxscore","title":"get_live_boxscore","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_live_frame","description":"Prefer v7_live with include=frame. Raw live NormalizedFrame + metadata for one game_id (kr_match_id from get_live_games). Sandbox=all sports, 30-60s delayed; Hobby=all sports, 5s delayed; Builder+=real-time.","inputSchema":{"type":"object","required":["sport","game_id"],"properties":{"sport":{"type":"string"},"game_id":{"type":"string"}}},"logicalName":"get_live_frame","displayName":"get_live_frame","title":"get_live_frame","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_live_coverage","description":"Share of listed CS2 matches that had live in-game stats (has_live_stats), by tournament and tier, over the last 1-14 days. Same on every plan. Prefer v7_meta for new work; this tool keeps working.","inputSchema":{"type":"object","properties":{"days":{"type":"integer","default":14}}},"logicalName":"get_live_coverage","displayName":"get_live_coverage","title":"get_live_coverage","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_live_events","description":"Prefer v7_live with include=events. Sport-native live events (CS2 kills with killer, victim, weapon, headshot, map and round; bomb plant, defuse and explosion; round wins with how they ended; map pick/ban vetoes and map/match start and end markers; plus towers, roshan) for one game_id (kr_match_id from get_live_games). Every event carries its map number, and every map of the series is included. Sandbox=30-60s delayed, Hobby=5s delayed, Builder+=real-time. Prefer v7_live for new work; this tool k","inputSchema":{"type":"object","required":["sport","game_id"],"properties":{"sport":{"type":"string"},"game_id":{"type":"string"}}},"logicalName":"get_live_events","displayName":"get_live_events","title":"get_live_events","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_live_odds","description":"Prefer v7_live with include=odds. Shifting betting odds (live in-play and pre-match steam moves) and markets across sportsbooks, DFS apps, and prediction markets. Hobby+. Omit game_id to list matches with odds. Optional status=all|live|prematch. Prefer v7_live for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport"],"properties":{"sport":{"type":"string"},"status":{"type":"string","default":"all"},"game_id":{"type":"string","default":""}}},"logicalName":"get_live_odds","displayName":"get_live_odds","title":"get_live_odds","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_live_odds_history","description":"Prefer v7_live with include=odds_history. Audit log of in-game odds shifts and line movements for one match. Hobby+. Prefer v7_live for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","game_id"],"properties":{"sport":{"type":"string"},"game_id":{"type":"string"}}},"logicalName":"get_live_odds_history","displayName":"get_live_odds_history","title":"get_live_odds_history","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_live_ws","description":"Live push WebSocket contract (Builder+). Returns URL, auth, subscribe ops — connect from your app; MCP cannot hold the socket. The v7 socket is /v7/live/ws (same contract). Prefer v7_meta for new work; this tool keeps working.","inputSchema":{"type":"object","properties":{"sport":{"type":"string","default":"cs2"}}},"logicalName":"get_live_ws","displayName":"get_live_ws","title":"get_live_ws","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_gamelogs","description":"Prefer v7_players with include=gamelogs. Per-map player gamelogs with each title's own stats only (CS2: kills, ADR, headshots, assists, flash_assists and assists_total (the scoreboard assists figure — one per kill assisted, so a damage-and-flash kill counts once); Dota 2: hero, GPM, last hits; LoL: champion, gold, CS); an unmeasured stat is absent, never 0 or null. Newest first. player = kr_pl_*, slug, or nickname; a nickname shared by several players returns candidates. Page size is capped to y","inputSchema":{"type":"object","required":["sport","player"],"properties":{"limit":{"type":"integer","default":200},"sport":{"type":"string"},"cursor":{"type":"string","default":""},"player":{"type":"string"},"date_to":{"type":"string","default":""},"include":{"type":"string","default":""},"date_from":{"type":"string","default":""}}},"logicalName":"get_gamelogs","displayName":"get_gamelogs","title":"get_gamelogs","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_player_combo","description":"A combo prop (\"Kason + Hotancold\") as a research subject. combo = the kr_cb_* id from a combo prop's subject_id (the same id on every book, whatever order the names are listed in). Returns the members and, for every map they all played, the sum of their stat, newest first. stat is a counting stat (kills, deaths, assists, headshots, first_kills, first_deaths, trade_kills, flash_assists, clutches, multikills, damage_dealt). scope=\"map\" lists maps; scope=\"match\" sums each match's maps. Grading sums","inputSchema":{"type":"object","required":["sport","combo"],"properties":{"stat":{"type":"string","default":"kills"},"combo":{"type":"string"},"limit":{"type":"integer","default":200},"scope":{"type":"string","default":"map"},"sport":{"type":"string"}}},"logicalName":"get_player_combo","displayName":"get_player_combo","title":"get_player_combo","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_defense_vs_role","description":"What teams allow to the opposing player in each role (Dota 2 lanes, Valorant agent classes): kills, deaths, assists, Dota 2 last hits, Valorant first kills and Underdog fantasy points, vs the league average, with rank (1 = allows the most). Omit team for the league table; team = kr_tm_* id, slug, name or numeric source id. window = last_10, last_20 or last_50 maps. Sandbox=Last 10 only, last 30 days; Hobby=last 90 days; Builder+=full vault.","inputSchema":{"type":"object","required":["sport"],"properties":{"team":{"type":"string","default":""},"sport":{"type":"string"},"window":{"type":"string","default":"last_20"}}},"logicalName":"get_defense_vs_role","displayName":"get_defense_vs_role","title":"get_defense_vs_role","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_boxscore","description":"Prefer v7_matches with include=boxscore. Finished-match vault boxscore + STARTER/SUB lineup and sport-native model fields by slug or kr_match_id (or recent list). Not live KDA — use get_live_boxscore. A finished map never leaves the boxscore: during a series, maps the vault has not filled yet carry their final live stats with provisional true. Each title carries only its own stats (Dota 2 has no ADR or headshots); an unmeasured stat is absent, never 0 or null. columns lists the title's stat colu","inputSchema":{"type":"object","required":["sport"],"properties":{"limit":{"type":"integer","default":20},"sport":{"type":"string"},"include":{"type":"string","default":""},"match_slug":{"type":"string","default":""}}},"logicalName":"get_boxscore","displayName":"get_boxscore","title":"get_boxscore","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_results","description":"Prefer v7_results — same settled grades. Settled prop and line-odds grades: hit | miss | push | void. start/end are YYYY-MM-DD on graded_at (UTC). Rows carry offer_id, canonical_event_id, and opening/closing line+odds when the quote tape has them. Sandbox=last 30 days, Hobby=last 90 days, Builder+=full vault. Prefer v7_results for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport"],"properties":{"end":{"type":"string","default":""},"book":{"type":"string","default":""},"grade":{"type":"string","default":""},"limit":{"type":"integer","default":50},"sport":{"type":"string"},"start":{"type":"string","default":""}}},"logicalName":"get_results","displayName":"get_results","title":"get_results","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_lines_history","description":"Prefer v7_history with kind=lines. Pre-match open and close per book (one price per side, captured before kickoff), plus the quote tape. Every tick carries observed_at and is_live; the tape is pre-match only unless include_live is true. Empty results return available false and a reason. The response, every market and every book carry bo_type and bo_label (BO1, BO3 or BO5; null with a bo_reason when the series length is unknown). Each map handicap and total market has a scope: maps for series map","inputSchema":{"type":"object","required":["sport","match_id"],"properties":{"book":{"type":"string","default":""},"sport":{"type":"string"},"market":{"type":"string","default":""},"match_id":{"type":"string"},"include_live":{"type":"boolean","default":false}}},"logicalName":"get_lines_history","displayName":"get_lines_history","title":"get_lines_history","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_history_tape","description":"Prefer v7_history with kind=contract. Quote tape for a prop/book or market_key. Builder+. Need market_key OR prop_id+book. Prefer v7_history for new work; this tool keeps working.","inputSchema":{"type":"object","properties":{"book":{"type":"string","default":""},"prop_id":{"type":"string","default":""},"market_key":{"type":"string","default":""}}},"logicalName":"get_history_tape","displayName":"get_history_tape","title":"get_history_tape","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_team_h2h","description":"Prefer v7_teams with team1= and team2=. Finished team-vs-team meetings (scores + maps) from the history vault. Prefer v7_teams for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","team1","team2"],"properties":{"limit":{"type":"integer","default":50},"sport":{"type":"string"},"team1":{"type":"string"},"team2":{"type":"string"}}},"logicalName":"get_team_h2h","displayName":"get_team_h2h","title":"get_team_h2h","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_match_prep","description":"Prefer v7_matches with include=prep. Match prep board: team stats, mode winrates, map pool & side biases, form, key player matchups, betting insights. sport = cs2, r6, cod, valorant, or apex. match_slug = KashRock -vs- slug or kr_match_id. Builder+. Prefer v7_matches for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","match_slug"],"properties":{"date":{"type":"string","default":""},"sport":{"type":"string"},"team1":{"type":"string","default":""},"team2":{"type":"string","default":""},"match_slug":{"type":"string"}}},"logicalName":"get_match_prep","displayName":"get_match_prep","title":"get_match_prep","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_player_board","description":"Prefer v7_matches with include=player_board. Player averages + favourite weapons (CS2) or agent/role board (Valorant). match_slug = KashRock -vs- slug or kr_match_id (not provider ids). Builder+. Prefer v7_matches for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","match_slug"],"properties":{"date":{"type":"string","default":""},"sport":{"type":"string"},"team1":{"type":"string","default":""},"team2":{"type":"string","default":""},"match_slug":{"type":"string"}}},"logicalName":"get_player_board","displayName":"get_player_board","title":"get_player_board","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_match_veto","description":"Prefer v7_matches with include=veto. Pre-match map veto/pick-ban sequence (order, team, action, map). sport = cs2, valorant, or r6. match_slug = KashRock -vs- slug or kr_match_id. veto_complete is false before the veto has happened. An empty veto returns available false with a reason (veto_not_started, veto_not_published, provider_has_no_veto, match_not_indexed, sport_not_supported). Builder+. Prefer v7_matches for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","match_slug"],"properties":{"date":{"type":"string","default":""},"sport":{"type":"string"},"team1":{"type":"string","default":""},"team2":{"type":"string","default":""},"match_slug":{"type":"string"}}},"logicalName":"get_match_veto","displayName":"get_match_veto","title":"get_match_veto","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_tournament_maps","description":"Prefer v7_matches with include=maps. CS2 tournament map picks/bans + T/CT winrates for a match. match_slug = KashRock -vs- slug or kr_match_id. Builder+. Prefer v7_matches for new work; this tool keeps working.","inputSchema":{"type":"object","required":["sport","match_slug"],"properties":{"sport":{"type":"string"},"match_slug":{"type":"string"}}},"logicalName":"get_tournament_maps","displayName":"get_tournament_maps","title":"get_tournament_maps","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Esports-API-Props-Odds-Live-Stats-Free-Key-KashRock&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3Aua2FzaHJvY2suY29tL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Esports-API-Props-Odds-Live-Stats-Free-Key-KashRock%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.kashrock.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Esports-API-Props-Odds-Live-Stats-Free-Key-KashRock%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.kashrock.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Esports+API+%E2%80%94+Props%2C+Odds+%26+Live+Stats%2C+Free+Key+%7C+KashRock&connectorUrl=https%3A%2F%2Fmcp.kashrock.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Esports-API-Props-Odds-Live-Stats-Free-Key-KashRock\" --url \"https://mcp.kashrock.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/kashrock-mcp-6eceb0e553","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/kashrock-mcp-6eceb0e553/tools/{tool}","mcpServerUrl":"https://mcp.kashrock.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/kashrock-mcp-6eceb0e553?live=1"}