# KashRock MCP (pypi · kashrock-mcp)

Esports props, odds, live scores, and player stats across 8 titles for agents.

- Trust score: 64/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-21

## Components

- pypi · `kashrock-mcp`: 64/100 (this document), [markdown](https://verifymcp.io/servers/com-kashrock-kashrock-mcp/kashrock-mcp.md), [page](https://verifymcp.io/servers/com-kashrock-kashrock-mcp/kashrock-mcp)

## Channel facts

- Registry: `pypi`
- Package: `kashrock-mcp`
- Version: `0.6.6`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-21.

- **Supply Chain Security**: 100/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - Runs setuptools.build_meta at install time, a recognised native-build step with no shell scripting around it.
  - 1 of 31 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 32/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: no license is declared.
  - Actively maintained (last published 2 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 64/100
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 2578 tokens (~56/item across 46 items; 46 tools + 0 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (2% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 46 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 46 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

**Unverified: 1 category.** A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the KashRock MCP server?

KashRock MCP runs locally as a PyPI package, launched with uvx kashrock-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add com-kashrock-kashrock-mcp -- uvx kashrock-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "com-kashrock-kashrock-mcp": {
      "command": "uvx",
      "args": [
        "kashrock-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-kashrock-kashrock-mcp": {
      "command": "uvx",
      "args": [
        "kashrock-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add com-kashrock-kashrock-mcp -- uvx kashrock-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-kashrock-kashrock-mcp": {
      "type": "local",
      "command": [
        "uvx",
        "kashrock-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-kashrock-kashrock-mcp --command uvx --arg kashrock-mcp
```

### Hermes

```yaml
mcp_servers:
  com-kashrock-kashrock-mcp:
    command: "uvx"
    args: ["kashrock-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "com-kashrock-kashrock-mcp": {
      "Transport": "stdio",
      "Command": "uvx",
      "Arguments": [
        "kashrock-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-kashrock-kashrock-mcp -t stdio -c uvx -a kashrock-mcp
```

### Other

```json
{
  "mcpServers": {
    "com-kashrock-kashrock-mcp": {
      "command": "uvx",
      "args": [
        "kashrock-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-20 (score 64, +15)

- [security improvement] Malware scan: unverified → pass

### 2026-09-19 (score 49)

First indexed and scored.

## MCP tools (46)

### `login` (~23 tokens)

Open Google sign-in in the browser and store a KashRock API key locally.

Output parameters:

- `result` (string)

### `whoami` (~21 tokens)

Your KashRock plan, quota remaining, and unlocked data drawers.

### `list_capabilities` (~25 tokens)

Tools available for your current plan — call whoami first if unsure of plan.

### `list_sports` (~14 tokens)

Sports KashRock covers.

### `list_books` (~40 tokens)

Live book registry (DFS apps + sportsbooks including Pinnacle, Bovada, Thunderpick, Cloudbet, BetRivers + Kalshi/Polymarket).

### `list_markets` (~23 tokens)

Canonical prop stat_types and /lines market names agents should use.

### `explain_error` (~29 tokens)

Turn an API/MCP error string into a plain-English next step.

Input parameters:

- `message` (string, required)

### `suggest_build` (~35 tokens)

Given a one-line app goal, return which MCP tools + plan to use (no endpoints required).

Input parameters:

- `goal` (string, required)

### `get_props` (~86 tokens)

DFS player props only. Prefer book/market/player filters — default slim+limit keeps payloads small.

Input parameters:

- `book` (string)
- `limit` (integer)
- `market` (string)
- `market_contains` (string)
- `offset` (integer)
- `player` (string)
- `slim` (boolean)
- `sport` (string, required)

### `get_player_props` (~127 tokens)

DFS + sportsbook named-player props. Default view=groups + slim — not the full 8MB dump.

Input parameters:

- `board` (string)
- `book` (string)
- `event_id` (string)
- `include_event_lines` (boolean)
- `limit` (integer)
- `market` (string)
- `market_contains` (string)
- `offset` (integer)
- `player` (string)
- `player_id` (integer)
- `slim` (boolean)
- `sport` (string, required)
- `view` (string)

### `get_moneylines` (~55 tokens)

Team match moneylines from consensus lines board (not DFS props). Upcoming only by default.

Input parameters:

- `book` (string)
- `limit` (integer)
- `offset` (integer)
- `sport` (string, required)

### `get_lines` (~65 tokens)

Consensus mainlines across sportsbooks, DFS Teams, and prediction markets (Hobby+). live_only=true (default) drops started matches.

Input parameters:

- `event_id` (string)
- `live_only` (boolean)
- `market` (string)
- `sport` (string, required)

### `get_best_lines` (~66 tokens)

Top cross-venue edges from /lines (useful operation — not raw board dump). live_only=true (default) drops started matches.

Input parameters:

- `limit` (integer)
- `live_only` (boolean)
- `market` (string)
- `sport` (string, required)

### `get_gaps` (~86 tokens)

DFS book-vs-book line spreads for the same player/event/market (Hobby+).

Input parameters:

- `book` (string)
- `limit` (integer)
- `market` (string)
- `market_contains` (string)
- `min_gap` (number)
- `offset` (integer)
- `player` (string)
- `sport` (string, required)

### `get_coverage` (~30 tokens)

How many props each book has on the live board for a sport.

Input parameters:

- `sport` (string, required)

### `get_media` (~71 tokens)

Resolve player faces + team logos. Same links shape as props (player_image, team_logo).

Input parameters:

- `opponent` (string)
- `player` (string)
- `player_id` (integer)
- `sport` (string, required)
- `team` (string)
- `team_id` (integer)

### `get_player_snapshot` (~63 tokens)

One-shot: media links + slim player-prop groups for a player (agent-friendly).

Input parameters:

- `board` (string)
- `limit` (integer)
- `market_contains` (string)
- `player` (string, required)
- `sport` (string, required)

### `search_players` (~53 tokens)

Find a player by nickname. Returns kr_pl_* ids. limit caps rows (default 25, max 200).

Input parameters:

- `limit` (integer)
- `q` (string, required)
- `sport` (string, required)

### `get_player` (~38 tokens)

Player profile. player_id is kr_pl_* (preferred) or nickname.

Input parameters:

- `player_id` (string, required)
- `sport` (string, required)

### `get_player_stats` (~34 tokens)

Canonical player stats (KPR and related).

Input parameters:

- `player_id` (string, required)
- `sport` (string, required)

### `get_player_stats_full` (~53 tokens)

Full Redis aggregate: period stats + foundation + recent maps. player = nickname or kr_pl_* id.

Input parameters:

- `player` (string, required)
- `recent_limit` (integer)
- `sport` (string, required)

### `get_rankings` (~36 tokens)

Player rankings. filter: lifetime | last_3_months.

Input parameters:

- `filter` (string)
- `sport` (string, required)

### `research_board` (~29 tokens)

Research slips for the current board.

Input parameters:

- `recent` (integer)
- `sport` (string)

### `research_board_tapes` (~29 tokens)

Research quote tapes for the current board (Hobby+).

Input parameters:

- `sport` (string)

### `research_player` (~68 tokens)

Career tape for one player and market. player is kr_pl_* (preferred), catalog slug, or nickname. Empty tape is 200, not 404.

Input parameters:

- `market` (string)
- `player` (string, required)
- `recent` (integer)
- `sport` (string)

### `get_matches` (~80 tokens)

Match list (kr_match_id, kr_tm_* team ids). status: upcoming | live | finished. Builder+. finished uses vault history.

Input parameters:

- `end_date` (string)
- `limit` (integer)
- `offset` (integer)
- `sport` (string, required)
- `start_date` (string)
- `status` (string)

### `get_match` (~53 tokens)

One match by kr_match_id (preferred) or slug. Teams/players are KashRock ids. Builder+.

Input parameters:

- `match_id` (string)
- `slug` (string)
- `sport` (string, required)

### `search_matches` (~54 tokens)

Find matches by team name(s) and optional YYYY-MM-DD. Builder+.

Input parameters:

- `date` (string)
- `sport` (string, required)
- `team1` (string, required)
- `team2` (string)

### `get_team_matches` (~65 tokens)

Full finished team schedule from the history vault. Builder+.

Input parameters:

- `end_date` (string)
- `limit` (integer)
- `offset` (integer)
- `sport` (string, required)
- `start_date` (string)
- `team` (string, required)

### `get_streams` (~30 tokens)

Live Twitch/Kick streams for a sport (viewer counts + URLs).

Input parameters:

- `sport` (string, required)

### `get_live_games` (~64 tokens)

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.

Input parameters:

- `sport` (string, required)

### `get_live_boxscore` (~94 tokens)

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.

Input parameters:

- `game_id` (string)
- `sport` (string, required)

### `get_live_frame` (~63 tokens)

Raw live NormalizedFrame + metadata for one game_id. Sandbox=CS2, 30-60s delayed; Hobby=all sports, 5s delayed; Builder+=real-time.

Input parameters:

- `game_id` (string, required)
- `sport` (string, required)

### `get_live_events` (~65 tokens)

Sport-native live events (kills, bomb, towers, roshan, round wins) for one game_id. Sandbox=30-60s delayed, Hobby=5s delayed, Builder+=real-time.

Input parameters:

- `game_id` (string, required)
- `sport` (string, required)

### `get_live_odds` (~74 tokens)

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.

Input parameters:

- `game_id` (string)
- `sport` (string, required)
- `status` (string)

### `get_live_odds_history` (~43 tokens)

Audit log of in-game odds shifts and line movements for one match. Hobby+.

Input parameters:

- `game_id` (string, required)
- `sport` (string, required)

### `get_live_ws` (~44 tokens)

Live push WebSocket contract (Builder+). Returns URL, auth, subscribe ops — connect from your app; MCP cannot hold the socket.

Input parameters:

- `sport` (string)

### `get_gamelogs` (~81 tokens)

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.

Input parameters:

- `limit` (integer)
- `player` (string, required)
- `sport` (string, required)

### `get_boxscore` (~88 tokens)

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.

Input parameters:

- `limit` (integer)
- `match_slug` (string)
- `sport` (string, required)

### `get_results` (~56 tokens)

Settled prop grades: hit | miss | push | pending | error. Sandbox=last 30 days, Hobby=last 90 days, Builder+=full vault.

Input parameters:

- `grade` (string)
- `sport` (string, required)

### `get_lines_history` (~61 tokens)

Opening and closing team mainlines for a match slug or kr_match_id. Builder+. Not live in-play steam.

Input parameters:

- `book` (string)
- `market` (string)
- `match_id` (string, required)
- `sport` (string, required)

### `get_history_tape` (~54 tokens)

Quote tape for a prop/book or market_key. Builder+. Need market_key OR prop_id+book.

Input parameters:

- `book` (string)
- `market_key` (string)
- `prop_id` (string)

### `get_team_h2h` (~57 tokens)

Finished team-vs-team meetings (scores + maps) from the history vault.

Input parameters:

- `limit` (integer)
- `sport` (string, required)
- `team1` (string, required)
- `team2` (string, required)

### `get_match_prep` (~108 tokens)

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+.

Input parameters:

- `date` (string)
- `match_slug` (string, required)
- `sport` (string, required)
- `team1` (string)
- `team2` (string)

### `get_player_board` (~86 tokens)

Player averages + favourite weapons (CS2) or agent/role board (Valorant). match_slug = KashRock -vs- slug or kr_match_id (not provider ids). Builder+.

Input parameters:

- `date` (string)
- `match_slug` (string, required)
- `sport` (string, required)
- `team1` (string)
- `team2` (string)

### `get_tournament_maps` (~59 tokens)

CS2 tournament map picks/bans + T/CT winrates for a match. match_slug = KashRock -vs- slug or kr_match_id. Builder+.

Input parameters:

- `match_slug` (string, required)
- `sport` (string, required)

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Dependencies. The full working is on the page: https://verifymcp.io/servers/com-kashrock-kashrock-mcp/kashrock-mcp#diagnostics

## Score history

- 2026-09-21: 64
- 2026-09-20: 64
- 2026-09-19: 49

## Common questions

### What is the KashRock MCP server?

KashRock MCP is listed in the public MCP registry as com.kashrock/kashrock-mcp. Esports props, odds, live scores, and player stats across 8 titles for agents. This page covers its PyPI package (kashrock-mcp).

### Is the KashRock MCP server safe to use?

KashRock MCP scores 64 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the KashRock MCP server expose?

KashRock MCP exposes 46 tools: login, whoami, list_capabilities, list_sports, list_books, and 41 more. Their descriptions and schemas cost roughly 2,578 tokens of context every time the server is loaded.

### Is the KashRock MCP server still maintained?

KashRock MCP is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- PyPI project: https://pypi.org/project/kashrock-mcp/
- Socket report: https://socket.dev/pypi/package/kashrock-mcp
- Repository: https://github.com/kashrockapi/kashrock-mcp
- Website: https://www.kashrock.com/mcp
- Changelog RSS feed: https://verifymcp.io/servers/com-kashrock-kashrock-mcp/kashrock-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-kashrock-kashrock-mcp/kashrock-mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-kashrock-kashrock-mcp/kashrock-mcp
