ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

PokerData

โดย hft-studioรุ่น 1.0.4i★ –iบนเครื่องหรือคลาวด์
ชื่อใน registryio.github.hft-studio/pokerdata

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

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

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: บนเครื่องหรือคลาวด์
  • ช่องทาง (transport): stdio, Streamable HTTP
  • หมวด: อื่น ๆ
  • ต้องใส่ค่าเหล่านี้: POKERDATA_API_KEY, Authorization

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • รันบนคลาวด์ไม่ต้องลงโปรแกรมเพิ่ม ต่อผ่านอินเทอร์เน็ตได้เลย
  • npmติดตั้ง Node.js (มีคำสั่ง npx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน

หรือรันในเครื่องคุณ

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "pokerdata": {
      "command": "npx",
      "args": [
        "-y",
        "pokerdata-mcp"
      ],
      "env": {
        "POKERDATA_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add --transport http pokerdata https://pokerdata.io/api/mcp --header 'Authorization: ใส่ค่าของคุณ'

หรือรันในเครื่องคุณ

claude mcp add pokerdata --env POKERDATA_API_KEY='ใส่ค่าของคุณ' -- npx -y pokerdata-mcp

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "pokerdata": {
      "url": "https://pokerdata.io/api/mcp",
      "headers": {
        "Authorization": "ใส่ค่าของคุณ"
      }
    }
  }
}

หรือรันในเครื่องคุณ

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "pokerdata": {
      "command": "npx",
      "args": [
        "-y",
        "pokerdata-mcp"
      ],
      "env": {
        "POKERDATA_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "pokerdata": {
      "type": "http",
      "url": "https://pokerdata.io/api/mcp",
      "headers": {
        "Authorization": "ใส่ค่าของคุณ"
      }
    }
  }
}

