_ registry / mcp streamable-http · checked 58m ago

pokerdata-ranges

https://pokerdata.io

Registry code: cc28bca5df8fcba6

api record

For exact postflop hand questions prefer explain_combo. For PLO5 (plo5-) postflop packs use get_postflop_node; the high-level postflop tools are hold'em only. For cross-stack, cross-board, or cross-line questions prefer compare_strategies. For texture heuristics use get_board_report. Use low-level node/range tools only when the high-level tools cannot express the request. nlmtt8 is the certified 8-max MTT chip-EV preflop tree (1bb BB-ante). Never present cash solver data as tournament, ICM, PKO, satellite, or multiway advice. ICM, PKO, and satellite remain unsupported. Treat…

endpoint
https://pokerdata.io/api/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is pokerdata-ranges live?
Yes — it answered the hub's last check (checked 58m ago). It answered 100% of checks over the last 30 days.
Is pokerdata-ranges free to use?
Partly — some of its tools are open, others need a key or payment.
What tools does pokerdata-ranges have?
29 tools: get_range, get_postflop_range, get_session_summary, enqueue_solve, list_library_solutions, get_upload_link, get_node, get_config, ….
Is pokerdata-ranges safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
100%

90 days 100%· all time 100%

latency
242ms

last good check

priced tools
0

of 29 tools

_ answered our checks, 90 days 1 checks · signed record
  • unknown → live
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
0

through this hub

