# DraftKings API (remote · draftkingsapi.com)

Observed DraftKings sportsbook lines, Pick6 rows, DFS salaries and box scores. Independent service.

- Trust score: 68/100 (medium)
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `draftkingsapi.com`: 68/100 (this document), [markdown](https://verifymcp.io/servers/com-draftkingsapi-server/api-mcp.md), [page](https://verifymcp.io/servers/com-draftkingsapi-server/api-mcp)

## Channel facts

- Endpoint: `https://draftkingsapi.com/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, 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-11-05.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 54/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 4596 tokens (~153/item across 30 items; 30 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 7/100
  - Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 83/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 48% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 31 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the DraftKings API MCP server?

DraftKings API is a hosted endpoint at https://draftkingsapi.com/api/mcp, so there is nothing to install locally. 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 --transport http com-draftkingsapi-server 'https://draftkingsapi.com/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-draftkingsapi-server": {
      "url": "https://draftkingsapi.com/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-draftkingsapi-server": {
      "type": "http",
      "url": "https://draftkingsapi.com/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-draftkingsapi-server]
url = "https://draftkingsapi.com/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-draftkingsapi-server": {
      "type": "remote",
      "url": "https://draftkingsapi.com/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-draftkingsapi-server --url 'https://draftkingsapi.com/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-draftkingsapi-server:
    url: "https://draftkingsapi.com/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-draftkingsapi-server": {
      "Transport": "http",
      "Url": "https://draftkingsapi.com/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-draftkingsapi-server -t streamable-http -u 'https://draftkingsapi.com/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-draftkingsapi-server": {
      "type": "http",
      "url": "https://draftkingsapi.com/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## 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-11-05 (score 68, +3)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “search” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: pass → fail
- [functional improvement] Tool coverage: 8% → 48%
- [functional] Schema quality: fair → good
- [functional] Destructive annotations: pass → 100
- [functional] Server version: 1.0.0 → 1.1.0
- [functional] New tool “complete_setup”
- [functional] New tool “finish_signup”
- [functional] New tool “get_api_directory”
- [functional] New tool “get_demo_sample”
- [functional] New tool “get_live_connection”
- [functional] New tool “get_pick6_line_history”
- [functional] New tool “get_pick6_stream_snapshot”
- [functional] New tool “get_setup_fields”
- [functional] New tool “get_sportsbook_scopes”
- [functional] New tool “get_sportsbook_snapshot”
- [functional] New tool “send_feedback”
- [functional] New tool “start_signup”
- [cosmetic] “get_context_games” added an optional parameter “cursor”
- [cosmetic] “get_context_games” added an optional parameter “user_request”
- [cosmetic] “get_context_player_stats” added an optional parameter “cursor”
- [cosmetic] “get_context_player_stats” added an optional parameter “user_request”
- [cosmetic] “get_context_team_stats” added an optional parameter “cursor”
- [cosmetic] “get_context_team_stats” added an optional parameter “user_request”
- [cosmetic] “get_coverage” added an optional parameter “user_request”
- [cosmetic] “get_dfs_contests” added an optional parameter “cursor”
- [cosmetic] “get_dfs_contests” added an optional parameter “user_request”
- [cosmetic] “get_dfs_players” added an optional parameter “cursor”
- [cosmetic] “get_dfs_players” added an optional parameter “fresh_only”
- [cosmetic] “get_dfs_players” added an optional parameter “search”
- [cosmetic] “get_dfs_players” added an optional parameter “team”
- [cosmetic] “get_dfs_players” added an optional parameter “user_request”
- [cosmetic] “get_dfs_players” added an optional parameter “view”
- [cosmetic] “get_dfs_slates” added an optional parameter “cursor”
- [cosmetic] “get_dfs_slates” added an optional parameter “user_request”
- [cosmetic] “get_dfs_sports” added an optional parameter “cursor”
- [cosmetic] “get_dfs_sports” added an optional parameter “user_request”
- [cosmetic] “get_pick6_history” added an optional parameter “cursor”
- [cosmetic] “get_pick6_history” added an optional parameter “user_request”
- [cosmetic] “get_pick6_projections” added an optional parameter “cursor”
- [cosmetic] “get_pick6_projections” added an optional parameter “fresh_only”
- [cosmetic] “get_pick6_projections” added an optional parameter “search”
- [cosmetic] “get_pick6_projections” added an optional parameter “start_after”
- [cosmetic] “get_pick6_projections” added an optional parameter “start_before”
- [cosmetic] “get_pick6_projections” added an optional parameter “status”
- [cosmetic] “get_pick6_projections” added an optional parameter “team”
- [cosmetic] “get_pick6_projections” added an optional parameter “user_request”
- [cosmetic] “get_pick6_projections” added an optional parameter “view”
- [cosmetic] “get_sportsbook_events” added an optional parameter “cursor”
- [cosmetic] “get_sportsbook_events” added an optional parameter “search”
- [cosmetic] “get_sportsbook_events” added an optional parameter “start_after”
- [cosmetic] “get_sportsbook_events” added an optional parameter “start_before”
- [cosmetic] “get_sportsbook_events” added an optional parameter “status”
- [cosmetic] “get_sportsbook_events” added an optional parameter “user_request”
- [cosmetic] “get_sportsbook_history” added an optional parameter “cursor”
- [cosmetic] “get_sportsbook_history” added an optional parameter “search”
- [cosmetic] “get_sportsbook_history” added an optional parameter “start_after”
- [cosmetic] “get_sportsbook_history” added an optional parameter “start_before”
- [cosmetic] “get_sportsbook_history” added an optional parameter “status”
- [cosmetic] “get_sportsbook_history” added an optional parameter “user_request”
- [cosmetic] “get_sportsbook_odds” added an optional parameter “cursor”
- [cosmetic] “get_sportsbook_odds” added an optional parameter “fresh_only”
- [cosmetic] “get_sportsbook_odds” added an optional parameter “search”
- [cosmetic] “get_sportsbook_odds” added an optional parameter “start_after”
- [cosmetic] “get_sportsbook_odds” added an optional parameter “start_before”
- [cosmetic] “get_sportsbook_odds” added an optional parameter “status”
- [cosmetic] “get_sportsbook_odds” added an optional parameter “user_request”
- [cosmetic] “get_sportsbook_odds” added an optional parameter “view”
- [cosmetic] “get_stats_games” added an optional parameter “completed”
- [cosmetic] “get_stats_games” added an optional parameter “from”
- [cosmetic] “get_stats_games” added an optional parameter “to”
- [cosmetic] “get_stats_games” added an optional parameter “user_request”
- [cosmetic] “get_stats_player_games” added an optional parameter “athlete_id”
- [cosmetic] “get_stats_player_games” added an optional parameter “completed”
- [cosmetic] “get_stats_player_games” added an optional parameter “from”
- [cosmetic] “get_stats_player_games” added an optional parameter “team_id”
- [cosmetic] “get_stats_player_games” added an optional parameter “to”
- [cosmetic] “get_stats_player_games” added an optional parameter “user_request”
- [cosmetic] “get_stats_team_games” added an optional parameter “completed”
- [cosmetic] “get_stats_team_games” added an optional parameter “from”
- [cosmetic] “get_stats_team_games” added an optional parameter “team_id”
- [cosmetic] “get_stats_team_games” added an optional parameter “to”
- [cosmetic] “get_stats_team_games” added an optional parameter “user_request”
- [cosmetic] “get_dfs_players” reworded the description of “limit”
- [cosmetic] “get_pick6_projections” reworded the description of “limit”
- [cosmetic] “get_sportsbook_odds” reworded the description of “limit”

### 2026-11-04 (score 65, 0)

- [functional improvement] Stability: unverified → 0.03

### 2026-11-03 (score 65)

First indexed and scored.

## MCP tools (30)

### `search` (~37 tokens)

Search public documentation

Search player pages, guides, questions, data reports and integration resources. Try a player's name. No key needed.

Input parameters:

- `query` (string, required)

### `fetch` (~28 tokens)

Read one public page

Read a page by the id returned from search. No key needed.

Input parameters:

- `id` (string, required)

### `start_signup` (~123 tokens)

Start getting an API key

No key needed. Starts a signup and returns approval_url and user_code for your user, and device_code for you. Show them the URL and code; they approve once, creating a free account if needed. Every field is optional: send what you know and never guess. Then call finish_signup.

Input parameters:

- `agent` (string): Your agent or client name, shown to your user.
- `data_wanted` (string): What data they want.
- `found_us` (string): How they found this API.
- `use_case` (string): What they are building.

### `finish_signup` (~58 tokens)

Collect the API key

No key needed. Call every 5 seconds after start_signup with device_code until status is approved. The key is returned exactly once: store it as an environment variable, never in a repository or a chat.

Input parameters:

- `device_code` (string, required)

### `send_feedback` (~100 tokens)

Tell the team what you need

No key needed and no request spent; it works while you are rate limited. Say what data or feature was missing, what was wrong, or what confused you. Be specific. Leave out personal data and secrets.

Input parameters:

- `agent` (string)
- `blocking` (boolean): True if this stops the task.
- `endpoint` (string)
- `kind` (string)
- `message` (string, required)
- `use_case` (string)

### `complete_setup` (~76 tokens)

Save project context

Needs a key. Optional: files what your user told you they want and are building. Only send real answers. Data tools work without this.

Input parameters:

- `agent` (string)
- `data_wanted` (string, required)
- `found_us` (string)
- `notes` (string)
- `use_case` (string, required)

### `get_demo_sample` (~67 tokens)

Keyless sample

No key and no quota. Real stored rows frozen at generated_at, or invented rows labeled sample:true for dfs and pick6. For wiring up a parser; say which it is and never report it as current data.

Input parameters:

- `dataset` (string, required)
- `limit` (integer)

### `get_api_directory` (~29 tokens)

List the REST routes

No key and no quota. Every REST route, and where the OpenAPI document and docs are.

### `get_live_connection` (~58 tokens)

How to connect a live feed

No key needed. The exact URL, plan, cost and steps for the Pick6 change stream or the native sportsbook WebSocket, which a long-lived server connects to. An MCP call cannot hold them open.

Input parameters:

- `feed` (string, required)

### `get_coverage` (~68 tokens)

Coverage

Start here. Measured stored coverage and collector context.

Input parameters:

- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_pick6_projections` (~304 tokens)

Pick6 rows

Stored Pick6 market rows with target values and standings multipliers. Filter by sport and stat.

Input parameters:

- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `fresh_only` (string): true returns only rows observed in the last 15 minutes. Default false keeps retained rows, labelled by stale and age_seconds.
- `limit` (integer): Maximum 100, or 1000 with view=compact.
- `offset` (integer)
- `pick_group_id` (string)
- `pickable_id` (string)
- `pickable_market_id` (string)
- `search` (string): Case-insensitive player, team or game name match.
- `sport` (string)
- `start_after`: A game on the row starts at or after this time.
- `start_before`: A game on the row starts at or before this time.
- `stat` (string)
- `status` (string): open and paused read is_paused; live and pregame read is_live.
- `team` (string): Case-insensitive team name match.
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.
- `view` (string)

### `get_pick6_history` (~169 tokens)

Pick6 changes

Recorded Pick6 changes. Continue from pagination.next_after with offset=0.

Input parameters:

- `after` (integer)
- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `limit` (integer)
- `offset` (integer)
- `pick_group_id` (string)
- `pickable_id` (string)
- `pickable_market_id` (string)
- `sport` (string)
- `stat` (string)
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_pick6_line_history` (~162 tokens)

Pick6 target moves

How one prop's target moved, with line_move, multiplier_only and availability changes kept apart. pickable_id comes from get_pick6_projections.

Input parameters:

- `change_type` (string)
- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `limit` (integer)
- `pick_group_id` (string)
- `pickable_id` (string, required)
- `stat` (string)
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_pick6_stream_snapshot` (~103 tokens)

Pick6 stream baseline

The baseline and cursor for the Pick6 change stream. Developer and Production plans. Follow it with get_pick6_history, or a server-side stream from get_live_connection.

Input parameters:

- `sport` (string): Optional sport filter.
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_sportsbook_scopes` (~83 tokens)

Native sportsbook scopes

The native sportsbook scopes and whether each is available or stale right now. Call this before get_sportsbook_snapshot.

Input parameters:

- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_sportsbook_snapshot` (~161 tokens)

Native sportsbook snapshot

Current events, markets and selections for one native scope, with the cursor to follow changes. 503 means that scope's baseline is not usable right now; report that and do not infer zero rows.

Input parameters:

- `max_rows` (integer): Rows to keep per list in this response, default 100. Handled here, not by the API; state.truncated says what was left out. The request is charged once either way.
- `scope` (string, required): scope_id from get_sportsbook_scopes.
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_sportsbook_events` (~190 tokens)

Sportsbook events

Stored events with event_status pre, in, post or unknown.

Input parameters:

- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `event_id` (string)
- `limit` (integer)
- `offset` (integer)
- `search` (string): Case-insensitive team name match.
- `sport` (string)
- `start_after`: Event starts at or after this time.
- `start_before`: Event starts at or before this time.
- `status` (string): Event state. Use pre to leave finished games out.
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_sportsbook_odds` (~255 tokens)

Sportsbook odds

Stored moneyline, spread and total observations with provenance. Check /status for current market coverage.

Input parameters:

- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `event_id` (string)
- `fresh_only` (string): true returns only rows observed in the last 15 minutes. Default false keeps retained rows, labelled by stale and age_seconds.
- `limit` (integer): Maximum 100, or 1000 with view=compact.
- `market` (string)
- `offset` (integer)
- `search` (string): Case-insensitive team name match.
- `sport` (string)
- `start_after`: Event starts at or after this time.
- `start_before`: Event starts at or before this time.
- `status` (string): Event state. Use pre to leave finished games out.
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.
- `view` (string)

### `get_sportsbook_history` (~203 tokens)

Sportsbook history

Retained observations. Not complete opening-to-close data.

Input parameters:

- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `event_id` (string)
- `limit` (integer)
- `market` (string)
- `offer_id` (string)
- `offset` (integer)
- `search` (string): Case-insensitive team name match.
- `sport` (string)
- `start_after`: Event starts at or after this time.
- `start_before`: Event starts at or before this time.
- `status` (string): Event state. Use pre to leave finished games out.
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_dfs_sports` (~118 tokens)

DFS sports

DFS sports. A separate dataset from sportsbook and Pick6.

Input parameters:

- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `limit` (integer)
- `offset` (integer)
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_dfs_contests` (~133 tokens)

DFS contests

DFS contests. A separate dataset from sportsbook and Pick6.

Input parameters:

- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `limit` (integer)
- `offset` (integer)
- `slate_id` (string)
- `sport` (string)
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_dfs_slates` (~134 tokens)

DFS slates

DFS slates. A separate dataset from sportsbook and Pick6.

Input parameters:

- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `limit` (integer)
- `offset` (integer)
- `slate_id` (string)
- `sport` (string)
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_dfs_players` (~218 tokens)

DFS players

Roster-slot draftables with salaries. One athlete can have several rows. Salary is not a price.

Input parameters:

- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `fresh_only` (string): true returns only rows observed in the last 15 minutes. Default false keeps retained rows, labelled by stale and age_seconds.
- `limit` (integer): Maximum 100, or 1000 with view=compact.
- `offset` (integer)
- `search` (string): Case-insensitive player name match.
- `slate_id` (string)
- `sport` (string)
- `team` (string): Exact team abbreviation, any case.
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.
- `view` (string)

### `get_context_games` (~148 tokens)

Context games

Scores and box scores attached to observed events (games). ESPN source IDs are separate from DraftKings IDs.

Input parameters:

- `athlete_id` (string)
- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `event_id` (string)
- `limit` (integer)
- `offset` (integer)
- `sport` (string)
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_context_player_stats` (~151 tokens)

Context player-stats

Scores and box scores attached to observed events (player-stats). ESPN source IDs are separate from DraftKings IDs.

Input parameters:

- `athlete_id` (string)
- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `event_id` (string)
- `limit` (integer)
- `offset` (integer)
- `sport` (string)
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_context_team_stats` (~151 tokens)

Context team-stats

Scores and box scores attached to observed events (team-stats). ESPN source IDs are separate from DraftKings IDs.

Input parameters:

- `athlete_id` (string)
- `cursor` (string): Use pagination.next_cursor unchanged. Every row is reachable and pages never skip or repeat a row under inserts. Cannot be combined with offset.
- `event_id` (string)
- `limit` (integer)
- `offset` (integer)
- `sport` (string)
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_stats_games` (~172 tokens)

Statistics games

Independent games statistics. sport and season are required.

Input parameters:

- `after` (string): pagination.next from the previous page.
- `completed` (boolean): true for final games only.
- `event_id` (string)
- `from` (string): ISO 8601 offset timestamp, or YYYY-MM-DD at UTC midnight.
- `limit` (integer)
- `season` (integer, required): NFL starting year; NBA and NHL ending year.
- `sport` (string, required)
- `to` (string): ISO 8601 offset timestamp, or YYYY-MM-DD at UTC midnight.
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_stats_player_games` (~202 tokens)

Statistics player-games

Independent player-games statistics. sport and season are required.

Input parameters:

- `after` (string): pagination.next from the previous page.
- `athlete_id` (string): ESPN athlete ID, from an earlier response. One player's log.
- `completed` (boolean): true for final games only.
- `event_id` (string)
- `from` (string): ISO 8601 offset timestamp, or YYYY-MM-DD at UTC midnight.
- `limit` (integer)
- `season` (integer, required): NFL starting year; NBA and NHL ending year.
- `sport` (string, required)
- `team_id` (string)
- `to` (string): ISO 8601 offset timestamp, or YYYY-MM-DD at UTC midnight.
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_stats_team_games` (~182 tokens)

Statistics team-games

Independent team-games statistics. sport and season are required.

Input parameters:

- `after` (string): pagination.next from the previous page.
- `completed` (boolean): true for final games only.
- `event_id` (string)
- `from` (string): ISO 8601 offset timestamp, or YYYY-MM-DD at UTC midnight.
- `limit` (integer)
- `season` (integer, required): NFL starting year; NBA and NHL ending year.
- `sport` (string, required)
- `team_id` (string)
- `to` (string): ISO 8601 offset timestamp, or YYYY-MM-DD at UTC midnight.
- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

### `get_setup_fields` (~76 tokens)

Setup fields

The optional project questions and the main data endpoints. Setup is never required before a data call.

Input parameters:

- `user_request` (string): Optional. The task your user asked for, in one sentence. Never a filter and never required. Kept 35 days so the team can decide what to build. Leave out personal data and secrets.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-draftkingsapi-server/api-mcp#diagnostics

## Score history

- 2026-11-05: 68
- 2026-11-04: 65
- 2026-11-03: 65

## Common questions

### What is the DraftKings API MCP server?

DraftKings API is an MCP server listed in the public MCP registry as com.draftkingsapi/server. Observed DraftKings sportsbook lines, Pick6 rows, DFS salaries and box scores. Independent service. This page covers its hosted endpoint (https://draftkingsapi.com/api/mcp).

### Is the DraftKings API MCP server safe to use?

DraftKings API scores 68 out of 100 on VerifyMCP. 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 DraftKings API MCP server expose?

DraftKings API exposes 30 tools: search, fetch, start_signup, finish_signup, send_feedback, and 25 more. Their descriptions and schemas cost roughly 3,959 tokens of context every time the server is loaded.

### Does the DraftKings API MCP server require authentication?

No. We connected to DraftKings API without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the DraftKings API MCP server still maintained?

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

## Links

- Remote endpoint: https://draftkingsapi.com/api/mcp
- Website: https://draftkingsapi.com/developers/starter-kit
- Changelog RSS feed: https://verifymcp.io/servers/com-draftkingsapi-server/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-draftkingsapi-server/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-draftkingsapi-server/api-mcp
