Categories › Software Development › Game development & engines
15 tools for chess variant analysis, hex map generation, and board game utilities
Remote server: your requests and data go to tools.moddable.games. Claude Code: claude mcp add --transport http moddable-games-tools https://tools.moddable.games/mcp · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
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 schess_list_puzzle_types — List available puzzle variants, themes, and per-variant counts from the puzzle poolchess_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 optionshex_generate_map — Generate a hex map for a specific game and player counthex_export_svg — Generate a hex map and export as SVGhex_get_info — Get info about a specific hex coordinate (terrain, neighbours, distance)hex_compute_fov — Compute field of view from a hex positionhex_pathfind — Find shortest path between two hex coordinatesplay_list_families — List all playable game families supported by the engine (chess, draughts, go, reversi, shogi, xiangqi, mancala, morris, hex, landlords-game,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 requestplay_get_definition — Get the full engine definition (topology, render config, pieces, setup FEN) for a game variant. Returns the resolved frontmatter used to renplay_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+randplay_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: chesplay_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, landloplay_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. Carplay_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 returnsplay_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 formrules_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. Lightweigrules_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 availarules_get_variant_list — List all variants for a game with structured metadata (players, board, playable status, topology, engine config). Much richer than parsing trules_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 variantrules_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 libraryboard_gallery_search — Search the board gallery (335 rendered board layouts across 34 game families)Not tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.