Skip to main content
Glama
draftkingsapi-mcp

draftkingsapi-mcp

README.md
# draftkingsapi-mcp

A stdio MCP server for [draftkingsapi.com](https://draftkingsapi.com). It gives AI agents DraftKings Pick6 lines and
line history, DFS slates and salaries, sportsbook odds and price history, cross-book comparisons and box scores.

The keyless tools work with no key and spend no credits. The keyed tools read `DRAFTKINGS_API_KEY`. Without one,
they return a message that links to the free sign-up (100 credits a month, no card):
https://draftkingsapi.com/sign-up

draftkingsapi.com is an independent API. It is not affiliated with or endorsed by DraftKings. "DraftKings" is a
trademark of its owner and is used here only to describe the data.

## Tools

| Tool | Key | What it returns |
| --- | --- | --- |
| `get_public_board` | no | Delayed, capped Pick6 board plus recent line moves |
| `get_public_sportsbook` | no | Sportsbook moneyline, spread and total per game |
| `get_public_line_moves` | no | Recent Pick6 and sportsbook line moves |
| `get_demo_sample` | no | Frozen sample rows showing a dataset's shape |
| `get_credit_costs` | no | Credits per endpoint |
| `get_status` | no | Measured collection status and dataset freshness |
| `get_history_coverage` | no | When stored history starts, by league |
| `get_coverage` | yes | Live coverage for your key |
| `get_sportsbook_events`, `get_odds`, `get_odds_history` | yes | Sportsbook events, current prices, price history |
| `get_pick6_projections`, `get_pick6_history`, `get_pick6_line_history` | yes | Pick6 lines, the change feed, one prop's line moves |
| `get_dfs_slates`, `get_dfs_contests`, `get_dfs_players` | yes | DFS slates, contests, players and salaries |
| `get_compare`, `get_compare_books`, `get_ev`, `get_arbitrage` | yes | Pick6 against the sportsbook, lines across books, expected value, arbitrage and middles |
| `get_stats_games`, `get_stats_player_games` | yes | Game results and player box scores |

Every tool is read-only. Every tool also takes an optional `task` argument: one plain sentence about what the user
wants, sent as `X-User-Request`. Never put anything personal in it.

## Claude Desktop

Edit `claude_desktop_config.json` (Settings, Developer, Edit Config):

```json
{
  "mcpServers": {
    "draftkingsapi": {
      "command": "npx",
      "args": ["-y", "draftkingsapi-mcp"],
      "env": { "DRAFTKINGS_API_KEY": "dk_your_key" }
    }
  }
}
```

Leave out `env` to use only the keyless tools.

## Claude Code

```bash
claude mcp add draftkingsapi -e DRAFTKINGS_API_KEY=dk_your_key -- npx -y draftkingsapi-mcp
# keyless only:
claude mcp add draftkingsapi -- npx -y draftkingsapi-mcp
```

## Cursor

`~/.cursor/mcp.json` (or `.cursor/mcp.json` in a project):

```json
{
  "mcpServers": {
    "draftkingsapi": {
      "command": "npx",
      "args": ["-y", "draftkingsapi-mcp"],
      "env": { "DRAFTKINGS_API_KEY": "dk_your_key" }
    }
  }
}
```

## Hosted alternative

You can skip the local install. A remote MCP server (Streamable HTTP) runs at `https://draftkingsapi.com/api/mcp`.
For the data tools, send the header `Authorization: Bearer dk_your_key`.

## Try it

Ask your agent: "Use draftkingsapi to show the current NBA Pick6 board and which lines moved." It calls
`get_public_board` with `league: "nba"`, which needs no key.

## Development

```bash
npm install
npm test     # builds, spawns the server over stdio, lists tools, calls get_public_board live (no key, no credits)
DRAFTKINGS_OFFLINE=1 npm test   # skips the live call
```

`DRAFTKINGS_API_BASE` overrides the API origin for testing.

MIT License.

TDQS

B3.1/5.0

Scored across 23 tools

Disambiguation3/5

Most tools map to distinct resources, but several near-pairs exist: get_public_board vs get_pick6_projections (capped/keyless vs full keyed board), get_public_sportsbook vs get_odds, and get_compare vs get_compare_books. The three meta tools (get_coverage, get_history_coverage, get_status) and four history tools (get_odds_history, get_pick6_history, get_pick6_line_history, get_public_line_moves) also require careful reading to separate. Descriptions do provide enough signal to disambiguate, but selection errors are plausible.

Naming Consistency4/5

All 23 tools use a uniform get_ prefix with snake_case noun phrases, giving a highly predictable surface. Minor deviations exist in word ordering and qualifiers (get_stats_player_games vs get_dfs_players, get_pick6_history vs get_pick6_line_history, the 'public_' keyless marker), but the pattern is still readable.

Tool Count3/5

23 tools is on the heavy side and largely driven by the free/keyless vs API-key duplication of the same underlying data (public_board vs pick6_projections, public_sportsbook vs odds). The breadth across Pick6, sportsbook, DFS, stats and analysis partially justifies the count, but the surface feels bloated.

Completeness4/5

Coverage is broad: sportsbook events/odds/history, Pick6 projections and line history, DFS slates/contests/players, player and game stats, cross-book comparison, EV and arbitrage, plus meta tools for coverage, status and credit costs. Gaps are minor, e.g. no explicit markets/futures enumeration or contest-level result lookup, but core workflows have no dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues