Skip to content
Conduit

mcp server

pokerdata-mcp

GTO poker solver data: NLHE/PLO preflop ranges, postflop strategy, EV. 6-max NL preflop free.

hft-studio/pokerdata-mcpcommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

Before you start

  • Node.js 20 or newer
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "pokerdata-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "pokerdata-mcp"
      ]
    }
  }
}

same format Cursor, GitHub Copilot CLI, Junie, JetBrains AI Assistant, Augment (Auggie CLI), Factory Droid, Kiro, Devin CLI +12

Values in angle brackets are placeholders. Restart Claude Desktop after editing its config.Claude Desktop docs

README

synced Oct 28, 2026

PokerData MCP: GTO poker solver data for AI agents

PokerData serves GTO solver strategy for no-limit hold'em and pot-limit Omaha as JSON, over an MCP server and a REST API. Point Claude, Cursor or any MCP client at it and ask "what does UTG open at 100bb?" or "how does the BB defend vs a BTN open?" and the agent gets the solver's real frequencies and EVs, not a guess.

  • Endpoint: https://pokerdata.io/api/mcp (Streamable HTTP, stateless)
  • Free without a key: the tool list and every 6-max NL cash preflop tool, all 8 stack depths
  • Everything else: a pdk_ key from pokerdata.io/app/api. A free trial key (100 calls, no card) unlocks every data tool.

This repository holds setup instructions, a small stdio bridge for clients that only speak stdio, examples and sample data. The data and the server are hosted at pokerdata.io.

What's covered

GameFormatStacksData
No-limit hold'em 6-max (nl)Cash, 5% rake, 0.5bb cap20, 30, 40, 50, 70, 100, 150, 200bbEvery preflop decision node, frequency and EV per hand class (169)
NLHE tournament 8-max (nlmtt8)Chip EV, 1bb BB ante10 to 300bbPreflop
NLHE tournament 8-max, classic ante (nlh8-hydra)Chip EV, 0.1bb ante10, 20, 30, 60bbPreflop
Pot-limit Omaha 6-max (plo)Cash12 to 200bbPreflop, suit-grouped classes
PLO 9-max (plo9)Cash60, 100bbPreflop
PLO5 6-max (plo5)Cash, 1.2bb ante100bbPreflop and postflop
NLHE heads-up postflopSingle-raised, 3-bet and 4-bet pots100bbSolved flops with turns and rivers, per-combo strategy and EV, two bet-size trees

list_games and list_postflop_packs return the live coverage, so an agent never has to trust this table. Not covered: ICM, PKO, multiway postflop, tournament postflop. Those requests come back as explicit "unsupported" rather than a cash-game stand-in.

Set it up

Add to Cursor Install in VS Code Install in VS Code Insiders

The buttons install the hosted server. Without a key the free 6-max NL cash preflop tools work straight away. To unlock everything, VS Code asks for your pdk_ key when it starts the server (leave it blank for the free tools), and Cursor reads it from the POKERDATA_API_KEY environment variable.

Claude (claude.ai and Claude Desktop)

Open Settings → Connectors → Add custom connector, name it PokerData and paste https://pokerdata.io/api/mcp as the URL. That gives you the free tools. For a key, use the Claude Desktop config below or Claude Code.

Claude Code

# No key: 6-max NL cash preflop
claude mcp add --transport http pokerdata https://pokerdata.io/api/mcp

# With a key: every game and postflop
claude mcp add --transport http pokerdata https://pokerdata.io/api/mcp \
  --header "Authorization: Bearer pdk_YOUR_KEY"

Cursor (~/.cursor/mcp.json)

This is the same config the button installs, and the one in .mcp.json. Set POKERDATA_API_KEY in your environment, or replace ${env:POKERDATA_API_KEY} with your key. The key is optional for the free tools.

{
  "mcpServers": {
    "pokerdata": {
      "url": "https://pokerdata.io/api/mcp",
      "headers": { "Authorization": "Bearer ${env:POKERDATA_API_KEY}" }
    }
  }
}

Claude Desktop and other stdio clients

{
  "mcpServers": {
    "pokerdata": {
      "command": "npx",
      "args": ["-y", "pokerdata-mcp"],
      "env": { "POKERDATA_API_KEY": "pdk_YOUR_KEY" }
    }
  }
}

Leave out env to use the free tools only. The bridge in bin/pokerdata-mcp.js has no dependencies and only forwards JSON-RPC to the hosted endpoint. Claude Desktop can also add https://pokerdata.io/api/mcp directly as a custom connector.

Plain HTTP

curl -s https://pokerdata.io/api/mcp -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_node","arguments":{"game":"nl","stack":100,"history":"UTG"}}}'

More in examples/: a live example for every MCP tool, real-world scenarios (NL and PLO ranges, the npm bridge, raw JSON-RPC, Node, Python, client configs, REST) and a smoke test, all with captured responses.

Tools

GroupToolsKey
Coverage and docslist_games, list_postflop_packs, list_datasets, get_tree_docs, get_exploitabilityNot needed
Preflopget_range, get_node, list_spots, get_config, get_range_metadataNot needed for game: "nl"; needed for every other game
Postflopget_postflop_node, get_postflop_rangeNeeded
Coachingexplain_combo, get_board_report, compare_strategiesNeeded
Your handshand, session and opponent tools, hand uploadAny key, free trial included; never counts against your allowance
Solve queueenqueue_solve, get_queued_solve, list_queued_solves, list_library_solutionsNeeded

Preflop spots are action paths such as UTG_60%_HJ_Call (NLHE) or UTG_Open_HJ_3B (PLO). EVs are in small blinds. Responses are compact by default; pass detail: "full" for complete maps. Full contract: docs.pokerdata.io/ranges.

Every tool's full definition — name, title, description, input schema, output schema and behaviour annotations — exactly as the server returns it from tools/list, is in tools.json. Every tool also returns structuredContent matching its output schema alongside the text result.

Plans

PlanPriceWhat you get
No keyFreeTool list, coverage tools, 6-max NL cash preflop at every stack. 200 tool calls a day per IP
StarterFree key, no cardEvery data tool, 100 calls (or 50 MB) lifetime. Personal use
Pro$100/monthEvery game and all postflop, 250,000 calls or 5 GB a month. Personal use
Enterprise$250/monthEverything in Pro, commercial use allowed, 5 million calls or 100 GB a month, higher rate limit
CustomContact usRedistribution, bulk export, licences for model training, SLAs

REST and MCP share one meter. Keys and plans: pokerdata.io/app/api.

Sample data

samples/ has two real responses, so you can check the format before connecting anything:

  • nl-6max-100bb-utg-first-in.json: UTG's first decision at 100bb, every action with per-hand frequency and EV.
  • nl-6max-100bb-utg-open-range.json: UTG's opening range at 100bb.

How the solves were made

Preflop cash trees come from established commercial solver packs. The tournament and postflop solves come from our own engine, validated against an independent reference solve of the same game tree — the comparison, position by position, is at pokerdata.io/methodology.

Nothing is estimated to fill a gap. Postflop exploitability is published per board (list_postflop_packs with a pack) and omitted where the solve does not carry it. No preflop dataset publishes exploitability, convergence or iteration counts, and get_exploitability says so instead of returning a number.

Related

  • pokerdata.io: download the raw solver packs, browse ranges free
  • Poker Study AI: an AI coach that reviews your hands against the same solves

Code in this repository is MIT licensed. Sample data is provided for evaluation under the pokerdata.io terms; see samples/LICENSE.md.

↑↓ navigate openesc close