# Moddable Games Tools > Board game AI tools: 6 playable families, hex maps, puzzles, dice, oracles, RPG entities, rules search ## API Endpoint: https://tools.moddable.games/api/call POST with JSON body: {"tool": "tool_name", "args": {...}} ## MCP Endpoint: /mcp SSE transport for Model Context Protocol clients. ## Migration: Chess tools → Generic play tools Eight chess-only tools are deprecated. Use the family-generic replacements with `family: "chess"`: | Deprecated | Replacement | Notes | |---|---|---| | chess_list_variants | play_list_variants | Pass family:"chess" | | chess_get_legal_moves | play_create_game + play_get_moves | Create then query state | | chess_analyze_position | play_suggest_move | AI across all 10 families | | chess_make_move | play_apply_move | Generic move objects | | chess_validate_move | play_validate_move | Generic move objects | | chess_get_status | play_check_status | Family-agnostic | | chess_render_svg | play_render_board | SVG for any family | | chess_make_moves | play_make_moves | Sequence of moves | | chess_get_opening_book | *(removed, no replacement)* | engine#98: broken in Worker | ## Tools - **chess_generate_puzzle**: Get a random chess puzzle. Filter by variant or difficulty. Variant puzzles have no themes and max rating 1400 — theme and hard difficulty filters only apply to standard puzzles. - **chess_list_puzzle_types**: List available puzzle variants, themes, and per-variant counts from the puzzle pool - **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) - **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 10 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). - **play_export_fen**: Export the current board position as a FEN-style notation string. Works for all 10 families (chess, draughts, go, reversi, shogi, xiangqi, mancala, morris, hex, landlords-game). - **play_load_fen**: Create a game state from a FEN-style position string. Works for all 10 families. - **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 (334 rendered board layouts across 33 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).