Omaha Hi-Lo Poker
Server Details
Free Omaha Hi-Lo tables with bots or friends. Play on the website without registration.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
create_poker_table and get_play_link both appear to create/prepare a new table and return a join link, making their boundaries unclear. get_game_info and get_table_status are distinct, but the overlapping creation tools will likely cause misselection.
All tool names follow a consistent snake_case verb_noun pattern: create_poker_table, get_game_info, get_play_link, get_table_status. The convention is predictable and easy to scan.
Four tools is a reasonable size for a focused poker table management server. However, the apparent redundancy between create_poker_table and get_play_link means not every tool clearly earns a distinct place.
The surface covers table creation, rules/info, join links, and read-only status. It lacks lifecycle operations such as closing/deleting a table or listing existing tables, which are notable gaps for table management.
Available Tools
4 toolscreate_poker_tableBInspect
Create a real free Omaha Hi-Lo table for bot practice or friends. Return its join link; the human plays on the website. First human to join becomes host. Never place bets or play for the user.
| Name | Required | Description | Default |
|---|---|---|---|
| private | No | ||
| bot_count | No | ||
| game_type | No | omaha_hi_lo | |
| opponents | No | bots | |
| player_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, and non-idempotency, and the description adds genuinely new context: the table is real, the human plays on the website, the first joiner becomes host, and the tool must never bet or play on the user's behalf. That hosting rule is exactly the kind of side-effect nuance annotations cannot express. It stops short of disclosing what happens on repeated calls or table lifetime limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four short sentences, front-loaded with the action and immediately followed by the return value and the hosting rule. Every sentence carries information; only the trailing safety sentence is slightly separable but still earns its place as a guardrail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description correctly covers the return value (join link) in the absence of an output schema, and it explains the human-vs-bot split. Against a 5-parameter mutation tool with zero schema coverage, though, it leaves the agent guessing about configuration options like privacy, bot count, and player name, which are essential to calling it well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters, so the description must carry the meaning and largely does not. 'Bot practice or friends' faintly signals the opponents enum and 'Omaha Hi-Lo' maps to the game_type constant, but private, bot_count, and player_name — including the 9-bot maximum and the 30-character name limit — are never explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with a clear variant: 'Create a real free Omaha Hi-Lo table.' It also scopes the use cases (bot practice or friends), so an agent knows exactly what gets produced. It does not distinguish itself from the read-side siblings (get_table_status, get_play_link), which overlap with the 'return its join link' outcome.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through 'for bot practice or friends' and the behavioral boundary 'Never place bets or play for the user', which tells the agent this is table provisioning only. However, there is no explicit when-to-use vs. when-not guidance relative to the sibling tools, and the agent must infer that link retrieval after creation belongs to get_play_link.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_game_infoARead-onlyInspect
Explain Omaha Hi-Lo rules, free guest play, supported features and website links.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered and the description is not contradicting them. The description adds the topical scope of the response, but says nothing about whether the content is static reference material or current state, nor how the 'links' portion is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the enumerated topics are the substance of the definition. Slightly list-like phrasing ('free guest play', 'website links') introduces mild ambiguity rather than waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only lookup with no output schema and covering annotations, the description is close to sufficient. It stops short of clarifying the boundary with get_play_link, which is the one thing an agent could get wrong when 'website links' is advertised here too.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so per the baseline there is nothing for the description to disambiguate and no compensation is required. The description's topic list does serve as an implicit scope statement for what the no-arg call returns, which is a small value-add.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Explain') and enumerates the content covered: Omaha Hi-Lo rules, guest play, supported features, and links, which tells an agent this is a static informational lookup rather than a table operation. It does not, however, distinguish itself from siblings, and the 'website links' element overlaps ambiguously with get_play_link.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is for rules/feature questions, but there is no explicit when-to-use or when-not-to-use statement and no routing to siblings such as get_play_link or get_table_status. The overlap with get_play_link on 'website links' is left unresolved.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_play_linkAInspect
Prepare a NEW playable table and return its join link. Supports bots or friends. Reuse a previously returned link instead of calling again when possible.
| Name | Required | Description | Default |
|---|---|---|---|
| private | No | ||
| bot_count | No | ||
| game_type | No | omaha_hi_lo | |
| opponents | No | bots | |
| player_name | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly=false, idempotent=false, destructive=false, openWorld=false; the description adds the crucial consequence that each call creates a NEW table and that links should be reused, which explains the non-idempotency in practical terms. It does not say what happens to abandoned tables or whether links expire.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core action, and the reuse rule is placed after the action it constrains. Slightly padded by 'Supports bots or friends', which only partly duplicates the opponents enum.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 optional parameters and no output schema, the description should explain what player_name and bot_count mean and that only omaha_hi_lo tables can be created. It also omits what the returned link looks like or how long it is valid, so an agent must inspect the schema and still guess.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% across 5 parameters, so the description carries the full burden. It only obliquely covers 'opponents' via 'bots or friends'; private, bot_count, player_name, and the fixed omaha_hi_lo game_type are never mentioned, leaving most parameters undocumented anywhere.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource combination: prepares a NEW playable table and returns its join link, which clarifies that despite the 'get_' name this is a creating action. It does not mention or differentiate from the sibling create_poker_table, so an agent must guess which creation path to take.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Reuse a previously returned link instead of calling again when possible' is an explicit when-not-to-call rule, which is exactly the guidance an agent needs for a non-idempotent tool. It stops short of naming alternatives or stating prerequisites, so it is clear but not complete routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_table_statusARead-onlyInspect
Read only existence, waiting/in-progress state and available seats. Never returns names, credentials, invitations or cards.
| Name | Required | Description | Default |
|---|---|---|---|
| table_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false; the description reinforces read-only behavior and adds a genuinely useful negative disclosure — that names, credentials, invitations and cards are never returned. That data-exposure boundary is context the annotations do not carry, though error behavior for a missing or invalid table_id is not disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the read-only scope and the returned fields, then the non-returned data. No filler, no restatement of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with annotations and no output schema, the description covers the important ground: it is read-only, it returns status and seats, and it explicitly excludes sensitive fields. Only the identifier's meaning and failure behavior are missing, which is a minor gap at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter, table_id, is never mentioned in the description. The schema does supply format=uuid and a UUID pattern, so the value shape is machine-discoverable, but the description adds nothing about what the ID refers to (table vs game vs invite) or how a malformed/unknown ID is handled.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific read operation and enumerates exactly what is exposed: existence, waiting/in-progress state, and available seats. It is clear what the tool returns, but it never names or contrasts the sibling tools (get_game_info, get_play_link), so a routing decision still requires inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is the lightweight status check, but the description never says when to call it versus get_game_info or get_play_link, nor does it state any precondition such as the table already existing. No exclusions or alternatives are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
create_poker_table - First observed
get_game_info - First observed
get_play_link - First observed
get_table_status
Related MCP Connectors
GTO poker solver data: NLHE/PLO preflop ranges, postflop strategy, EV. 6-max NL preflop free.
Exact Texas Hold'em equity and hand analysis, every runout enumerated. Free, no API key.
Heads-up poker for AI agents: play live matches against other agents while your owner coaches.
Play practice poker hands with play chips and learn why each decision works.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables simulated multi-table No-Limit Texas Hold'em study and decision-support, allowing users to practice against bots and get equity/pot-odds/preflop-chart advice.12MIT
- AlicenseNot gradedqualityAmaintenanceEnables users to play virtual-chip poker games like Texas Hold'em and Zha Jin Hua against bot opponents within Codex, with interactive UI or text commands.MIT

Purple Flea Casinoofficial
AlicenseNot gradedqualityDmaintenanceProvably fair crypto casino API for AI agents. Place bets on 8 games (coin flip, dice, roulette, blackjack, crash, plinko), run tournaments, issue 1v1 challenges, and earn 10% referral commissions. No KYC, pure API.9 npm1MIT- AlicenseNot gradedqualityDmaintenanceEnables AI agents to play games like Chess, Go, and Trading against each other with Elo rankings through registration, matchmaking, and move submission.22 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.