MCP server for AI agent casino — provably fair gambling with 0.5% house edge. Coin flip, dice, roulette, crash, custom odds. Kelly Criterion bankroll protection.
Agent Casino MCP exhibits fundamental definition quality issues across most tools. While 11 of 12 tools have descriptions and visible input schemas via Zod, descriptions are inconsistent in quality and depth. Most critical: parameter descriptions are sparse, output schemas are completely undocumented, and error handling lacks actionable recovery guidance. The server treats gambling/financial operations casually without adequate safeguards. Naming is adequate (verb_noun pattern mostly followed) but the domain itself is high-risk. Per-tool analysis below reveals patterns of incomplete schemas and missing parameter documentation.
Check your current casino balance, deposit addresses, and recent bet history.
Flip a provably fair coin. Choose heads or tails, specify bet amount. Returns result, payout, and cryptographic proof. House edge: 2%.
Create a bet with any win probability you choose (1-99%). API calculates fair payout minus 2% house edge. Example: 25% chance = 3.92x payout.
Roll a provably fair dice (1-100). Bet over or under a threshold. Higher risk = higher payout. House edge: 2%.
List all available games with their rules, odds, house edge, and payout tables.
Calculate optimal bet size using Kelly Criterion. Returns mathematically optimal bet sizing, ruin probability, and expected outcomes.
No output schemas documented for any tool. Tool descriptions state what is returned (e.g., 'Returns result, payout, and cryptographic proof') but no structured schema or field list is provided. LLMs must infer the response structure, risking misuse of return values.
Parameter descriptions are minimal or generic. Many parameters lack constraints, valid ranges, or format guidance. E.g., 'amount' is described only as 'Bet amount in USD' with no minimum/maximum bounds specified; 'client_seed' has no guidance on expected format or length; threshold in dice_roll lacks explanation of how it maps to win probability.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 61 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 43 | - | v1 |
Place a multiplier (crash-style) bet. Pick a target multiplier — if the crash point exceeds it, you win. House edge: 2%.
Rotate to a new server seed. Current seed is revealed for verification. New seed hash becomes active.
Play European roulette (0-36). Bet on number, color, odd/even, high/low, dozens, or columns. House edge: 2%.
Get the current server seed hash for provable fairness verification.
Monte Carlo simulation of a betting strategy. Run thousands of simulations to see expected outcomes, ruin probability, and bankroll distribution.
Verify a past bet using server seed, client seed, nonce, and cryptographic hash.
No error handling or recovery guidance. Tools return results via isError flag but descriptions do not document what errors are possible, when they occur, or what the agent should do next. No actionable error messages are generated.
Destructive operations (casino_coin_flip, casino_dice_roll, casino_multiplier, casino_roulette, casino_custom_bet, casino_rotate_seed) modify financial state but lack dry-run or confirmation steps. No confirmation-request pattern employed. Agents can execute bets without review.
Session-based agent state management (sessionAgentId, sessionApiKey) uses stateful initialize pattern (deprecated since protocol revision 2026-07-28). Server should be stateless and handle agent identity via request metadata or per-call parameters.
Tools lack tool annotations (readOnlyHint, destructiveHint, idempotentHint). MCP spec 2026-07-28 encourages per-tool annotations to guide agent planning. All 6 WRITE tools should declare destructiveHint; read-only tools should declare readOnlyHint.
Numeric parameters lack bounds. 'amount' (bet size) has no minimum or maximum; 'win_probability' accepts 1-99 but no validation shown; 'num_bets' and 'simulations' unbounded. Unbounded parameters invite LLMs to pass absurd values (e.g., bet 1 million USD, run 1 billion simulations).
No documented return schema for response chaining. If casino_balance returns agent_id, subsequent bets should document they accept that agent_id. If bets return bet_id, casino_verify_bet should explicitly document it accepts the returned bet_id. Chaining is implicit, not documented.
Risk/financial domain lacks permission gates or scope declarations. No indication that these tools require explicit user authorization, approval workflows, or consent. Agents should not trigger bets without clear opt-in from the user.