bb-gnubg-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP listen port | 8000 |
| API_KEY | No | Required for HTTP mode. Bearer token for auth. | |
| MCP_TRANSPORT | No | Transport mode: stdio or http | stdio |
| MAX_ROLLOUT_GAMES | No | Maximum games per rollout call | 10000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| board_from_position_idA | Convert a 14-character GNUBG Position ID to a board representation. Args: position_id: A 14-character GNUBG Position ID string (e.g. "4HPwATDgc/ABMA"). Returns: Dict with the 2x25 board array and the position ID. |
| board_from_position_keyA | Convert a GNUBG position key string to a board representation. Args: position_key: A GNUBG position key string. Returns: Dict with the 2x25 board array, position ID, and key. |
| position_idA | Convert a board to its 14-character GNUBG Position ID. Args: board_input: Board in any supported format (boardState dict, Position ID string, or 2x25 list). player: Who is on roll ("x" or "o"). Required if board_input is a boardState dict. Returns: Dict with the position ID string. |
| key_of_boardA | Convert a board to its GNUBG position key string. Args: board_input: Board in any supported format. player: Who is on roll ("x" or "o"). Required if board_input is a boardState dict. Returns: Dict with the position key string. |
| classifyA | Classify a board position into one of GNUBG's position types. Args: board_input: Board in any supported format. player: Who is on roll ("x" or "o"). Required if board_input is a boardState dict. Returns: Dict with classification name and numeric code. Classifications: "over", "bearoff", "race", "crashed", "contact". |
| probabilitiesB | Calculate win/gammon/backgammon probabilities for a position. Args: board_input: Board in any supported format. evaluation_mode: Evaluation strategy. One of: "prune", "race", "osr", "bearoff", "0plus1", "1sbear", "1srace". player: Who is on roll ("x" or "o"). Required if board_input is a boardState dict. nr: Number of rollouts for OSR mode (default 1296). score: Match score as [x_away, o_away]. Omit for money game. cube: Cube state as {"owner": "C"/"X"/"O", "value": 1, "centered": true}. seed: RNG seed for reproducibility. Returns: Dict with win, win_gammon, win_backgammon, lose_gammon, lose_backgammon probabilities. |
| pub_eval_scoreA | Compute a fast heuristic evaluation score using GNUBG's public (non-neural) model. Args: board_input: Board in any supported format. player: Who is on roll ("x" or "o"). Required if board_input is a boardState dict. Returns: Dict with the evaluation score. Positive favors the mover, negative favors opponent. |
| best_moveA | Find the best move for a position and dice roll using neural network evaluation. Args: board_input: Board in any supported format. dice: Dice roll as [die1, die2], each 1-6. player: Who is on roll ("x" or "o"). Default "x". ply: Evaluation depth (0, 1, or 2). Higher is stronger but slower. score: Match score as [x_away, o_away]. Omit for money game. cube: Cube state as {"owner": "C"/"X"/"O", "value": 1, "centered": true}. seed: RNG seed for reproducibility. Returns: Dict with best_move notation, alternatives with probabilities, and board after move. |
| pub_best_moveA | Find the best move using GNUBG's public (non-neural, fast) evaluation. Args: board_input: Board in any supported format. dice: Dice roll as [die1, die2], each 1-6. player: Who is on roll ("x" or "o"). Default "x". Returns: Dict with move as from/to pairs and notation. |
| movesA | Generate all legal moves for a board and dice roll. Args: board_input: Board in any supported format. dice: Dice roll as [die1, die2], each 1-6. player: Who is on roll ("x" or "o"). Default "x". Returns: Dict with list of legal moves, each with notation, steps, and position key. |
| rolloutA | Perform a cubeless Monte Carlo rollout of a position. Args: board_input: Board in any supported format. player: Who is on roll ("x" or "o"). Default "x". ngames: Number of games to simulate (default 1296, max configurable). ply: Evaluation depth per move (0, 1, or 2). rollout_type: Rollout mode: "auto", "race", "bearoff", "over". score: Match score as [x_away, o_away]. Omit for money game. cube: Cube state dict. seed: RNG seed for reproducibility. Returns: Dict with win probabilities and standard deviations. |
| cubeful_rolloutA | Perform a cubeful rollout with doubling cube handling. Args: board_input: Board in any supported format. player: Who is on roll ("x" or "o"). Default "x". ngames: Number of games to simulate (default 576, max configurable). ply: Evaluation depth (0, 1, or 2). score: Match score as [x_away, o_away]. Omit for money game. cube: Cube state dict. seed: RNG seed for reproducibility. Returns: Dict with detailed rollout statistics including cubeful equity. |
| bearoff_id_2_posC | Convert a bearoff ID to a 6-point position tuple. Args: bearoff_id: Either an integer bearoff ID or a 6-element list. Returns: Dict with the 6-point position (checkers on points 1-6). |
| bearoff_probabilitiesC | Get the probability distribution of bearing off in N moves. Args: bearoff_id: Either an integer bearoff ID or a 6-element list. Returns: Dict with probability distribution of bearing off in 1, 2, ..., N moves. |
| one_checker_raceA | Estimate win probability for a one-checker bearoff race. Args: pips: Number of pips remaining to bear off a single checker. Returns: Dict with equity and standard deviation, or null if unsupported. |
| rollA | Simulate a roll of two six-sided dice. Returns: Dict with die1 and die2 values (1-6 each). |
| equities_valueA | Look up match equity for a given match score. Args: x_away: Points player X needs to win the match (0-25). o_away: Points player O needs to win the match (0-25). Returns: Dict with match winning chance (MWC) for player X. |
| get_constantsA | Get all GNUBG constant values used by other tools. Returns: Dict with position_classes, evaluation_modes, and rollout_types. Use these string names as parameter values in other tools. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hbomze/bb-gnubg-api-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server