{"id":"8e8d3570-50f5-421d-a220-f2b9cfec463e","slug":"pokervector","kind":"mcp","name":"PokerVector","summary":"PokerVector is an MCP client for online poker hand-histories.","owner":"NiCrook","repoUrl":"https://github.com/NiCrook/PokerVector","license":"Apache-2.0","licenseTier":"permissive","trust":"community","stars":3,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-02-19T01:23:13.000Z","addedAt":"2026-10-21T16:52:01.900Z","logoUrl":"https://avatars.githubusercontent.com/u/43064732?u=9ef142e5ed117604bbe26062bc560c3f790f549d&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["utilities"],"tags":[],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-27T20:24:07.528Z","sample":false,"url":"https://conduits.dev/tools/pokervector","language":"Rust","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# PokerVector\r\n\r\nA poker hand history engine exposed as an MCP server. Import hand histories from online poker clients, and query them from any MCP-compatible AI client (Claude Desktop, Claude Code, Cursor, VS Code Copilot, etc.).\r\n\r\nPokerVector parses, embeds, and indexes your hands locally. You bring your own LLM — PokerVector serves the data.\r\n\r\n## Supported Formats\r\n\r\n- **AmericasCardroom (ACR / WPN)** — Hold'em, Omaha, Omaha H/L, 5-Card Omaha, 7-Card Stud H/L\r\n- Cash games and tournaments\r\n- No Limit, Pot Limit, Fixed Limit\r\n\r\n> **Note on tournaments:** ACR hand histories do not include buy-in, payout, or finish position data. Tournament tools focus on in-game analysis (stack trajectories, push/fold decisions, bubble play) rather than results tracking like ROI or ITM%.\r\n\r\n## Prerequisites\r\n\r\n- **Rust** (stable toolchain)\r\n- **protoc** (Protocol Buffers compiler) — required by the LanceDB build\r\n  - Windows: `choco install protoc`\r\n  - macOS: `brew install protobuf`\r\n  - Linux: `apt install protobuf-compiler`\r\n\r\nNo Docker or external services needed. PokerVector uses LanceDB, an embedded vector database that stores everything locally.\r\n\r\n## Installation\r\n\r\n```bash\r\ngit clone https://github.com/NiCrook/PokerVector.git\r\ncd PokerVector\r\ncargo build --release\r\n```\r\n\r\nThe embedding model (BGE-small-en-v1.5) downloads automatically on first run.\r\n\r\n## Quick Start\r\n\r\n```bash\r\n# 1. Auto-detect installed poker clients and save accounts\r\ncargo run --release -- scan\r\n\r\n# 2. Import hand histories\r\ncargo run --release -- import                   # all configured accounts\r\ncargo run --release -- import ./path/to/hands/  # specific directory\r\n\r\n# 3. Check status\r\ncargo run --release -- status\r\n\r\n# 4. Start the MCP server\r\ncargo run --release -- mcp                      # hero from config\r\ncargo run --release -- mcp --hero YourUsername   # explicit hero\r\n```\r\n\r\nYou can also manually register an account:\r\n\r\n```bash\r\ncargo run --release -- add-account ./path/to/hand/histories/\r\n```\r\n\r\n## MCP Client Setup\r\n\r\nAdd PokerVector to your MCP client config. For example, in Claude Desktop's `claude_desktop_config.json`:\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"pokervector\": {\r\n      \"command\": \"cargo\",\r\n      \"args\": [\"run\", \"--release\", \"--manifest-path\", \"/path/to/PokerVector/Cargo.toml\", \"--\", \"mcp\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nOr if you've installed the binary to your PATH:\r\n\r\n```json\r\n{\r\n  \"mcpServers\": {\r\n    \"pokervector\": {\r\n      \"command\": \"pokervector\",\r\n      \"args\": [\"mcp\"]\r\n    }\r\n  }\r\n}\r\n```\r\n\r\nOnce configured, your AI client discovers PokerVector's tools automatically.\r\n\r\n## MCP Tools (54)\r\n\r\n### Search & Retrieval\r\n\r\n| Tool | Description |\r\n|------|-------------|\r\n| `search_hands` | Semantic or action-sequence search with filters (position, stakes, villain, pot type, result, date range) |\r\n| `get_hand` | Fetch full details of a hand by ID |\r\n| `get_hand_history` | Return original raw hand history text |\r\n| `get_hand_context` | Get surrounding hands from the same table for context |\r\n| `search_similar_hands` | Find structurally similar hands by betting pattern |\r\n| `count_hands` | Count matching hands without returning data |\r\n| `query_hands` | Power-user raw SQL WHERE clause queries |\r\n\r\n### Stats & Analysis\r\n\r\n| Tool | Description |\r\n|------|-------------|\r\n| `get_stats` | Aggregate stats (VPIP, PFR, 3-bet%, c-bet, steal, 25+ metrics) with filters |\r\n| `get_pool_stats` | Player pool averages with distributions (mean, median, P25, P75) |\r\n| `get_multiway_stats` | Stats filtered to multiway pots (3+ to flop) |\r\n| `get_street_stats` | Per-street bet/raise/call/check/fold frequencies |\r\n| `get_range_analysis` | Starting hand distributions by position and action |\r\n| `get_preflop_chart` | Preflop hand chart with open/3bet/call/fold frequencies |\r\n| `get_board_stats` | Performance by board texture (monotone, paired, connected, etc.) |\r\n| `get_bankroll_graph` | Running profit/loss data points over time |\r\n| `get_trends` | Stats over time bucketed by day, week, or month |\r\n| `find_leaks` | Automated leak detection against baseline ranges |\r\n| `detect_tilt` | Flag sessions where play deviated from baseline |\r\n| `compare_stats` | Side-by-side stat comparison for two players |\r\n\r\n### Villain Tools\r\n\r\n| Tool | Description |\r\n|------|-------------|\r\n| `list_villains` | List opponents with hand counts and key stats |\r\n| `get_villain_profile` | Comprehensive villain report in one call |\r\n| `get_villain_tendencies` | How a villain reacts to specific betting lines |\r\n| `get_sizing_profile` | Bet sizing patterns by street and outcome |\r\n| `get_showdown_hands` | Hands where a villain revealed holdings |\r\n| `get_positional_matchups` | Hero vs villain breakdown by position |\r\n| `get_best_villains` | Opponents hero profits most against |\r\n| `get_worst_villains` | Opponents hero loses most to |\r\n| `get_similar_villains` | Find villains matching a stat profile |\r\n| `cluster_villains` | Classify opponents into archetypes (Nit, TAG, LAG, Whale, etc.) |\r\n\r\n### Session & Game Selection\r\n\r\n| Tool | Description |\r\n|------|-------------|\r\n| `list_sessions` | List detected cash game sessions |\r\n| `review_session` | Session review with stats, per-table breakdown, notable hands |\r\n| `get_table_profitability` | Profit by stakes or table |\r\n\r\n### Spot Finding\r\n\r\n| Tool | Description |\r\n|------|-------------|\r\n| `get_bluff_candidates` | Hands where hero folded but a bluff might have worked |\r\n| `get_coolers` | Showdown hands where hero invested heavily and lost |\r\n| `get_equity_spots` | Hands where hero was all-in |\r\n| `get_squeeze_spots` | Squeeze-eligible spots and what hero did |\r\n| `get_runout_analysis` | Hero win rate on different board textures |\r\n| `get_runout_frequencies` | Turn/river card frequency distributions |\r\n\r\n### Tournament\r\n\r\n| Tool | Description |\r\n|------|-------------|\r\n| `get_tournament_summary` | Tournament overview: stacks, blind levels, biggest pots |\r\n| `get_tournament_stack_stats` | Stack and M-ratio trajectory across a tournament |\r\n| `get_push_fold_review` | Review decisions at low M-ratio |\r\n| `get_bubble_play` | Bubble play analysis: tightening vs aggression |\r\n| `get_effective_stacks` | Effective stack depths for significant pots |\r\n\r\n### Study & Export\r\n\r\n| Tool | Description |\r\n|------|-------------|\r\n| `quiz_hand` | Hand quiz — hides hero's action for study |\r\n| `get_hand_as_replayer` | Step-by-step replay with running pot/stack sizes |\r\n| `export_hands` | Export as CSV or raw hand history text |\r\n| `auto_tag_hands` | Auto-classify hands (cooler, hero call, big bluff, etc.) |\r\n| `tag_hand` | Add custom tags/labels to a hand |\r\n| `remove_tag` | Remove tags from a hand |\r\n| `get_tags` | Get tags applied to a hand |\r\n\r\n### Admin\r\n\r\n| Tool | Description |\r\n|------|-------------|\r\n| `watch_directory` | Import new hands from configured directories |\r\n| `get_last_import` | Last import info and total hand count |\r\n| `reimport_hand` | Re-parse and re-embed a single hand |\r\n| `get_database_health` | Storage diagnostics and data quality checks |\r\n\r\n## Data Storage\r\n\r\nAll data is stored locally at `~/.pokervector/data/` (LanceDB embedded database). Config lives at `~/.pokervector/config.toml`.\r\n\r\n## Windows Build Notes\r\n\r\nThe `tokenizers` crate must use `fancy-regex` (not `onig`) and disable `esaxx_fast` to avoid CRT conflicts. This is already configured in `Cargo.toml`.\r\n\r\n## License\r\n\r\nMIT OR Apache-2.0 — see [LICENSE-MIT](LICENSE-MIT) and [LICENSE-APACHE](LICENSE-APACHE) for details.\r\n"}