{"name":"com.kashrock/kashrock-mcp","slug":"kashrock-mcp","title":"KashRock MCP","description":"Esports props, odds, live scores, and player stats across 8 titles for agents.","url":"https://mcp.market/server/kashrock-mcp","rating":null,"grade":"B","score":82,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":32,"stars":0,"forks":0,"downloads_week":537,"last_push_at":"2026-09-19T01:42:23.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"pypi","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/kashrockapi/kashrock-mcp","website":"https://www.kashrock.com/mcp","version":"0.6.6","remotes":[],"packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"kashrock-mcp","version":"0.6.6","runtimeHint":"uvx","transport":{"type":"stdio"},"environmentVariables":[{"description":"KashRock API key. Optional — skips the login tool's Google sign-in flow by supplying an existing key directly.","isSecret":true,"name":"KASHROCK_API_KEY"}]}],"tools":[{"name":"explain_error","description":"Turn an API/MCP error string into a plain-English next step.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_best_lines","description":"Top cross-venue edges from /lines (useful operation — not raw board dump). live_only=true (default) drops started matches.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_boxscore","description":"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. Sandbox=last 30 days, Hobby=last 90 days, Builder+=full vault.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_coverage","description":"How many props each book has on the live board for a sport.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_gamelogs","description":"Per-map player gamelogs (kills, ADR, gold, GPM, hero when present). player = slug, nickname, or kr_pl_*. Sandbox=last 30 days, Hobby=last 90 days, Builder+=full vault.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_gaps","description":"DFS book-vs-book line spreads for the same player/event/market (Hobby+).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_history_tape","description":"Quote tape for a prop/book or market_key. Builder+. Need market_key OR prop_id+book.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_lines","description":"Consensus mainlines across sportsbooks, DFS Teams, and prediction markets (Hobby+). live_only=true (default) drops started matches.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_lines_history","description":"Opening and closing team mainlines for a match slug or kr_match_id. Builder+. Not live in-play steam.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_live_boxscore","description":"Live in-game board (K/D/A plus sport-native state: CS2 money/bomb, LoL gold/towers, Deadlock gold/CS/level). Omit game_id to list live games. Sandbox=CS2, 30-60s delayed; Hobby=all sports, 5s delayed; Builder+=real-time.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_live_events","description":"Sport-native live events (kills, bomb, towers, roshan, round wins) for one game_id. Sandbox=30-60s delayed, Hobby=5s delayed, Builder+=real-time.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_live_frame","description":"Raw live NormalizedFrame + metadata for one game_id. Sandbox=CS2, 30-60s delayed; Hobby=all sports, 5s delayed; Builder+=real-time.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_live_games","description":"List games with live in-game telemetry (KDA frames). Sandbox=CS2, 30-60s delayed; Hobby=all sports, 5s delayed; Builder+=real-time. Use game_id with get_live_boxscore.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_live_odds","description":"Shifting betting odds (live in-play and pre-match steam moves) and markets across premier sportsbooks. Hobby+. Omit game_id to list matches with odds. Optional status=all|live|prematch.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_live_odds_history","description":"Audit log of in-game odds shifts and line movements for one match. Hobby+.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_live_ws","description":"Live push WebSocket contract (Builder+). Returns URL, auth, subscribe ops — connect from your app; MCP cannot hold the socket.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_match","description":"One match by kr_match_id (preferred) or slug. Teams/players are KashRock ids. Builder+.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_match_prep","description":"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+.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_matches","description":"Match list (kr_match_id, kr_tm_* team ids). status: upcoming | live | finished. Builder+. finished uses vault history.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_media","description":"Resolve player faces + team logos. Same links shape as props (player_image, team_logo).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_moneylines","description":"Team match moneylines from consensus lines board (not DFS props). Upcoming only by default.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_player","description":"Player profile. player_id is kr_pl_* (preferred) or nickname.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_player_board","description":"Player averages + favourite weapons (CS2) or agent/role board (Valorant). match_slug = KashRock -vs- slug or kr_match_id (not provider ids). Builder+.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_player_props","description":"DFS + sportsbook named-player props. Default view=groups + slim — not the full 8MB dump.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_player_snapshot","description":"One-shot: media links + slim player-prop groups for a player (agent-friendly).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_player_stats","description":"Canonical player stats (KPR and related).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_player_stats_full","description":"Full Redis aggregate: period stats + foundation + recent maps. player = nickname or kr_pl_* id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_props","description":"DFS player props only. Prefer book/market/player filters — default slim+limit keeps payloads small.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_rankings","description":"Player rankings. filter: lifetime | last_3_months.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_results","description":"Settled prop grades: hit | miss | push | pending | error. Sandbox=last 30 days, Hobby=last 90 days, Builder+=full vault.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_streams","description":"Live Twitch/Kick streams for a sport (viewer counts + URLs).","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_team_h2h","description":"Finished team-vs-team meetings (scores + maps) from the history vault.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_team_matches","description":"Full finished team schedule from the history vault. Builder+.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_tournament_maps","description":"CS2 tournament map picks/bans + T/CT winrates for a match. match_slug = KashRock -vs- slug or kr_match_id. Builder+.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_books","description":"Live book registry (DFS apps + sportsbooks including Pinnacle, Bovada, Thunderpick, Cloudbet, BetRivers + Kalshi/Polymarket).","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_capabilities","description":"Tools available for your current plan — call whoami first if unsure of plan.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_markets","description":"Canonical prop stat_types and /lines market names agents should use.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_sports","description":"Sports KashRock covers.","write_action":false,"price_micros":0,"input_schema":null},{"name":"login","description":"Open Google sign-in in the browser and store a KashRock API key locally.","write_action":false,"price_micros":0,"input_schema":null},{"name":"research_board","description":"Research slips for the current board.","write_action":false,"price_micros":0,"input_schema":null},{"name":"research_board_tapes","description":"Research quote tapes for the current board (Hobby+).","write_action":false,"price_micros":0,"input_schema":null},{"name":"research_player","description":"Career tape for one player and market. player is kr_pl_* (preferred), catalog slug, or nickname. Empty tape is 200, not 404.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_matches","description":"Find matches by team name(s) and optional YYYY-MM-DD. Builder+.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_players","description":"Find a player by nickname. Returns kr_pl_* ids. limit caps rows (default 25, max 200).","write_action":false,"price_micros":0,"input_schema":null},{"name":"suggest_build","description":"Given a one-line app goal, return which MCP tools + plan to use (no endpoints required).","write_action":false,"price_micros":0,"input_schema":null},{"name":"whoami","description":"Your KashRock plan, quota remaining, and unlocked data drawers.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":82,"grade":"B","scanned_at":"2026-09-19T19:28:59.568Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T19:28:59.562Z","components":{"code":{"score":25,"max":25,"notes":["17 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":7,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year","website matches verified namespace"]}},"findings":[],"inputs":{"packages":[{"registryType":"pypi","identifier":"kashrock-mcp","version":"0.6.6","found":true,"weeklyDownloads":537,"license":"MIT","dependencyCount":2,"publishedAt":"2026-09-19T00:08:33.858081Z","repositoryUrl":"https://github.com/kashrockapi/kashrock-mcp"}],"repo":{"found":true,"owner":"kashrockapi","repo":"kashrock-mcp","archived":false,"pushedAt":"2026-09-19T01:42:23Z","stars":0,"forks":0,"openIssues":1,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/225764227?v=4","ownerCreatedAt":"2025-08-10T22:25:54Z","license":"MIT"},"icon":{"url":"https://www.kashrock.com/icon.png?icon.0m1uka28jeir7.png","source":"registry","width":500,"height":500},"presence":{"stars":0,"forks":0,"downloadsWeek":537,"license":"MIT","lastPushAt":"2026-09-19T01:42:23.000Z","score":32}}}},"grade_history":[],"reviews":[]}