Skip to main content
Glama

Get table configuration

get_config
Read-onlyIdempotent

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

Input Schema

NameRequiredDescriptionDefault
gameYes"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), "nlh8-icm" = no-limit hold'em 8-max MTT with ICM: one stack table per scenario (near the money, 33 or 35 left of 200, 30 paid; final table, 8 left), uneven stacks, 0.125bb ante from every seat, EVs in tournament dollars; pass scenario (list_games lists them; stack alone works only where one table has that depth); get_node only, "nlhu" = no-limit hold'em heads-up for the title, chip-EV, both players at the stack (1–40bb), 0.125bb ante each, SB on the button; get_node only, "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, nlh8-hydra and nlhu are chip-EV; only nlh8-icm is ICM.
stackYesStack depth in big blinds, e.g. 40

Output Schema

NameRequiredDescriptionDefault
anteNoAnte in big blinds.
gameNoGame id.
seatsNoSeats in action order.
stackNoStack depth in big blinds.
unitsNoUnit labels for stack, stacks, blinds, ante, openSizes, and evs.
blindsNoBlinds in big blinds.
evUnitNoEV unit, "sb".
stacksNoStarting stacks per seat. Null where the depth is solved against a different stack (10bb all-in/fold versus 50bb).
openSizesNoFirst-in raise-to sizes, by seat, with label and sizeBb.
evBaselineNoWhat EV is measured against, "fold".
antePostedByNoSeat that posts the ante.
schemaVersionNoPayload version, 1.
stackIncludesAnteNoTrue when the named depth already contains the ante.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / game / description
      Previous value: -"\"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."New value: +"\"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), \"nlh8-icm\" = no-limit hold'em 8-max MTT with ICM: one stack table per scenario (near the money, 33 or 35 left of 200, 30 paid; final table, 8 left), uneven stacks, 0.125bb ante from every seat, EVs in tournament dollars; pass scenario (list_games lists them; stack alone works only where one table has that depth); get_node only, \"nlhu\" = no-limit hold'em heads-up for the title, chip-EV, both players at the stack (1–40bb), 0.125bb ante each, SB on the button; get_node only, \"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, nlh8-hydra and nlhu are chip-EV; only nlh8-icm is ICM."
    • changedInput schema / properties / game / enum
      Previous value: -[
      -  "nl",
      -  "nl9",
      -  "nlmtt8",
      -  "nlh8-hydra",
      -  "plo",
      -  "plo5",
      -  "plo9",
      -  "plo6hu"
      -]New value: +[
      +  "nl",
      +  "nl9",
      +  "nlmtt8",
      +  "nlh8-hydra",
      +  "nlh8-icm",
      +  "nlhu",
      +  "plo",
      +  "plo5",
      +  "plo9",
      +  "plo6hu"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "description": "Table setup for one preflop game and stack, in big blinds. Convergence is not published.",
      +  "properties": {
      +    "ante": {
      +      "description": "Ante in big blinds.",
      +      "type": "number"
      +    },
      +    "antePostedBy": {
      +      "description": "Seat that posts the ante.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "blinds": {
      +      "description": "Blinds in big blinds.",
      +      "properties": {
      +        "bb": {
      +          "description": "Big blind, 1.",
      +          "type": "number"
      +        },
      +        "sb": {
      +          "description": "Small blind, 0.5.",
      +          "type": "number"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "evBaseline": {
      +      "description": "What EV is measured against, \"fold\".",
      +      "type": "string"
      +    },
      +    "evUnit": {
      +      "description": "EV unit, \"sb\".",
      +      "type": "string"
      +    },
      +    "game": {
      +      "description": "Game id.",
      +      "type": "string"
      +    },
      +    "openSizes": {
      +      "description": "First-in raise-to sizes, by seat, with label and sizeBb.",
      +      "type": "object"
      +    },
      +    "schemaVersion": {
      +      "description": "Payload version, 1.",
      +      "type": "number"
      +    },
      +    "seats": {
      +      "description": "Seats in action order.",
      +      "items": {
      +        "description": "Seat label.",
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "stack": {
      +      "description": "Stack depth in big blinds.",
      +      "type": "number"
      +    },
      +    "stackIncludesAnte": {
      +      "description": "True when the named depth already contains the ante.",
      +      "type": "boolean"
      +    },
      +    "stacks": {
      +      "description": "Starting stacks per seat. Null where the depth is solved against a different stack (10bb all-in/fold versus 50bb).",
      +      "items": {
      +        "description": "Starting stack in big blinds.",
      +        "type": "number"
      +      },
      +      "type": [
      +        "array",
      +        "null"
      +      ]
      +    },
      +    "units": {
      +      "description": "Unit labels for stack, stacks, blinds, ante, openSizes, and evs.",
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observed

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare read-only, idempotent, closed-world behavior. The description goes further by disclosing that convergence is unpublished, that stackIncludesAnte changes how the stack depth is interpreted, that openSizes codes like 40034 decode to 2.19bb, and that stacks is null at 10bb versus 50bb.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The paragraph is front-loaded with purpose and fields and has no filler. It is dense and quite specific, with parenthetical examples, but it remains a single block rather than a structured list.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations covering safety, the description supplies the key data caveats and an example invocation. It could say more about discovery via list_games or when to use this before get_node, but for a config reader it is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the game enum already documents every game variant in detail. The description adds a stack nuance (starting stack and BB ante interaction) and an example call, but it does not add much beyond the schema for choosing game or stack.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening phrase 'Table for one preflop game and stack, in big blinds' names the resource and its dimensions, and the field list clarifies what configuration is returned. It does not explicitly contrast with get_node or list_games, so sibling differentiation is left to the agent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No sentence states when to call get_config versus get_node or list_games; the only invocation help is an example call. The agent can infer it is for retrieving table configuration, but there are no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.