Poker GTO data for AI agents
A poker solver API and a hosted MCP server over the same data: GTO preflop ranges for no-limit hold'em and pot-limit Omaha, with per-hand action frequencies and EVs, plus solved postflop strategy nodes. Built so a tool call returns a number your agent can defend.
Start without a key
6-max no-limit hold'em cash preflop, the game catalog and every /config answer with no key and no sign-up — 200calls a day per IP, REST and MCP sharing the cap. Nothing to provision before your agent's first call.
# No key, no sign-up: every action at a 100bb 6-max NLHE node curl "https://pokerdata.io/api/v1/ranges/nl/v2/node?stack=100\ &history=UTG_Fold_HJ_Fold_CO_Fold_BTN"
Poker MCP server
Hosted, stateless Streamable HTTP at POST https://pokerdata.io/api/mcp — point any MCP client at it with an optional Authorization: Bearer pdk_… header. Or run it over stdio from npm:
{
"mcpServers": {
"pokerdata": {
"command": "npx",
"args": ["-y", "pokerdata-mcp"],
"env": { "POKERDATA_API_KEY": "pdk_YOUR_KEY" }
}
}
}- Registry name:
io.github.hft-studio/pokerdata - Server card: /.well-known/mcp.json
- 29 tools;
tools/listanswers with no key, so an agent can inspect the server before anyone pays.
Preflop ranges
Keyless: 6-max NL cash (`game: "nl"`, every stack).
list_games, get_config, get_range, get_node, list_spots
Postflop solver nodes
Keyless: `list_postflop_packs` only.
list_postflop_packs, get_postflop_node, get_postflop_range
Coaching and comparison
Keyless: no.
explain_combo, get_board_report, compare_strategies
Dataset and tree docs
Keyless: yes.
list_datasets, get_tree_docs, get_range_metadata, get_exploitability
Your uploaded hands
Keyless: no — free with any key, never metered.
find_hands, get_hand_results, get_session_summary, list_my_sessions, get_tournament_results, list_my_opponents, get_opponent_notes, get_opponent_limp_range, get_upload_link, upload_hand_history
Solver queue
Keyless: no.
enqueue_solve, get_queued_solve, list_queued_solves, list_library_solutions
What agents build with it
A poker coach agent
Take a hand the user describes, resolve the action path, and read the solver's frequencies and EVs for their exact hand instead of guessing from a chart image.
Tools: get_node, explain_combo, get_range
A hand-history reviewer
Walk each decision in an uploaded hand against the solved tree and report where the line left EV on the table, in small blinds.
Tools: find_hands, get_hand_results, compare_strategies
A study or quiz tool
Generate spots from the real tree — every valid decision node at a stack depth — so the answer key is solver output, not an author's opinion.
Tools: list_spots, get_node, get_config
A postflop explainer
Walk a board street by street through solved nodes and report the reach-weighted action split and per-hand-class strategy.
Tools: list_postflop_packs, get_postflop_node, get_board_report
Versus the alternatives
| Option | Cost | Fit for an agent |
|---|---|---|
| Run a solver yourself | Days of CPU per spot, a licence, and an ops problem | No tool call can wait on it. Useful for custom trees, not for answering a user in-session. |
| Scrape range charts | Free, then wrong | Images and blog tables carry no stack depth, no rake model, no EVs, and no provenance. An agent cannot tell a solved range from a guess. |
| Ask the model from memory | Free | Plausible ranges, invented frequencies. There is no ground truth to check against and the error is silent. |
| This API | Free keyless for 6-max NL cash preflop (200 calls a day per IP), then a free key | One HTTP or MCP call returns per-hand frequencies and EVs with units, the tree spec, and an explicit note when a spot is not covered. |
Coverage, honestly
Published solves are cash-game preflop, 8-max tournament chip-EV preflop, and heads-up cash-style postflop. ICM, PKO, satellites, 9-max tournaments, tournament postflop and multiway spots return an explicit unsupported-coverage note instead of a cash approximation — so an agent can say “not covered” rather than quote a number that does not apply. Every response carries schemaVersion and a units object: stacks and raise sizes in big blinds, EVs in small blinds relative to folding.
Plans
| Plan | Price | Requests | Licence |
|---|---|---|---|
| No key | Free | 200/day per IP | Personal use only |
| Starter | Free key | 100 lifetime | Personal use only |
| Pro | $100/month | 250,000/month | Personal use only |
| Enterprise | $250/month | 5,000,000/month | Commercial use allowed |
| Studio | $199/month | Subscription on pokerstudy.ai | Personal use only |
| Custom | Contact us | Negotiated | Custom licence |
Shipping this inside a product, app or business is the Enterprise plan. Training or fine-tuning a model on the data, redistribution and resale need a Custom licence — michael@pokerdata.io.
Machine-readable entry points
- /llms.txt — the index.
- /llms-full.txt — the whole contract in one file.
- OpenAPI 3.1 — keyless.
- docs.pokerdata.io — per-game reference.
- pokerdata.io/api — plans and keys.