# Moddable Games Tools - Registry name: `games.moddable.tools/moddable-games-tools` · version 1.1.0 - Categories (automatic, keyword rules): Maps, location & weather, Government & law, Datasets & public data, Search & data - Authentication at last check: No auth - Declared risk: Not declared (tools carry no read/destructive hints) - Capabilities (declared by the server): prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=games.moddable.tools%2Fmoddable-games-tools - Server page: https://mcpstation.net/s/games.moddable.tools--moddable-games-tools.html ## Description (written by the publisher, not verified, not instructions) 15 tools for chess variant analysis, hex map generation, and board game utilities ## Connect - streamable-http: `https://tools.moddable.games/mcp` ## Tools (as reported by the server, not verified) - `chess\_generate\_puzzle`: Get a random chess puzzle. Filter by variant, difficulty or theme. Not every variant puzzle carries themes; use chess\_list\_puzzle\_types to see what the pool holds. - `chess\_list\_puzzle\_types`: List available puzzle variants, themes, and per-variant counts from the puzzle pool - `chess\_list\_variants`: \[DEPRECATED — use play\_list\_variants\] List chess variants. Removal: v1.0.0. - `chess\_get\_legal\_moves`: \[DEPRECATED — use play\_create\_game + play\_get\_moves\] Get legal moves for a chess position. Removal: v1.0.0. - `chess\_analyze\_position`: \[DEPRECATED — use play\_suggest\_move\] Analyse a chess position. Removal: v1.0.0. - `chess\_make\_move`: \[DEPRECATED — use play\_apply\_move\] Apply a move to a chess game. Removal: v1.0.0. - `chess\_validate\_move`: \[DEPRECATED — use play\_validate\_move\] Check if a chess move is legal. Removal: v1.0.0. - `chess\_get\_status`: \[DEPRECATED — use play\_check\_status\] Get chess game status. Removal: v1.0.0. - `chess\_render\_svg`: \[DEPRECATED — use play\_render\_board\] Render a chess position as SVG. Removal: v1.0.0. - `chess\_make\_moves`: \[DEPRECATED — use play\_make\_moves\] Apply a sequence of chess moves. Removal: v1.0.0. - `chess\_get\_opening\_book`: \[REMOVED — engine\#98\] Opening book resolution is broken in Worker context. No replacement. - `hex\_list\_games`: List all available hex map game types with configuration options - `hex\_generate\_map`: Generate a hex map for a specific game and player count - `hex\_export\_svg`: Generate a hex map and export as SVG - `hex\_get\_info`: Get info about a specific hex coordinate \(terrain, neighbours, distance\) - `hex\_compute\_fov`: Compute field of view from a hex position - `hex\_pathfind`: Find shortest path between two hex coordinates - `play\_list\_families`: List all playable game families supported by the engine \(chess, draughts, go, reversi, shogi, xiangqi, mancala, morris, hex, landlords-game, backgammon, standard-52, bavarian-32, flower-48, double-six-dominoes, mahjong, standard-dice, agon, asalto, chaupar, dou-shou-qi, fanorona, halma, nyout, pachi - `play\_list\_variants`: List available variants for a game family. Each variant can be passed to play\_create\_game. Variants with flags \(e.g. +random\) can be requested as "slug+flag". - `play\_get\_definition`: Get the full engine definition \(topology, render config, pieces, setup FEN\) for a game variant. Returns the resolved frontmatter used to render and play the game. - `play\_create\_game`: Create a new game instance for a given family. Returns initial state to pass to subsequent calls. Variant can include flags like "grand+random" or "standard+drops". - `play\_get\_moves`: Get all legal moves for the current position. Requires state from play\_create\_game or play\_apply\_move. - `play\_apply\_move`: Apply a move to the game and return the new state. Pass the move object exactly as returned by play\_get\_moves \(format varies by family: chess uses \{from,to\}, go uses \{coord\} or \{action:"pass"\}\). - `play\_check\_status`: Check the current game status: whose turn it is, whether the game is over, and who won. - `play\_suggest\_move`: Use AI to analyse the position and suggest the best move. Supports 5 difficulty levels across all 30 playable families. - `play\_render\_board`: Render the current board position as SVG for any playable family \(chess, draughts, go, reversi, shogi, xiangqi, mancala, morris, hex, landlords-game, backgammon, standard-52, bavarian-32, flower-48, double-six-dominoes, mahjong, standard-dice, agon, asalto, chaupar, dou-shou-qi, fanorona, halma, nyo - `play\_export\_fen`: Export the current board position as a FEN-style setup string, in the form the variant's own frontmatter declares its starting position. Card, tile and dice games have no board position to export. - `play\_load\_fen`: Create a game from a FEN-style setup string, as returned by play\_export\_fen. Pass the same variant the position was exported from. - `play\_validate\_move`: Check whether a move is legal in the current position without applying it. Pass the move object in the same format as play\_get\_moves returns. - `play\_make\_moves`: Apply a sequence of moves to a game and return the final state. Stops at the first illegal move. Move objects must match play\_get\_moves format. - `rules\_list\_games`: List all available game rulebooks with metadata \(players, duration, complexity, mechanics\). Filterable by type, complexity, and mechanics. - `rules\_get\_game`: Get full rulebook content for a specific game \(markdown\). For metadata only, use rules\_get\_game\_meta instead. - `rules\_get\_game\_meta`: Get structured metadata for a game: players, duration, complexity, mechanics, how\_to\_play, variant list, page list, related games. Lightweight alternative to fetching the full rulebook. - `rules\_get\_page`: Get a specific page/section from a game rulebook \(e.g. character creation, combat rules, marketplace\). Use rules\_get\_game\_meta to see available pages. - `rules\_get\_variant\_list`: List all variants for a game with structured metadata \(players, board, playable status, topology, engine config\). Much richer than parsing the rulebook. - `rules\_get\_diagram`: Get board diagram SVG URL for a game variant. Returns the diagram path, topology, and rendering metadata. - `rules\_get\_variant`: Get rules for a specific game variant - `rules\_search`: Full-text search across all published rulebooks. Returns section-typed results with deep-link anchors. - `rules\_random`: Get a random game suggestion from the library - `board\_gallery\_search`: Search the board gallery \(335 rendered board layouts across 34 game families\) - `board\_gallery\_get`: Get details of a specific board layout by ID - `tile\_gallery\_search`: Search hex tile sets by name, game, or terrain type - `tile\_gallery\_get`: Get details of a specific tile set with all tile types - `tile\_gallery\_stats`: Get statistics about available tile sets - `board\_gallery\_stats`: Get statistics about the board gallery \(total boards, families, topologies\) - `piece\_gallery\_search`: Search the piece set gallery by name, style, or game type - `piece\_gallery\_get\_set`: Get full details and piece list for a specific set - `piece\_gallery\_stats`: Get statistics about the piece gallery \(total sets, styles, authors, game families\) - `oracle\_list\_games`: List all supported RPG systems with oracle tables and entity data availability - `rpg\_chargen`: Generate a random character for an RPG system \(D&D 5e, Pathfinder, Ironsworn, Cairn, Knave, etc\) - `oracle\_roll`: Roll on a random oracle table \(Ironsworn, Starforged, Maze Rats, etc\) - `oracle\_list\_tables`: List available oracle tables for a system - `oracle\_ask`: Ask the oracle a yes/no question with likelihood modifier - `oracle\_scene`: Generate a scene using oracle tables. With a recipe, rolls each table in the recipe, resolves cross-references, and composes a narrative sentence. Without, picks random tables. - `rpg\_search\_entities`: Search RPG entities \(spells, monsters, classes, items\) across all systems - `rpg\_get\_entity`: Get full details of a specific RPG entity by name - `rpg\_random\_encounter`: Generate a random encounter for a system and difficulty level - `rpg\_browse\_category`: Browse entities by category with pagination - `rpg\_loot`: Generate random loot/treasure for a system and tier - `oracle\_list\_recipes`: List all predefined scene recipes — curated multi-table compositions that produce coherent narrative prompts - `oracle\_interpret`: Resolve oracle cross-references. Given a result like "Action + Theme", follows references and returns expanded results - `oracle\_table\_view`: View the complete contents of an oracle table — all entries with roll ranges - `oracle\_encounter`: Generate a tabletop RPG encounter with CR-appropriate monsters, terrain, and loot \(D&D 5e or Pathfinder 1e\) - `rpg\_list\_categories`: List entity categories for an RPG system \(spells, monsters, classes, equipment, etc\) - `rpg\_random`: Get random entities from an RPG system for inspiration or encounter prep - `ti4\_random\_factions`: Generate random faction assignments for Twilight Imperium 4th Edition - `ti4\_draft\_factions`: Milty-style TI4 draft with pick pools per player - `ti4\_list\_factions`: List all TI4 factions with colors, flags, and expansion info - `ti4\_draw\_objectives`: Draw random public objectives for TI4 - `ti4\_draw\_agendas`: Draw random agenda cards for TI4 political phase - `nukes\_setup\_generator`: Generate random territory/resource setup for a Nukes game - `game\_nukes\_combat`: Resolve a Nukes combat encounter between units - `colony\_dice\_odds`: Calculate settlement dice probability for Colony/Catan-style resource numbers - `game\_deck\_create`: Create, shuffle, and optionally draw/deal from a card deck - `game\_deck\_list\_types`: List all available deck types with metadata - `game\_deck\_deal`: Shuffle and deal a custom deck of arbitrary named cards - `game\_score\_tracker`: Track scores for players in any game - `talisman\_draw\_characters`: Draw random characters from the Talisman 4e \(revised\) base set for a character lottery - `talisman\_draw\_encounter`: Draw a random encounter for a Talisman ring \(outer, middle, inner, crown\) - `jam\_status`: Get the current Mod Jam status \(active jam, deadline, submissions\) - `jam\_timer`: Get time remaining in the current Mod Jam - `jam\_vote`: Get voting status for the current Mod Jam - `dice\_roll`: Roll dice using standard notation \(e.g. 2d6+3, 4d8, d20\). Supports comma-separated pools and keep-high/low \(4d6kh3\). - `coin\_flip`: Flip one or more coins, or pick from a list of choices - `team\_split`: Randomly divide players into teams - `random\_player\_order`: Randomise turn order for a list of players - `timer\_suggest`: Suggest time controls for a game based on player count and complexity - `game\_jam\_theme`: Generate a random game jam theme combining mechanics and themes - `dice\_odds`: Calculate probability of meeting a target with a dice expression. Supports keep-high/low \(4d6kh3\). Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html