{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_aunf57fccp9b","handle":"moddable-games-tools","url":"https://wellknown.network/agents/moddable-games-tools","links":{"self":"https://wellknown.network/agents/moddable-games-tools/record.json","html":"https://wellknown.network/agents/moddable-games-tools","markdown":"https://wellknown.network/agents/moddable-games-tools/record.md","api":"https://wellknown.network/api/v1/agents/moddable-games-tools","status":"https://wellknown.network/api/v1/agents/moddable-games-tools/status","claim":"https://wellknown.network/agents/moddable-games-tools/claim","claimApi":"https://wellknown.network/api/v1/claims","badge":"https://wellknown.network/agents/moddable-games-tools/badge.svg","openapi":"https://wellknown.network/openapi.json"},"ard":{"identifier":"urn:air:tools.moddable.games:server:moddable-games-tools","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Moddable Games Tools","summary":"15 tools for chess variant analysis, hex map generation, and board game utilities","description":"15 tools for chess variant analysis, hex map generation, and board game utilities","publisher":{"name":"games.moddable.tools","url":null},"homepage":null,"repository":"https://github.com/Moddable-Games/moddable-website","version":"1.1.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://tools.moddable.games/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-06-10T17:34:17.738794Z","publishedAt":"2026-06-10T17:34:17.738794Z","registryName":"games.moddable.tools/moddable-games-tools"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"ai.prompting","name":"Prompt Management","confidence":1,"provenance":"derived"},{"slug":"dev.docs-lookup","name":"Documentation Lookup","confidence":0.54,"provenance":"derived"},{"slug":"knowledge.knowledge-graph","name":"Knowledge Graphs","confidence":0.525,"provenance":"derived"},{"slug":"productivity.calendar","name":"Calendar & Scheduling","confidence":0.51,"provenance":"derived"}],"categories":["ai","dev","knowledge","productivity"]},"observed":{"status":"live","statusReason":"Responded 8h ago.","lastOkAt":"2026-09-06T01:24:07.229Z","lastProbedAt":"2026-09-06T01:24:07.229Z","statusComputedAt":"2026-09-06T01:24:42.031Z","reliability30d":{"probes":1,"successRate":1,"p50Ms":1067},"latestObservations":[{"at":"2026-09-06T01:24:07.229Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":1067,"error":null,"detail":{"tools":[{"name":"chess_generate_puzzle","description":"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"},{"name":"chess_list_puzzle_types","description":"List available puzzle variants, themes, and per-variant counts from the puzzle pool"},{"name":"chess_list_variants","description":"[DEPRECATED — use play_list_variants] List chess variants. Removal: v1.0.0."},{"name":"chess_get_legal_moves","description":"[DEPRECATED — use play_create_game + play_get_moves] Get legal moves for a chess position. Removal: v1.0.0."},{"name":"chess_analyze_position","description":"[DEPRECATED — use play_suggest_move] Analyse a chess position. Removal: v1.0.0."},{"name":"chess_make_move","description":"[DEPRECATED — use play_apply_move] Apply a move to a chess game. Removal: v1.0.0."},{"name":"chess_validate_move","description":"[DEPRECATED — use play_validate_move] Check if a chess move is legal. Removal: v1.0.0."},{"name":"chess_get_status","description":"[DEPRECATED — use play_check_status] Get chess game status. Removal: v1.0.0."},{"name":"chess_render_svg","description":"[DEPRECATED — use play_render_board] Render a chess position as SVG. Removal: v1.0.0."},{"name":"chess_make_moves","description":"[DEPRECATED — use play_make_moves] Apply a sequence of chess moves. Removal: v1.0.0."},{"name":"chess_get_opening_book","description":"[REMOVED — engine#98] Opening book resolution is broken in Worker context. No replacement."},{"name":"hex_list_games","description":"List all available hex map game types with configuration options"},{"name":"hex_generate_map","description":"Generate a hex map for a specific game and player count"},{"name":"hex_export_svg","description":"Generate a hex map and export as SVG"},{"name":"hex_get_info","description":"Get info about a specific hex coordinate (terrain, neighbours, distance)"},{"name":"hex_compute_fov","description":"Compute field of view from a hex position"},{"name":"hex_pathfind","description":"Find shortest path between two hex coordinates"},{"name":"play_list_families","description":"List all playable game families supported by the engine (chess, draughts, go, reversi, shogi, xiangqi, mancala, morris, hex, landlords-game)"},{"name":"play_list_variants","description":"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\"."},{"name":"play_get_definition","description":"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 gam"},{"name":"play_create_game","description":"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+dro"},{"name":"play_get_moves","description":"Get all legal moves for the current position. Requires state from play_create_game or play_apply_move."},{"name":"play_apply_move","description":"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"},{"name":"play_check_status","description":"Check the current game status: whose turn it is, whether the game is over, and who won."},{"name":"play_suggest_move","description":"Use AI to analyse the position and suggest the best move. Supports 5 difficulty levels across all 10 playable families."},{"name":"play_render_board","description":"Render the current board position as SVG for any playable family (chess, draughts, go, reversi, shogi, xiangqi, mancala, morris, hex, landlords-game)."},{"name":"play_export_fen","description":"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,"},{"name":"play_load_fen","description":"Create a game state from a FEN-style position string. Works for all 10 families."},{"name":"play_validate_move","description":"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."},{"name":"play_make_moves","description":"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."},{"name":"rules_list_games","description":"List all available game rulebooks with metadata (players, duration, complexity, mechanics). Filterable by type, complexity, and mechanics."},{"name":"rules_get_game","description":"Get full rulebook content for a specific game (markdown). For metadata only, use rules_get_game_meta instead."},{"name":"rules_get_game_meta","description":"Get structured metadata for a game: players, duration, complexity, mechanics, how_to_play, variant list, page list, related games. Lightweight alternative to fe"},{"name":"rules_get_page","description":"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."},{"name":"rules_get_variant_list","description":"List all variants for a game with structured metadata (players, board, playable status, topology, engine config). Much richer than parsing the rulebook."},{"name":"rules_get_diagram","description":"Get board diagram SVG URL for a game variant. Returns the diagram path, topology, and rendering metadata."},{"name":"rules_get_variant","description":"Get rules for a specific game variant"},{"name":"rules_search","description":"Full-text search across all published rulebooks. Returns section-typed results with deep-link anchors."},{"name":"rules_random","description":"Get a random game suggestion from the library"},{"name":"board_gallery_search","description":"Search the board gallery (334 rendered board layouts across 33 game families)"},{"name":"board_gallery_get","description":"Get details of a specific board layout by ID"},{"name":"tile_gallery_search","description":"Search hex tile sets by name, game, or terrain type"},{"name":"tile_gallery_get","description":"Get details of a specific tile set with all tile types"},{"name":"tile_gallery_stats","description":"Get statistics about available tile sets"},{"name":"board_gallery_stats","description":"Get statistics about the board gallery (total boards, families, topologies)"},{"name":"piece_gallery_search","description":"Search the piece set gallery by name, style, or game type"},{"name":"piece_gallery_get_set","description":"Get full details and piece list for a specific set"},{"name":"piece_gallery_stats","description":"Get statistics about the piece gallery (total sets, styles, authors, game families)"},{"name":"oracle_list_games","description":"List all supported RPG systems with oracle tables and entity data availability"},{"name":"rpg_chargen","description":"Generate a random character for an RPG system (D&D 5e, Pathfinder, Ironsworn, Cairn, Knave, etc)"},{"name":"oracle_roll","description":"Roll on a random oracle table (Ironsworn, Starforged, Maze Rats, etc)"},{"name":"oracle_list_tables","description":"List available oracle tables for a system"},{"name":"oracle_ask","description":"Ask the oracle a yes/no question with likelihood modifier"},{"name":"oracle_scene","description":"Generate a scene using oracle tables. With a recipe, rolls each table in the recipe, resolves cross-references, and composes a narrative sentence. Without, pick"},{"name":"rpg_search_entities","description":"Search RPG entities (spells, monsters, classes, items) across all systems"},{"name":"rpg_get_entity","description":"Get full details of a specific RPG entity by name"},{"name":"rpg_random_encounter","description":"Generate a random encounter for a system and difficulty level"},{"name":"rpg_browse_category","description":"Browse entities by category with pagination"},{"name":"rpg_loot","description":"Generate random loot/treasure for a system and tier"},{"name":"oracle_list_recipes","description":"List all predefined scene recipes — curated multi-table compositions that produce coherent narrative prompts"},{"name":"oracle_interpret","description":"Resolve oracle cross-references. Given a result like \"Action + Theme\", follows references and returns expanded results"},{"name":"oracle_table_view","description":"View the complete contents of an oracle table — all entries with roll ranges"},{"name":"oracle_encounter","description":"Generate a tabletop RPG encounter with CR-appropriate monsters, terrain, and loot (D&D 5e or Pathfinder 1e)"},{"name":"rpg_list_categories","description":"List entity categories for an RPG system (spells, monsters, classes, equipment, etc)"},{"name":"rpg_random","description":"Get random entities from an RPG system for inspiration or encounter prep"},{"name":"ti4_random_factions","description":"Generate random faction assignments for Twilight Imperium 4th Edition"},{"name":"ti4_draft_factions","description":"Milty-style TI4 draft with pick pools per player"},{"name":"ti4_list_factions","description":"List all TI4 factions with colors, flags, and expansion info"},{"name":"ti4_draw_objectives","description":"Draw random public objectives for TI4"},{"name":"ti4_draw_agendas","description":"Draw random agenda cards for TI4 political phase"},{"name":"nukes_setup_generator","description":"Generate random territory/resource setup for a Nukes game"},{"name":"game_nukes_combat","description":"Resolve a Nukes combat encounter between units"},{"name":"colony_dice_odds","description":"Calculate settlement dice probability for Colony/Catan-style resource numbers"},{"name":"game_deck_create","description":"Create, shuffle, and optionally draw/deal from a card deck"},{"name":"game_deck_list_types","description":"List all available deck types with metadata"},{"name":"game_deck_deal","description":"Shuffle and deal a custom deck of arbitrary named cards"},{"name":"game_score_tracker","description":"Track scores for players in any game"},{"name":"talisman_draw_characters","description":"Draw random characters from the Talisman 4e (revised) base set for a character lottery"},{"name":"talisman_draw_encounter","description":"Draw a random encounter for a Talisman ring (outer, middle, inner, crown)"},{"name":"jam_status","description":"Get the current Mod Jam status (active jam, deadline, submissions)"},{"name":"jam_timer","description":"Get time remaining in the current Mod Jam"},{"name":"jam_vote","description":"Get voting status for the current Mod Jam"},{"name":"dice_roll","description":"Roll dice using standard notation (e.g. 2d6+3, 4d8, d20). Supports comma-separated pools and keep-high/low (4d6kh3)."},{"name":"coin_flip","description":"Flip one or more coins, or pick from a list of choices"},{"name":"team_split","description":"Randomly divide players into teams"},{"name":"random_player_order","description":"Randomise turn order for a list of players"},{"name":"timer_suggest","description":"Suggest time controls for a game based on player count and complexity"},{"name":"game_jam_theme","description":"Generate a random game jam theme combining mechanics and themes"},{"name":"dice_odds","description":"Calculate probability of meeting a target with a dice expression. Supports keep-high/low (4d6kh3)."}],"toolCount":89,"serverName":"moddable-tools","capabilities":["tools","prompts","resources"],"serverVersion":"0.1.0","protocolVersion":"2025-03-26"}}],"tools":[{"name":"chess_generate_puzzle","description":"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"},{"name":"chess_list_puzzle_types","description":"List available puzzle variants, themes, and per-variant counts from the puzzle pool"},{"name":"chess_list_variants","description":"[DEPRECATED — use play_list_variants] List chess variants. Removal: v1.0.0."},{"name":"chess_get_legal_moves","description":"[DEPRECATED — use play_create_game + play_get_moves] Get legal moves for a chess position. Removal: v1.0.0."},{"name":"chess_analyze_position","description":"[DEPRECATED — use play_suggest_move] Analyse a chess position. Removal: v1.0.0."},{"name":"chess_make_move","description":"[DEPRECATED — use play_apply_move] Apply a move to a chess game. Removal: v1.0.0."},{"name":"chess_validate_move","description":"[DEPRECATED — use play_validate_move] Check if a chess move is legal. Removal: v1.0.0."},{"name":"chess_get_status","description":"[DEPRECATED — use play_check_status] Get chess game status. Removal: v1.0.0."},{"name":"chess_render_svg","description":"[DEPRECATED — use play_render_board] Render a chess position as SVG. Removal: v1.0.0."},{"name":"chess_make_moves","description":"[DEPRECATED — use play_make_moves] Apply a sequence of chess moves. Removal: v1.0.0."},{"name":"chess_get_opening_book","description":"[REMOVED — engine#98] Opening book resolution is broken in Worker context. No replacement."},{"name":"hex_list_games","description":"List all available hex map game types with configuration options"},{"name":"hex_generate_map","description":"Generate a hex map for a specific game and player count"},{"name":"hex_export_svg","description":"Generate a hex map and export as SVG"},{"name":"hex_get_info","description":"Get info about a specific hex coordinate (terrain, neighbours, distance)"},{"name":"hex_compute_fov","description":"Compute field of view from a hex position"},{"name":"hex_pathfind","description":"Find shortest path between two hex coordinates"},{"name":"play_list_families","description":"List all playable game families supported by the engine (chess, draughts, go, reversi, shogi, xiangqi, mancala, morris, hex, landlords-game)"},{"name":"play_list_variants","description":"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\"."},{"name":"play_get_definition","description":"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 gam"},{"name":"play_create_game","description":"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+dro"},{"name":"play_get_moves","description":"Get all legal moves for the current position. Requires state from play_create_game or play_apply_move."},{"name":"play_apply_move","description":"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"},{"name":"play_check_status","description":"Check the current game status: whose turn it is, whether the game is over, and who won."},{"name":"play_suggest_move","description":"Use AI to analyse the position and suggest the best move. Supports 5 difficulty levels across all 10 playable families."},{"name":"play_render_board","description":"Render the current board position as SVG for any playable family (chess, draughts, go, reversi, shogi, xiangqi, mancala, morris, hex, landlords-game)."},{"name":"play_export_fen","description":"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,"},{"name":"play_load_fen","description":"Create a game state from a FEN-style position string. Works for all 10 families."},{"name":"play_validate_move","description":"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."},{"name":"play_make_moves","description":"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."},{"name":"rules_list_games","description":"List all available game rulebooks with metadata (players, duration, complexity, mechanics). Filterable by type, complexity, and mechanics."},{"name":"rules_get_game","description":"Get full rulebook content for a specific game (markdown). For metadata only, use rules_get_game_meta instead."},{"name":"rules_get_game_meta","description":"Get structured metadata for a game: players, duration, complexity, mechanics, how_to_play, variant list, page list, related games. Lightweight alternative to fe"},{"name":"rules_get_page","description":"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."},{"name":"rules_get_variant_list","description":"List all variants for a game with structured metadata (players, board, playable status, topology, engine config). Much richer than parsing the rulebook."},{"name":"rules_get_diagram","description":"Get board diagram SVG URL for a game variant. Returns the diagram path, topology, and rendering metadata."},{"name":"rules_get_variant","description":"Get rules for a specific game variant"},{"name":"rules_search","description":"Full-text search across all published rulebooks. Returns section-typed results with deep-link anchors."},{"name":"rules_random","description":"Get a random game suggestion from the library"},{"name":"board_gallery_search","description":"Search the board gallery (334 rendered board layouts across 33 game families)"},{"name":"board_gallery_get","description":"Get details of a specific board layout by ID"},{"name":"tile_gallery_search","description":"Search hex tile sets by name, game, or terrain type"},{"name":"tile_gallery_get","description":"Get details of a specific tile set with all tile types"},{"name":"tile_gallery_stats","description":"Get statistics about available tile sets"},{"name":"board_gallery_stats","description":"Get statistics about the board gallery (total boards, families, topologies)"},{"name":"piece_gallery_search","description":"Search the piece set gallery by name, style, or game type"},{"name":"piece_gallery_get_set","description":"Get full details and piece list for a specific set"},{"name":"piece_gallery_stats","description":"Get statistics about the piece gallery (total sets, styles, authors, game families)"},{"name":"oracle_list_games","description":"List all supported RPG systems with oracle tables and entity data availability"},{"name":"rpg_chargen","description":"Generate a random character for an RPG system (D&D 5e, Pathfinder, Ironsworn, Cairn, Knave, etc)"},{"name":"oracle_roll","description":"Roll on a random oracle table (Ironsworn, Starforged, Maze Rats, etc)"},{"name":"oracle_list_tables","description":"List available oracle tables for a system"},{"name":"oracle_ask","description":"Ask the oracle a yes/no question with likelihood modifier"},{"name":"oracle_scene","description":"Generate a scene using oracle tables. With a recipe, rolls each table in the recipe, resolves cross-references, and composes a narrative sentence. Without, pick"},{"name":"rpg_search_entities","description":"Search RPG entities (spells, monsters, classes, items) across all systems"},{"name":"rpg_get_entity","description":"Get full details of a specific RPG entity by name"},{"name":"rpg_random_encounter","description":"Generate a random encounter for a system and difficulty level"},{"name":"rpg_browse_category","description":"Browse entities by category with pagination"},{"name":"rpg_loot","description":"Generate random loot/treasure for a system and tier"},{"name":"oracle_list_recipes","description":"List all predefined scene recipes — curated multi-table compositions that produce coherent narrative prompts"},{"name":"oracle_interpret","description":"Resolve oracle cross-references. Given a result like \"Action + Theme\", follows references and returns expanded results"},{"name":"oracle_table_view","description":"View the complete contents of an oracle table — all entries with roll ranges"},{"name":"oracle_encounter","description":"Generate a tabletop RPG encounter with CR-appropriate monsters, terrain, and loot (D&D 5e or Pathfinder 1e)"},{"name":"rpg_list_categories","description":"List entity categories for an RPG system (spells, monsters, classes, equipment, etc)"},{"name":"rpg_random","description":"Get random entities from an RPG system for inspiration or encounter prep"},{"name":"ti4_random_factions","description":"Generate random faction assignments for Twilight Imperium 4th Edition"},{"name":"ti4_draft_factions","description":"Milty-style TI4 draft with pick pools per player"},{"name":"ti4_list_factions","description":"List all TI4 factions with colors, flags, and expansion info"},{"name":"ti4_draw_objectives","description":"Draw random public objectives for TI4"},{"name":"ti4_draw_agendas","description":"Draw random agenda cards for TI4 political phase"},{"name":"nukes_setup_generator","description":"Generate random territory/resource setup for a Nukes game"},{"name":"game_nukes_combat","description":"Resolve a Nukes combat encounter between units"},{"name":"colony_dice_odds","description":"Calculate settlement dice probability for Colony/Catan-style resource numbers"},{"name":"game_deck_create","description":"Create, shuffle, and optionally draw/deal from a card deck"},{"name":"game_deck_list_types","description":"List all available deck types with metadata"},{"name":"game_deck_deal","description":"Shuffle and deal a custom deck of arbitrary named cards"},{"name":"game_score_tracker","description":"Track scores for players in any game"},{"name":"talisman_draw_characters","description":"Draw random characters from the Talisman 4e (revised) base set for a character lottery"},{"name":"talisman_draw_encounter","description":"Draw a random encounter for a Talisman ring (outer, middle, inner, crown)"},{"name":"jam_status","description":"Get the current Mod Jam status (active jam, deadline, submissions)"},{"name":"jam_timer","description":"Get time remaining in the current Mod Jam"},{"name":"jam_vote","description":"Get voting status for the current Mod Jam"},{"name":"dice_roll","description":"Roll dice using standard notation (e.g. 2d6+3, 4d8, d20). Supports comma-separated pools and keep-high/low (4d6kh3)."},{"name":"coin_flip","description":"Flip one or more coins, or pick from a list of choices"},{"name":"team_split","description":"Randomly divide players into teams"},{"name":"random_player_order","description":"Randomise turn order for a list of players"},{"name":"timer_suggest","description":"Suggest time controls for a game based on player count and complexity"},{"name":"game_jam_theme","description":"Generate a random game jam theme combining mechanics and themes"},{"name":"dice_odds","description":"Calculate probability of meeting a target with a dice expression. Supports keep-high/low (4d6kh3)."}],"package":null},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"games.moddable.tools/moddable-games-tools","url":"https://registry.modelcontextprotocol.io/v0/servers/games.moddable.tools%2Fmoddable-games-tools","firstSeenAt":"2026-09-05T23:21:00.340Z","fetchedAt":"2026-09-05T23:21:00.340Z","normalizedAt":"2026-09-05T23:21:00.340Z"}]},"firstSeenAt":"2026-09-05T23:21:00.340Z","updatedAt":"2026-09-06T01:24:52.764Z"}