หรือรันในเครื่องคุณ

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "pokerdata": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "pokerdata-mcp"
      ],
      "env": {
        "POKERDATA_API_KEY": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ที่อยู่นี้ต้องใส่ key ใน header ของคำขอ ซึ่งเมนูเพิ่ม connector ใส่ให้ไม่ได้ ใช้ Claude Code, Cursor หรือ VS Code แทน

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • POKERDATA_API_KEY ความลับ env
    pdk_ API key from https://pokerdata.io/app/api. Optional: without it the 6-max NL cash preflop tools still work.
  • Authorization ความลับ HTTP header
    Bearer pdk_… API key from https://pokerdata.io/app/api. Optional: without it the tool list and 6-max NL cash preflop tools still work.

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 7 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน

  • get_started

    Start here with a new user. Returns the short set of questions to ask them (game, format, stakes, goal), a menu of what PokerData can do with the tools for each, what is free without a key, and how to file a feature or data request. Free, no key needed.

  • submit_request

    File a feature request or data request for the user, after telling them their question isn't covered and they agree. kind "data" is missing coverage (a game, format, stack depth, spot, or solve); kind "feature" is a missing capability (a tool, filter, export, or endpoint). Free w

  • list_my_requests

    List the feature and data requests this account has filed, newest first, with their status. Free with any key.

  • list_games

    Discover covered stack depths and positions. Call this before low-level preflop queries. "nl" = no-limit hold'em 6-max cash (169-grid hands, per-hand EV in small blinds), "nl9" = no-limit hold'em 9-max cash, "nlmtt8" = no-limit hold'em 8-max MTT chip-EV (10–300bb, 1bb BB-ante; Fo

  • get_range

    The GTO range for one spot. `spot` is an action path of POSITION_ACTION pairs ending in the action whose range you want, e.g. NLHE cash "UTG_60%_HJ_Call", nlmtt8 "UTG_Open", or PLO "UTG_Open_HJ_3B". Add `hand` for one exact frequency and EV. Compact mode is default; PLO returns r

  • get_node

    Actions available at a decision node. `history` is an action path ending in the position about to act, e.g. "UTG_60%_HJ". sizeBb is the raise-to in big blinds and sizePctPot is the percent of the pot after calling (nlmtt8 40bb Open 40034 is 2.19bb; the pack label is 2.2x). evs ar

  • get_config

    Table for one preflop game and stack, in big blinds: seats, stacks, blinds (sb 0.5, bb 1), ante, antePostedBy, stackIncludesAnte, openSizes (first-in raise-to), evUnit, evBaseline. Convergence is not published. stackIncludesAnte is true: the named depth is the starting stack and

  • list_spots

    Search valid decision nodes for a stack depth, tagged by depth (1 = RFI, 2 = vs open, 3 = 3-bet pots, …). Compact mode is paginated; use depth, contains, and offset to narrow results without loading thousands of paths. plo9 has no spot index: walk it with get_node from history "U

  • list_postflop_packs

    Every solved postflop pack: preflop line, positions (OOP vs IP), stack, pot, the bet-size trees it is solved under, and the solved boards. Boards use the spaced form ("3h 3d 2s"). NLHE packs list `sizingTrees`: "75" (75% pot every street, the pack id itself) and "33" (33% pot on

  • get_postflop_node

    One postflop solver node: the acting player's strategy for every hand class, the legal next segments, board, reach and the reach-weighted action split. Walk deeper by appending a returned childSegment (an action like "Bet 5.5" or a runout like "deal:7c") to `path`.

  • explain_combo

    Preferred tool for exact NLHE postflop hand questions. Returns a canonical context, exact action mix, action EV/loss when available, made-hand and draw classification, blocker facts, and same-rank-class suit comparisons. The server computes evidence; the agent should phrase causa

  • get_board_report

    Preferred tool for board-texture heuristics. Aggregates action frequencies and range/action composition across solved boards in one postflop pack. Results explicitly report sample breadth and use equal weight per board.

  • compare_strategies

    Preferred tool for differences between two preflop or postflop contexts. The server fetches both strategies and returns action-frequency/EV deltas plus the largest postflop combo changes, avoiding two large node payloads.

  • list_datasets

    List preflop datasets in the shipped tree documentation (stacks, positions, whether each bundle was analyzed). Preflop exploitability is not available.

  • get_tree_docs

    Tree documentation for one dataset: coverage note from the shipped README and per-stack bundle or node counts from the shipped index. Does not read or modify range bytes.

  • get_range_metadata

    Index metadata for one preflop game, stack, and path: bundle stats for hold'em/PLO bundles, or the matching node row for plo5 and plo6hu. Does not return a strategy and does not invent exploitability.

  • get_exploitability

    Preflop exploitability for a game. No preflop dataset publishes exploitability, convergence, or iteration counts. The answer is not available; this tool never fills in a number.

  • get_postflop_range

    The range a player takes one flop action with, from a solved pack: hand-class weights ("AA:1,AKs:0.42,...", same format as the preflop ranges) after every earlier flop action on the path. `path` ends in the action whose range you want, e.g. ["Check", "Bet 1.8", "Call 1.8"] for th

  • find_hands

    Find hands the account has uploaded. Returns hand_id, session_id, handAt, position, cards, game, board, potType, street lines, and netBb. Solver grade buckets are not filled. If this account has no hands, offer the hosted upload page from get_upload_link (https://pokerdata.io/upl

  • get_hand_results

    Per-hand cumulative results for a winnings curve. `points` is [{ hand, bb }], oldest to newest, downsampled. Pass session_id for one session. If this account has no hands, offer the hosted upload page from get_upload_link (https://pokerdata.io/upload?utm_source=mcp_other&utm_medi

  • get_session_summary

    One uploaded session's headline numbers: hero, game type, start and end times, hands played, net result in big blinds, and HUD rates (VPIP, PFR, 3-bet, open limp) as percentages with the sample size. Use it after list_my_sessions to report how a session went; use get_hand_results

  • list_my_sessions

    Recent uploaded sessions, newest first: id, hero, game type, dates, hands, and net result. game_type matches hole-card count. If this account has no hands, offer the hosted upload page from get_upload_link (https://pokerdata.io/upload?utm_source=mcp_other&utm_medium=mcp) instead

  • get_tournament_results

    MTT results imported from tournament summary files. Money is in cents. Hand histories are not a source of buy-ins or prizes. If this account has no hands, offer the hosted upload page from get_upload_link (https://pokerdata.io/upload?utm_source=mcp_other&utm_medium=mcp) instead o

  • list_my_opponents

    Tracked opponents from uploaded hands. Each row has handCount, handsVsHero, and heroBb100Vs. Pass name to find one villain.

  • get_opponent_notes

    Leak notes computed from uploaded hands for one opponent, with the sample size on each line.

  • get_opponent_limp_range

    Shown-hand first-in limp range: 169-class counts of hole cards villains showed after an open limp. Pass position for one seat. Sample is showdown-only. This is not a solver range.

  • enqueue_solve

    Record a heads-up postflop solve request. Required: title, board, pot (bb), effective_stack (bb). The job stays pending: solver dispatch and billing are not configured, so this does not start a solve.

  • get_queued_solve

    Look up one queued solve for this account. status is pending, running, done, or failed. solution_id is null until a worker exists.

  • list_queued_solves

    List this account's solver-queue jobs, newest first. Jobs are not dispatched.

  • list_library_solutions

    Finished postflop solutions saved for this account. None are marked done while dispatch is disabled.

  • get_upload_link

    Primary hand-upload path. Returns https://pokerdata.io/upload?utm_source=mcp_other&utm_medium=mcp on this origin, with a short-lived signed token for the caller's account when signing is configured. Hand the URL to the user. Pasting histories into chat is the fallback.

  • upload_hand_history

    Secondary upload path for a small paste. Prefer get_upload_link and the hosted /upload page. Runs the same ingestion pipeline and returns hands parsed, tournaments parsed, and errors. Does not grade solver frequencies.

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub hft-studio ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • ✓ ผ่าน

    endpoint ตอบ

    ตอบกลับใน 819 ms (HTTP 200)

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ไม่ต้องล็อกอิน

  • ✓ ผ่าน

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    อ่านคำอธิบายเครื่องมือ 32 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI

เทียบกับตัวอื่นในหมวด อื่น ๆi

  • ดาวมากกว่า 0% ของอีก 18431 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 67% ของอีก 18431 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 18431 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

PokerData ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: POKERDATA_API_KEY, Authorization

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

ได้ทั้งสองแบบ จะลงในเครื่องหรือต่อผ่านคลาวด์ก็ได้

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (1.0.4) เข้า registry 22 วันที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Spec Driven Development, Remote Desktop Commander, Tethered Trust

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Spec Driven Development

โดย formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

รันบนเครื่อง★ 440MITอัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

Remote Desktop Commander

โดย desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

รันบนคลาวด์★ 211อัปเดต 3 วันที่ผ่านมา
ติดตั้ง

Tethered Trust

โดย tetheredtrust.com

Fit, compatibility and recall checks for AI agents before they buy: verdicts, evidence, receipts.

รันบนคลาวด์อัปเดต วันนี้
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

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 the coverage and docs tools
  • Strategy data: a pdk_ key from pokerdata.io/app/api. A free Starter key (25 calls or 50 MB a month, no card) unlocks every data tool. Claude and other OAuth clients can sign in instead of pasting a key.

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

The buttons install the hosted server. Strategy tools need a pdk_ key (the free Starter key works): VS Code asks for it when it starts the server, 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, then sign in with your PokerData account when Claude asks. Your plan's allowance applies, the free Starter allowance included.

Claude Code
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.

{

"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" } } } }

Without env, only the tool list and the coverage and docs tools answer. 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 docsget_started, list_games, list_postflop_packs, list_datasets, get_tree_docs, get_exploitabilityNot needed
Preflopget_range, get_node, list_spots, get_config, get_range_metadataNeeded, 6-max NL included; the free Starter key works
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 and docs tools
StarterFree key, no cardEvery data tool, 25 calls or 50 MB a month. Personal use
Hobbyist$10/monthEvery data tool, 10,000 calls or 200 MB a month, 5 requests a second. 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.

ถาม PopNx