Moddable Games Tools
42 AI-callable tools for chess variant analysis (70+ variants, 1,500+ puzzles), piece gallery discovery (96 sets, 2,550 SVGs, 19 game families), hex map…
What it can do
- Chess List Variants: List all available chess variants with their descriptions, board sizes, and rules.
- Chess Get Legal Moves: Get all legal moves for the current position. Returns moves in algebraic notation with annotations (capture, promotion, castling, etc).
- Chess Analyze Position: Evaluate a chess position using the engine. Returns a score (centipawns from the side to move), best move, and the principal variation.
What data it sees
Do you need an account
No: the server works without sign-in
42 AI-callable tools for chess variant analysis (70+ variants, 1,500+ puzzles), piece gallery discovery (96 sets, 2,550 SVGs, 19 game families), hex map generation (6 games), rules library queries (24 games, 147 variants), and board game utilities. First board game engine MCP server.
How to connect
How to connect Moddable Games Tools to Claude
The server address to paste into Claude settings:
https://moddable-games-tools--mark-6qxj.run.tools
- Open Claude (claude.ai or the desktop app).
- Go to Settings → Connectors.
- Click Add custom connector.
- Paste the server address copied below into Remote MCP server URL and click Add.
- In a chat, click + → Connectors and switch the new connector on.
Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.
Authorization
After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.
How to connect Moddable Games Tools to ChatGPT
The server address to paste into ChatGPT settings:
https://moddable-games-tools--mark-6qxj.run.tools
- Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
- Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
- Open Settings → Connectors and click Create.
- Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
- Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
- In a new chat open + → Apps/Connectors and enable the connector.
OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.
Authorization
On first use ChatGPT opens the service's sign-in window. Sign in and approve access.
How to connect Moddable Games Tools to Cursor
The server address to paste into Cursor settings:
https://moddable-games-tools--mark-6qxj.run.tools
Fastest: click Open in Cursor below and confirm the prompt.
Manually:
- In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
- Paste the JSON copied below into
~/.cursor/mcp.json(per project:.cursor/mcp.jsonin the repo root). - Save the file. The server appears in the MCP list; authorize it there if asked.
Authorization
If the service needs sign-in, an authorize button appears next to the server in the MCP list.
Server tool list (42)
Raw names from tools/list. Only developers need these.
| chess_list_variants | List all available chess variants with their descriptions, board sizes, and rules. |
| chess_get_legal_moves | Get all legal moves for the current position. Returns moves in algebraic notation with annotations (capture, promotion, castling, etc). |
| chess_analyze_position | Evaluate a chess position using the engine. Returns a score (centipawns from the side to move), best move, and the principal variation. |
| chess_validate_move | Check whether a specific move is legal in the current position. Returns legal/illegal with explanation. |
| chess_make_moves | Play a sequence of moves from a position and return the resulting FEN, game status, and move list. |
| chess_get_opening_book | Look up opening book moves for a position. Returns known good continuations from the variant opening book. |
| chess_render_svg | Render a board position as a self-contained SVG string. No DOM or browser APIs required. Works in Cloudflare Workers. |
| chess_generate_puzzle | Serve a random chess puzzle from a pool of 1,557 pre-generated puzzles across 66 variants (plus standard). Returns position, solution, metadata, and an SVG board image. Use chess_list_puzzle_types to discover available variant:type combinations. |
| hex_list_games | List all available hex map games with their map types, layouts, sizes, and style options. |
| hex_generate_map | Generate a hex map for a given game. Returns the full hex grid with terrain types, coordinates, and metadata. |
| hex_get_info | Get detailed information about a specific hex coordinate on a generated map: terrain type, neighbors, and distances to other hexes. |
| hex_compute_fov | Compute field-of-view from a hex position: all hexes visible within a given range, respecting line-of-sight through the grid. |
| hex_export_svg | Export a generated hex map as an SVG string for rendering or embedding. |
| hex_pathfind | Find the shortest path between two hexes on a generated map using breadth-first search. Optionally specify impassable terrain types. |
| rules_list_games | List all game families in the Moddable Games rules library. Returns titles, player counts, variant counts, and URLs. |
| rules_get_game | Get full metadata and variant list for a specific game family. Returns players, duration, tagline, variant names, and rules URL. |
| rules_get_variant | Get rules content for a specific variant within a game family. Returns headings, rules text, and direct URL. |
| rules_search | Search the entire rules library by keyword. Returns matching entries ranked by relevance across all games and variants. |
| rules_random | Pick a random game or variant from the library. Optionally constrain to a specific game family for a random variant within it. |
| ti4_draw_objectives | Draw random public objectives for a Twilight Imperium 4e game round. Supports expansion filtering. |
| ti4_draw_agendas | Draw random agenda cards for a Twilight Imperium 4e agenda phase. Returns for/against text. |
| ti4_draft_factions | Run a Milty-style faction draft: deal N factions per player to choose from. Supports ban lists. |
| nukes_setup_generator | Generate random starting positions for a Nukes game. Assigns territories to players on a generated hex map. |
| colony_dice_odds | Calculate probability of each resource number being rolled on 2d6. Returns the odds table and expected output for a given board position. |
| mancala_simulate_move | Simulate a mancala move: sow seeds from a pit and return the resulting board state. Supports Oware and Kalah rules. |
| mancala_legal_moves | List legal moves for the current player in a mancala position. |
| morris_legal_moves | List legal moves in a Nine Men's Morris position. Handles placement, sliding, and flying phases. |
| morris_detect_mill | Check if a placement/move forms a mill (three in a row) in Nine Men's Morris. |
| ur_roll_dice | Roll the four tetrahedral dice for the Royal Game of Ur. Each die has 2 marked corners (50% chance). Sum is 0-4. |
| ur_legal_moves | List legal moves for a Royal Game of Ur position given a dice roll. |
| pachisi_roll_cowries | Roll cowrie shells for Pachisi/Chaupar. 6 shells, count faces up. Special values: 0 faces = 25 (grace), 1 face = 10 (grace). |
| piece_gallery_search | Search and filter piece sets from the Moddable Chess piece gallery (96 sets, 2,550 SVGs across 19 game families). Filter by family, license, author, or search by name. Returns metadata for matching sets with preview URLs. |
| piece_gallery_get_set | Get full details for a specific piece set including manifest, piece file list, direct SVG URLs, and a preview image URL. Use piece_gallery_search to find set IDs first. |
| piece_gallery_stats | Get aggregate statistics for the piece gallery: total sets, SVG count, breakdown by family, license distribution, author list, and playable/recolorable counts. |
| chess_list_puzzle_types | List all available puzzle types in the pool with counts. Returns variant:type keys, total puzzles per key, and rating ranges. Use this to discover what puzzles are available before calling chess_generate_puzzle. |
| dice_roll | Roll dice using standard notation (e.g. "2d6+3", "4d8-1", "d20"). Supports any combination of dice, modifiers, and multiple pools. |
| ti4_random_factions | Generate random faction assignments for a Twilight Imperium 4e game. Supports base game and Prophecy of Kings expansion. |
| coin_flip | Flip a coin or pick randomly from a list of options. Use for quick binary decisions or random selection. |
| team_split | Randomly split a list of players into balanced teams. Handles odd numbers gracefully. |
| jam_status | Get the current Mod Jam status: active/inactive, theme, base game, time remaining, and submission count. |
| jam_timer | Get the countdown timer for the current Mod Jam phase (voting, building, or judging). |
| jam_vote | Get current vote standings for the active Mod Jam vote. Returns anonymised tallies per option. |