calls served
0

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 29 tools
1 open2 auth-required 26 never probed 3 of 29 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • list_games open 58m ago

    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; Fold/Call/Limp/AI/Open/3B tokens), "nlh8-hydra" = no-limit hold'em 8-max MTT chip-EV with a classic 0.1bb ante from every seat (10, 20, 30, 60bb; same tokens as nlmtt8), "plo" = pot-limit Omaha 6-max cash (4-card), "plo5" = pot-limit Omaha 5-card 6-max (100bb, 1.2bb ante), "plo9" = pot-limit Omaha 9-max cash, "plo6hu" = 6-card Omaha heads-up (BTN vs BB, 100bb). Cash trees are not tournament, ICM, PKO, or satellite solves. nlmtt8 is chip-EV only.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "detail": {
          "enum": [
            "compact",
            "full"
          ],
          "type": "string",
          "description": "Response detail. \"compact\" is the default and removes bulk maps; use \"full\" only when exact complete data is required."
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • get_board_report auth-required 58m ago

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "pack"
      ],
      "properties": {
        "pack": {
          "type": "string",
          "description": "Pack id from list_postflop_packs. Use a sizingTrees packId to pick the tree: the pack id for 75% pot on the flop, or \"<pack>-flop33\" for 33%."
        },
        "path": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Exact childSegment path from get_postflop_node, e.g. [\"Check\", \"Bet 5.5\"]. Empty for the root."
        },
        "anteBb": {
          "type": "number",
          "description": "Requested ante in bb. nlmtt8 models a 1bb BB-ante; other positive antes return unsupported coverage."
        },
        "format": {
          "enum": [
            "cash",
            "mtt"
          ],
          "type": "string",
          "description": "Requested poker format. \"cash\" uses the cash trees. \"mtt\" is supported only for preflop chip-EV against game nlmtt8; ICM, PKO, and satellite remain unsupported."
        },
        "filters": {
          "type": "object",
          "properties": {
            "highCard": {
              "enum": [
                "2",
                "3",
                "4",
                "5",
                "6",
                "7",
                "8",
                "9",
                "T",
                "J",
                "Q",
                "K",
                "A"
              ],
              "type": "string"
            },
            "pairedness": {
              "enum": [
                "unpaired",
                "paired",
                "double_paired",
                "trips",
                "quads"
              ],
              "type": "string"
            },
            "suitTexture": {
              "enum": [
                "rainbow",
                "two_tone",
                "monotone",
                "three_flush",
                "four_flush",
                "five_flush"
              ],
              "type": "string"
            },
            "connectivity": {
              "enum": [
                "connected",
                "semi_connected",
                "disconnected"
              ],
              "type": "string"
            },
            "highCardClass": {
              "enum": [
                "ace_high",
                "broadway_high",
                "middle",
                "low"
              ],
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "objective": {
          "enum": [
            "solver_ev",
            "chip_ev",
            "icm",
            "pko",
            "satellite"
          ],
          "type": "string",
          "description": "Requested optimization objective. chip_ev is supported for nlmtt8 preflop. ICM, PKO, and satellite return unsupported coverage."
        },
        "boardLimit": {
          "type": "number",
          "description": "Maximum matching boards to analyze (default and maximum 50)"
        },
        "representativeLimit": {
          "type": "number",
          "description": "Maximum representative boards returned (default 12, maximum 20)"
        }
      },
      "additionalProperties": false
    }
    arguments 113 lines
  • find_hands auth-required 58m ago

    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/upload) instead of asking the user to paste histories into chat.

    mcp-tool

    {
      "type": "object",
      "required": [
        "sort",
        "limit"
      ],
      "properties": {
        "sort": {
          "enum": [
            "recent",
            "biggest_win",
            "biggest_loss"
          ],
          "type": "string",
          "default": "biggest_loss"
        },
        "limit": {
          "type": "integer",
          "default": 10,
          "maximum": 50,
          "minimum": 1
        },
        "filter": {
          "anyOf": [
            {
              "type": "object",
              "properties": {
                "pfr": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "rfi": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "vpip": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "isPfr": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "limped": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "rfiOpp": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "wasSrp": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "sawFlop": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "position": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "enum": [
                          "UTG",
                          "UTG1",
                          "UTG2",
                          "MP",
                          "LJ",
                          "HJ",
                          "CO",
                          "BTN",
                          "SB",
                          "BB"
                        ],
                        "type": "string"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "threeBet": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "facedLimp": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "isIpVsPfr": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "sawShowdown": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "facedThreeBet": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "flopBetPctPot": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "max": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "description": "Exclusive upper bound, % of pot."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "min": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "description": "Inclusive lower bound, % of pot."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "turnBetPctPot": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "max": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "description": "Exclusive upper bound, % of pot."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "min": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "description": "Inclusive lower bound, % of pot."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "wonAtShowdown": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "riverBetPctPot": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "max": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "description": "Exclusive upper bound, % of pot."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "min": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "description": "Inclusive lower bound, % of pot."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "wasThreeBetPot": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "flopFirstAction": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "enum": [
                          "check",
                          "bet",
                          "call",
                          "fold",
                          "raise"
                        ],
                        "type": "string"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "turnFirstAction": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "enum": [
                          "check",
                          "bet",
                          "call",
                          "fold",
                          "raise"
                        ],
                        "type": "string"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "foldedToThreeBet": {
                  "anyOf": [
                    {
                      "type": "boolean"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "riverFirstAction": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "enum": [
                          "check",
                          "bet",
                          "call",
                          "fold",
                          "raise"
                        ],
                        "type": "string"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "vsThreeBetAction": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "enum": [
                          "fold",
                          "call",
                          "raise"
                        ],
                        "type": "string"
                      },
                      "description": "Opener's action vs a 3-bet: fold, call, or raise (4-bet)."
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "flopFacedBetPctPot": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "max": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "description": "Exclusive upper bound, % of pot."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "min": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "description": "Inclusive lower bound, % of pot."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "turnFacedBetPctPot": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "max": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "description": "Exclusive upper bound, % of pot."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "min": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "description": "Inclusive lower bound, % of pot."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "riverFacedBetPctPot": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "max": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "description": "Exclusive upper bound, % of pot."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "min": {
                          "anyOf": [
                            {
                              "type": "number",
                              "minimum": 0,
                              "description": "Inclusive lower bound, % of pot."
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "flopFirstResponseToBet": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "enum": [
                          "check",
                          "bet",
                          "call",
                          "fold",
                          "raise"
                        ],
                        "type": "string"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "turnFirstResponseToBet": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "enum": [
                          "check",
                          "bet",
                          "call",
                          "fold",
                          "raise"
                        ],
                        "type": "string"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "riverFirstResponseToBet": {
                  "anyOf": [
                    {
                      "type": "array",
                      "items": {
                        "enum": [
                          "check",
                          "bet",
                          "call",
                          "fold",
                          "raise"
                        ],
                        "type": "string"
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "additionalProperties": false
            },
            {
              "type": "null"
            }
          ]
        },
        "game_type": {
          "anyOf": [
            {
              "enum": [
                "NLHE",
                "PLO",
                "PLO5",
                "PLO6"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "session_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            {
              "type": "null"
            }
          ]
        },
        "table_size": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 9,
              "minimum": 2
            },
            {
              "type": "null"
            }
          ]
        },
        "gto_vs_3bet_bucket": {
          "anyOf": [
            {
              "enum": [
                "solver_default",
                "mixer",
                "freq0",
                "no_reach",
                "unmapped"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "gto_plo5_rfi_bucket": {
          "anyOf": [
            {
              "enum": [
                "solver_default",
                "mixer",
                "freq0",
                "no_reach",
                "unmapped"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    }
    arguments 658 lines
  • get_range unknown never probed

    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 representative pure/mixed hands unless a hand is specified; plo5 returns the top hands by EV that take the action (limit up to 500 compact, 2000 full).

    mcp-tool

    {
      "type": "object",
      "required": [
        "game",
        "stack",
        "spot"
      ],
      "properties": {
        "game": {
          "enum": [
            "nl",
            "nl9",
            "nlmtt8",
            "nlh8-hydra",
            "plo",
            "plo5",
            "plo9",
            "plo6hu"
          ],
          "type": "string",
          "description": "\"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; Fold/Call/Limp/AI/Open/3B tokens), \"nlh8-hydra\" = no-limit hold'em 8-max MTT chip-EV with a classic 0.1bb ante from every seat (10, 20, 30, 60bb; same tokens as nlmtt8), \"plo\" = pot-limit Omaha 6-max cash (4-card), \"plo5\" = pot-limit Omaha 5-card 6-max (100bb, 1.2bb ante), \"plo9\" = pot-limit Omaha 9-max cash, \"plo6hu\" = 6-card Omaha heads-up (BTN vs BB, 100bb). Cash trees are not tournament, ICM, PKO, or satellite solves. nlmtt8 is chip-EV only."
        },
        "hand": {
          "type": "string",
          "description": "Optional hand/class, e.g. AKs or (KA)(KA)"
        },
        "spot": {
          "type": "string",
          "description": "Action path ending in an action"
        },
        "limit": {
          "type": "number",
          "description": "Maximum compact rows to return (default 120, maximum 500)."
        },
        "stack": {
          "type": "number",
          "description": "Stack depth in big blinds, e.g. 100"
        },
        "detail": {
          "enum": [
            "compact",
            "full"
          ],
          "type": "string",
          "description": "Response detail. \"compact\" is the default and removes bulk maps; use \"full\" only when exact complete data is required."
        },
        "minFreq": {
          "type": "number",
          "description": "Drop hands at or below this weight (PLO ranges are large)"
        }
      },
      "additionalProperties": false
    }
    arguments 53 lines
  • get_postflop_range unknown never probed

    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 the check-call range. Bet-size tree. "33" = 33% pot on the flop, then 75% pot on the turn and river, plus all-in. "75" = 75% pot on every street, plus all-in. Compact and full detail apply to the other range tools; this returns the action range itself.

    mcp-tool

    {
      "type": "object",
      "required": [
        "pack",
        "tree",
        "board",
        "path"
      ],
      "properties": {
        "hand": {
          "type": "string",
          "maxLength": 40
        },
        "pack": {
          "type": "string",
          "maxLength": 80,
          "minLength": 1,
          "description": "Pack id from list_postflop_packs"
        },
        "path": {
          "type": "array",
          "items": {
            "type": "string",
            "pattern": "^(Check|Fold|Call|Bet|Raise|AllIn)( \\d+(\\.\\d+)?)?$"
          },
          "maxItems": 8,
          "minItems": 1,
          "description": "Flop actions ending in the action whose range you want"
        },
        "tree": {
          "enum": [
            "33",
            "75"
          ],
          "type": "string"
        },
        "board": {
          "type": "string",
          "maxLength": 40,
          "minLength": 6,
          "description": "Flop, e.g. \"3h 3d 2s\""
        },
        "minFreq": {
          "type": "number",
          "maximum": 1,
          "minimum": 0
        }
      },
      "additionalProperties": false
    }
    arguments 50 lines
  • get_session_summary unknown never probed

    Headline numbers and HUD rates for one uploaded session.

    mcp-tool

    {
      "type": "object",
      "required": [
        "session_id"
      ],
      "properties": {
        "session_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • enqueue_solve unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "title",
        "board",
        "pot",
        "effective_stack"
      ],
      "properties": {
        "pot": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "board": {
          "type": "string",
          "minLength": 5
        },
        "title": {
          "type": "string",
          "maxLength": 120,
          "minLength": 1
        },
        "ip_range": {
          "type": "string"
        },
        "add_allin": {
          "type": "boolean"
        },
        "bet_sizes": {
          "type": "array",
          "items": {
            "type": "number",
            "exclusiveMinimum": 0
          }
        },
        "oop_range": {
          "type": "string"
        },
        "iterations": {
          "type": "integer",
          "maximum": 5000,
          "minimum": 50
        },
        "effective_stack": {
          "type": "number",
          "exclusiveMinimum": 0
        },
        "max_aggressions": {
          "type": "integer",
          "maximum": 4,
          "minimum": 1
        }
      },
      "additionalProperties": false
    }
    arguments 61 lines
  • list_library_solutions unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "limit"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 20,
          "maximum": 50,
          "minimum": 1
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • get_upload_link unknown never probed

    Primary hand-upload path. Returns https://pokerdata.io/upload 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.

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • get_node unknown never probed

    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 are small blinds relative to fold. Compact mode returns action totals; add `hand` for its exact mixed strategy. full=true is full=1: all 169 hold'em hands with explicit 0, and no invented EVs.

    mcp-tool

    {
      "type": "object",
      "required": [
        "game",
        "stack",
        "history"
      ],
      "properties": {
        "full": {
          "type": "boolean",
          "description": "Hold'em only. When true, each action includes all 169 hands with weight 0 where the bundle omitted the hand. EVs stay only where the bundle scored them."
        },
        "game": {
          "enum": [
            "nl",
            "nl9",
            "nlmtt8",
            "nlh8-hydra",
            "plo",
            "plo5",
            "plo9",
            "plo6hu"
          ],
          "type": "string",
          "description": "\"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; Fold/Call/Limp/AI/Open/3B tokens), \"nlh8-hydra\" = no-limit hold'em 8-max MTT chip-EV with a classic 0.1bb ante from every seat (10, 20, 30, 60bb; same tokens as nlmtt8), \"plo\" = pot-limit Omaha 6-max cash (4-card), \"plo5\" = pot-limit Omaha 5-card 6-max (100bb, 1.2bb ante), \"plo9\" = pot-limit Omaha 9-max cash, \"plo6hu\" = 6-card Omaha heads-up (BTN vs BB, 100bb). Cash trees are not tournament, ICM, PKO, or satellite solves. nlmtt8 is chip-EV only."
        },
        "hand": {
          "type": "string",
          "description": "Optional hand/class"
        },
        "stack": {
          "type": "number",
          "description": "Stack depth in big blinds"
        },
        "detail": {
          "enum": [
            "compact",
            "full"
          ],
          "type": "string",
          "description": "Response detail. \"compact\" is the default and removes bulk maps; use \"full\" only when exact complete data is required."
        },
        "history": {
          "type": "string",
          "description": "Action path ending in a position"
        },
        "minFreq": {
          "type": "number",
          "description": "Trim per-action ranges"
        }
      },
      "additionalProperties": false
    }
    arguments 53 lines
  • get_config unknown never probed

    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 the 1bb BB ante is posted from it. openSizes at 40bb is open 2.2x (listing 2.2bb; node decodes code 40034 to 2.19bb) and SB 2.8x (2.8bb). 10bb is all-in/fold versus 50bb stacks, so stacks is null there. evs on nodes are small blinds relative to fold. Example: get_config({ game: "nlmtt8", stack: 40 }).

    mcp-tool

    {
      "type": "object",
      "required": [
        "game",
        "stack"
      ],
      "properties": {
        "game": {
          "enum": [
            "nl",
            "nl9",
            "nlmtt8",
            "nlh8-hydra",
            "plo",
            "plo5",
            "plo9",
            "plo6hu"
          ],
          "type": "string",
          "description": "\"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; Fold/Call/Limp/AI/Open/3B tokens), \"nlh8-hydra\" = no-limit hold'em 8-max MTT chip-EV with a classic 0.1bb ante from every seat (10, 20, 30, 60bb; same tokens as nlmtt8), \"plo\" = pot-limit Omaha 6-max cash (4-card), \"plo5\" = pot-limit Omaha 5-card 6-max (100bb, 1.2bb ante), \"plo9\" = pot-limit Omaha 9-max cash, \"plo6hu\" = 6-card Omaha heads-up (BTN vs BB, 100bb). Cash trees are not tournament, ICM, PKO, or satellite solves. nlmtt8 is chip-EV only."
        },
        "stack": {
          "type": "number",
          "description": "Stack depth in big blinds, e.g. 40"
        }
      },
      "additionalProperties": false
    }
    arguments 28 lines
  • list_spots unknown never probed

    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 "UTG".

    mcp-tool

    {
      "type": "object",
      "required": [
        "game",
        "stack"
      ],
      "properties": {
        "game": {
          "enum": [
            "nl",
            "nl9",
            "nlmtt8",
            "nlh8-hydra",
            "plo",
            "plo5",
            "plo9",
            "plo6hu"
          ],
          "type": "string",
          "description": "\"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; Fold/Call/Limp/AI/Open/3B tokens), \"nlh8-hydra\" = no-limit hold'em 8-max MTT chip-EV with a classic 0.1bb ante from every seat (10, 20, 30, 60bb; same tokens as nlmtt8), \"plo\" = pot-limit Omaha 6-max cash (4-card), \"plo5\" = pot-limit Omaha 5-card 6-max (100bb, 1.2bb ante), \"plo9\" = pot-limit Omaha 9-max cash, \"plo6hu\" = 6-card Omaha heads-up (BTN vs BB, 100bb). Cash trees are not tournament, ICM, PKO, or satellite solves. nlmtt8 is chip-EV only."
        },
        "depth": {
          "type": "number",
          "description": "Optional decision depth filter"
        },
        "limit": {
          "type": "number",
          "description": "Maximum compact rows to return (default 120, maximum 500)."
        },
        "stack": {
          "type": "number",
          "description": "Stack depth in big blinds"
        },
        "detail": {
          "enum": [
            "compact",
            "full"
          ],
          "type": "string",
          "description": "Response detail. \"compact\" is the default and removes bulk maps; use \"full\" only when exact complete data is required."
        },
        "offset": {
          "type": "number",
          "description": "Compact pagination offset"
        },
        "contains": {
          "type": "string",
          "description": "Optional case-insensitive history substring filter"
        }
      },
      "additionalProperties": false
    }
    arguments 52 lines
  • list_postflop_packs unknown never probed

    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 the flop, then 75%, under the `<pack>-flop33` id); every postflop tool accepts either tree's packId. PLO5 packs (ids starting plo5-) solve one 33% flop tree, flop decisions only. Compact output lists board names per pack. Pass `pack` (the 75% id or the -flop33 id) for that tree's per-board detail and per-flop exploitability where the index publishes a number. Missing exploitability is omitted, never estimated. Pass `variant` to list only NLHE or PLO5 packs. Call this before get_postflop_node.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "pack": {
          "type": "string",
          "description": "One pack id (75% id or the -flop33 id): per-board detail and that tree's exploitability"
        },
        "detail": {
          "enum": [
            "compact",
            "full"
          ],
          "type": "string",
          "description": "Response detail. \"compact\" is the default and removes bulk maps; use \"full\" only when exact complete data is required."
        },
        "variant": {
          "enum": [
            "nlhe",
            "plo5"
          ],
          "type": "string",
          "description": "Only packs of this game: nlhe (hold'em) or plo5 (five-card Omaha)"
        }
      },
      "additionalProperties": false
    }
    arguments 26 lines
  • get_postflop_node unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "pack",
        "board"
      ],
      "properties": {
        "pack": {
          "type": "string",
          "description": "Pack id from list_postflop_packs. Use a sizingTrees packId to pick the tree: the pack id for 75% pot on the flop, or \"<pack>-flop33\" for 33%."
        },
        "path": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Segments from the root, e.g. [\"Check\", \"Bet 5.5\"]. Empty for the root node."
        },
        "board": {
          "type": "string",
          "description": "Board in spaced form, e.g. \"3h 3d 2s\""
        },
        "combo": {
          "type": "string",
          "description": "Optional exact combo, e.g. AsKh (PLO5: five cards, as listed in the node's hands)"
        },
        "limit": {
          "type": "number",
          "description": "Maximum representative compact combos (default 40, maximum 200)"
        },
        "detail": {
          "enum": [
            "compact",
            "full"
          ],
          "type": "string",
          "description": "Response detail. \"compact\" is the default and removes bulk maps; use \"full\" only when exact complete data is required."
        }
      },
      "additionalProperties": false
    }
    arguments 41 lines
  • explain_combo unknown never probed

    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 causality as interpretation.

    mcp-tool

    {
      "type": "object",
      "required": [
        "pack",
        "board",
        "combo"
      ],
      "properties": {
        "pack": {
          "type": "string",
          "description": "Pack id from list_postflop_packs. Use a sizingTrees packId to pick the tree: the pack id for 75% pot on the flop, or \"<pack>-flop33\" for 33%."
        },
        "path": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Exact childSegment path from get_postflop_node, e.g. [\"Check\", \"Bet 5.5\"]. Empty for the root."
        },
        "board": {
          "type": "string",
          "description": "Board in spaced form, e.g. \"6s 4h 2s\""
        },
        "combo": {
          "type": "string",
          "description": "Required exact two-card combo, e.g. As5s"
        },
        "anteBb": {
          "type": "number",
          "description": "Requested ante in bb. nlmtt8 models a 1bb BB-ante; other positive antes return unsupported coverage."
        },
        "format": {
          "enum": [
            "cash",
            "mtt"
          ],
          "type": "string",
          "description": "Requested poker format. \"cash\" uses the cash trees. \"mtt\" is supported only for preflop chip-EV against game nlmtt8; ICM, PKO, and satellite remain unsupported."
        },
        "objective": {
          "enum": [
            "solver_ev",
            "chip_ev",
            "icm",
            "pko",
            "satellite"
          ],
          "type": "string",
          "description": "Requested optimization objective. chip_ev is supported for nlmtt8 preflop. ICM, PKO, and satellite return unsupported coverage."
        },
        "comparisonLimit": {
          "type": "number",
          "description": "Maximum same-rank-class suit comparisons (default 6, maximum 12)"
        }
      },
      "additionalProperties": false
    }
    arguments 57 lines
  • compare_strategies unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain",
        "baseline",
        "comparison"
      ],
      "properties": {
        "anteBb": {
          "type": "number",
          "description": "Requested ante in bb. nlmtt8 models a 1bb BB-ante; other positive antes return unsupported coverage."
        },
        "domain": {
          "enum": [
            "preflop",
            "postflop"
          ],
          "type": "string",
          "description": "Preflop contexts use game/stack/history/hand. Postflop contexts use pack/board/path/combo."
        },
        "format": {
          "enum": [
            "cash",
            "mtt"
          ],
          "type": "string",
          "description": "Requested poker format. \"cash\" uses the cash trees. \"mtt\" is supported only for preflop chip-EV against game nlmtt8; ICM, PKO, and satellite remain unsupported."
        },
        "baseline": {
          "type": "object",
          "properties": {
            "game": {
              "enum": [
                "nl",
                "nl9",
                "nlmtt8",
                "nlh8-hydra",
                "plo",
                "plo5",
                "plo9",
                "plo6hu"
              ],
              "type": "string"
            },
            "hand": {
              "type": "string"
            },
            "pack": {
              "type": "string",
              "description": "Pack id from list_postflop_packs. Use a sizingTrees packId to pick the tree: the pack id for 75% pot on the flop, or \"<pack>-flop33\" for 33%."
            },
            "path": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Exact childSegment path from get_postflop_node, e.g. [\"Check\", \"Bet 5.5\"]. Empty for the root."
            },
            "board": {
              "type": "string"
            },
            "combo": {
              "type": "string"
            },
            "stack": {
              "type": "number"
            },
            "history": {
              "type": "string"
            }
          },
          "additionalProperties": false
        },
        "objective": {
          "enum": [
            "solver_ev",
            "chip_ev",
            "icm",
            "pko",
            "satellite"
          ],
          "type": "string",
          "description": "Requested optimization objective. chip_ev is supported for nlmtt8 preflop. ICM, PKO, and satellite return unsupported coverage."
        },
        "comboLimit": {
          "type": "number",
          "description": "Maximum largest-changing combos for aggregate postflop comparisons (default 12, maximum 50)"
        },
        "comparison": {
          "type": "object",
          "properties": {
            "game": {
              "enum": [
                "nl",
                "nl9",
                "nlmtt8",
                "nlh8-hydra",
                "plo",
                "plo5",
                "plo9",
                "plo6hu"
              ],
              "type": "string"
            },
            "hand": {
              "type": "string"
            },
            "pack": {
              "type": "string",
              "description": "Pack id from list_postflop_packs. Use a sizingTrees packId to pick the tree: the pack id for 75% pot on the flop, or \"<pack>-flop33\" for 33%."
            },
            "path": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Exact childSegment path from get_postflop_node, e.g. [\"Check\", \"Bet 5.5\"]. Empty for the root."
            },
            "board": {
              "type": "string"
            },
            "combo": {
              "type": "string"
            },
            "stack": {
              "type": "number"
            },
            "history": {
              "type": "string"
            }
          },
          "additionalProperties": false
        }
      },
      "additionalProperties": false
    }
    arguments 136 lines
  • list_datasets unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "properties": {},
      "additionalProperties": false
    }
    arguments 5 lines
  • get_tree_docs unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "dataset"
      ],
      "properties": {
        "dataset": {
          "type": "string",
          "description": "Dataset id from list_datasets, e.g. \"nl/v2\", \"nl9\", \"nlmtt8\", \"plo\", \"plo9\", \"plo5\", \"plo6hu\"."
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • get_range_metadata unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "game",
        "stack",
        "path"
      ],
      "properties": {
        "game": {
          "type": "string"
        },
        "path": {
          "type": "string",
          "description": "Action path, e.g. UTG_Open or LJ_Fold. Use (root) or empty for the plo5 root."
        },
        "stack": {
          "type": "number"
        }
      },
      "additionalProperties": false
    }
    arguments 21 lines
  • get_exploitability unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "game"
      ],
      "properties": {
        "game": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 12 lines
  • get_hand_results unknown never probed

    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) instead of asking the user to paste histories into chat.

    mcp-tool

    {
      "type": "object",
      "required": [
        "max_points"
      ],
      "properties": {
        "max_points": {
          "type": "integer",
          "default": 80,
          "maximum": 200,
          "minimum": 2
        },
        "session_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    }
    arguments 27 lines
  • list_my_sessions unknown never probed

    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) instead of asking the user to paste histories into chat.

    mcp-tool

    {
      "type": "object",
      "required": [
        "limit"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 10,
          "maximum": 50,
          "minimum": 1
        },
        "game_type": {
          "anyOf": [
            {
              "enum": [
                "NLHE",
                "PLO",
                "PLO5",
                "PLO6"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    }
    arguments 31 lines
  • get_tournament_results unknown never probed

    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) instead of asking the user to paste histories into chat.

    mcp-tool

    {
      "type": "object",
      "required": [
        "limit"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 200,
          "maximum": 500,
          "minimum": 1
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • list_my_opponents unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "limit",
        "min_hands",
        "sort"
      ],
      "properties": {
        "hero": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "sort": {
          "enum": [
            "hands",
            "last_seen",
            "toughest",
            "softest"
          ],
          "type": "string",
          "default": "hands"
        },
        "limit": {
          "type": "integer",
          "default": 50,
          "maximum": 500,
          "minimum": 1
        },
        "game_type": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "min_hands": {
          "type": "integer",
          "default": 1,
          "minimum": 1
        }
      },
      "additionalProperties": false
    }
    arguments 62 lines
  • get_opponent_notes unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "opponent_id"
      ],
      "properties": {
        "opponent_id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        }
      },
      "additionalProperties": false
    }
    arguments 14 lines
  • get_opponent_limp_range unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "limit"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 30,
          "maximum": 169,
          "minimum": 1
        },
        "position": {
          "anyOf": [
            {
              "type": "array",
              "items": {
                "enum": [
                  "UTG",
                  "UTG1",
                  "UTG2",
                  "MP",
                  "LJ",
                  "HJ",
                  "CO",
                  "BTN",
                  "SB",
                  "BB"
                ],
                "type": "string"
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "game_type": {
          "anyOf": [
            {
              "enum": [
                "NLHE",
                "PLO",
                "PLO5",
                "PLO6"
              ],
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "session_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            {
              "type": "null"
            }
          ]
        },
        "table_size": {
          "anyOf": [
            {
              "type": "integer",
              "maximum": 9,
              "minimum": 2
            },
            {
              "type": "null"
            }
          ]
        },
        "opponent_id": {
          "anyOf": [
            {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "additionalProperties": false
    }
    arguments 92 lines
  • get_queued_solve unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "queue_id"
      ],
      "properties": {
        "queue_id": {
          "type": "integer",
          "exclusiveMinimum": 0
        }
      },
      "additionalProperties": false
    }
    arguments 13 lines
  • list_queued_solves unknown never probed

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

    mcp-tool

    {
      "type": "object",
      "required": [
        "limit"
      ],
      "properties": {
        "limit": {
          "type": "integer",
          "default": 20,
          "maximum": 50,
          "minimum": 1
        }
      },
      "additionalProperties": false
    }
    arguments 15 lines
  • upload_hand_history unknown never probed

    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.

    mcp-tool

    {
      "type": "object",
      "required": [
        "text"
      ],
      "properties": {
        "text": {
          "type": "string",
          "minLength": 1,
          "description": "Raw hand history or tournament summary text."
        },
        "filename": {
          "type": "string"
        }
      },
      "additionalProperties": false
    }
    arguments 17 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id cc28bca5df8fcba6.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/cc28bca5df8fcba6/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/cc28bca5df8fcba6/badge.svg)](https://brick.blue/agent/cc28bca5df8fcba6?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
0
ok
0
failed
0
success rate
—
median latency
—
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

0 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.