Skip to content
Conduit

mcp server

PokerVector

PokerVector is an MCP client for online poker hand-histories.

NiCrook/PokerVectorcommunitylistedunreviewed

Set up

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

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 27, 2026

PokerVector

A 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.).

PokerVector parses, embeds, and indexes your hands locally. You bring your own LLM — PokerVector serves the data.

Supported Formats

  • AmericasCardroom (ACR / WPN) — Hold'em, Omaha, Omaha H/L, 5-Card Omaha, 7-Card Stud H/L
  • Cash games and tournaments
  • No Limit, Pot Limit, Fixed Limit

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%.

Prerequisites

  • Rust (stable toolchain)
  • protoc (Protocol Buffers compiler) — required by the LanceDB build
    • Windows: choco install protoc
    • macOS: brew install protobuf
    • Linux: apt install protobuf-compiler

No Docker or external services needed. PokerVector uses LanceDB, an embedded vector database that stores everything locally.

Installation

git clone https://github.com/NiCrook/PokerVector.git
cd PokerVector
cargo build --release

The embedding model (BGE-small-en-v1.5) downloads automatically on first run.

Quick Start

# 1. Auto-detect installed poker clients and save accounts
cargo run --release -- scan

# 2. Import hand histories
cargo run --release -- import                   # all configured accounts
cargo run --release -- import ./path/to/hands/  # specific directory

# 3. Check status
cargo run --release -- status

# 4. Start the MCP server
cargo run --release -- mcp                      # hero from config
cargo run --release -- mcp --hero YourUsername   # explicit hero

You can also manually register an account:

cargo run --release -- add-account ./path/to/hand/histories/

MCP Client Setup

Add PokerVector to your MCP client config. For example, in Claude Desktop's claude_desktop_config.json:

{
  "mcpServers": {
    "pokervector": {
      "command": "cargo",
      "args": ["run", "--release", "--manifest-path", "/path/to/PokerVector/Cargo.toml", "--", "mcp"]
    }
  }
}

Or if you've installed the binary to your PATH:

{
  "mcpServers": {
    "pokervector": {
      "command": "pokervector",
      "args": ["mcp"]
    }
  }
}

Once configured, your AI client discovers PokerVector's tools automatically.

MCP Tools (54)

Search & Retrieval

ToolDescription
search_handsSemantic or action-sequence search with filters (position, stakes, villain, pot type, result, date range)
get_handFetch full details of a hand by ID
get_hand_historyReturn original raw hand history text
get_hand_contextGet surrounding hands from the same table for context
search_similar_handsFind structurally similar hands by betting pattern
count_handsCount matching hands without returning data
query_handsPower-user raw SQL WHERE clause queries

Stats & Analysis

ToolDescription
get_statsAggregate stats (VPIP, PFR, 3-bet%, c-bet, steal, 25+ metrics) with filters
get_pool_statsPlayer pool averages with distributions (mean, median, P25, P75)
get_multiway_statsStats filtered to multiway pots (3+ to flop)
get_street_statsPer-street bet/raise/call/check/fold frequencies
get_range_analysisStarting hand distributions by position and action
get_preflop_chartPreflop hand chart with open/3bet/call/fold frequencies
get_board_statsPerformance by board texture (monotone, paired, connected, etc.)
get_bankroll_graphRunning profit/loss data points over time
get_trendsStats over time bucketed by day, week, or month
find_leaksAutomated leak detection against baseline ranges
detect_tiltFlag sessions where play deviated from baseline
compare_statsSide-by-side stat comparison for two players

Villain Tools

ToolDescription
list_villainsList opponents with hand counts and key stats
get_villain_profileComprehensive villain report in one call
get_villain_tendenciesHow a villain reacts to specific betting lines
get_sizing_profileBet sizing patterns by street and outcome
get_showdown_handsHands where a villain revealed holdings
get_positional_matchupsHero vs villain breakdown by position
get_best_villainsOpponents hero profits most against
get_worst_villainsOpponents hero loses most to
get_similar_villainsFind villains matching a stat profile
cluster_villainsClassify opponents into archetypes (Nit, TAG, LAG, Whale, etc.)

Session & Game Selection

ToolDescription
list_sessionsList detected cash game sessions
review_sessionSession review with stats, per-table breakdown, notable hands
get_table_profitabilityProfit by stakes or table

Spot Finding

ToolDescription
get_bluff_candidatesHands where hero folded but a bluff might have worked
get_coolersShowdown hands where hero invested heavily and lost
get_equity_spotsHands where hero was all-in
get_squeeze_spotsSqueeze-eligible spots and what hero did
get_runout_analysisHero win rate on different board textures
get_runout_frequenciesTurn/river card frequency distributions

Tournament

ToolDescription
get_tournament_summaryTournament overview: stacks, blind levels, biggest pots
get_tournament_stack_statsStack and M-ratio trajectory across a tournament
get_push_fold_reviewReview decisions at low M-ratio
get_bubble_playBubble play analysis: tightening vs aggression
get_effective_stacksEffective stack depths for significant pots

Study & Export

ToolDescription
quiz_handHand quiz — hides hero's action for study
get_hand_as_replayerStep-by-step replay with running pot/stack sizes
export_handsExport as CSV or raw hand history text
auto_tag_handsAuto-classify hands (cooler, hero call, big bluff, etc.)
tag_handAdd custom tags/labels to a hand
remove_tagRemove tags from a hand
get_tagsGet tags applied to a hand

Admin

ToolDescription
watch_directoryImport new hands from configured directories
get_last_importLast import info and total hand count
reimport_handRe-parse and re-embed a single hand
get_database_healthStorage diagnostics and data quality checks

Data Storage

All data is stored locally at ~/.pokervector/data/ (LanceDB embedded database). Config lives at ~/.pokervector/config.toml.

Windows Build Notes

The tokenizers crate must use fancy-regex (not onig) and disable esaxx_fast to avoid CRT conflicts. This is already configured in Cargo.toml.

License

MIT OR Apache-2.0 — see LICENSE-MIT and LICENSE-APACHE for details.

↑↓ navigate openesc close