Search / games.moddable.tools/moddable-games-tools
Moddable Games Tools
R0· no sign-in15 tools for chess variant analysis, hex map generation, and board game utilities
v1.1.0 · active · repository · descriptor JSON · versions
Search / games.moddable.tools/moddable-games-tools
R0· no sign-in15 tools for chess variant analysis, hex map generation, and board game utilities
v1.1.0 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"moddable-games-tools": {
"type": "http",
"url": "https://tools.moddable.games/mcp"
}
}
}claude mcp add --transport http moddable-games-tools https://tools.moddable.games/mcp[mcp_servers.moddable-games-tools]
url = "https://tools.moddable.games/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"moddable-games-tools": {
"type": "remote",
"url": "https://tools.moddable.games/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"moddable-games-tools": {
"type": "http",
"url": "https://tools.moddable.games/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=moddable-games-tools&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdG9vbHMubW9kZGFibGUuZ2FtZXMvbWNwIn0%3D"
}{
"servers": {
"moddable-games-tools": {
"type": "http",
"url": "https://tools.moddable.games/mcp"
}
}
}{
"mcpServers": {
"moddable-games-tools": {
"httpUrl": "https://tools.moddable.games/mcp"
}
}
}extensions:
"moddable-games-tools":
enabled: true
name: "moddable-games-tools"
type: streamable_http
uri: "https://tools.moddable.games/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotationsno tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky onestools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: chess_validate_move (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); hex_list_games (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); ti4_random_factions (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …tools.token_costabout 7,697 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changes11 tool changes in 30 daysstability.rug_pull5 tools kept their name but changed most of their description in 30 days; review before trusting themdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packagechess_generate_puzzlechangedinput schemaboard_gallery_searchchangeddescriptionSearch the board gallery (334 rendered board layouts across 33 game families)
Search the board gallery (335 rendered board layouts across 34 game families)
play_load_fenchangeddescription, input schemameaning changedCreate a game state from a FEN-style position string. Works for all 10 families.
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_export_fenchangeddescriptionmeaning changedExport 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).
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_render_boardchangeddescriptionmeaning changedRender the current board position as SVG for any playable family (chess, draughts, go, reversi, shogi, xiangqi, mancala, morris, hex, landlords-game).
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, nyout, pachisi, royal-ur, senet, stern-halma, surakarta, tafl).
play_suggest_movechangeddescriptionUse AI to analyse the position and suggest the best move. Supports 5 difficulty levels across all 10 playable families.
Use AI to analyse the position and suggest the best move. Supports 5 difficulty levels across all 30 playable families.
play_create_gamechangedinput schemaplay_get_definitionchangedinput schemaplay_list_variantschangedinput schemaplay_list_familieschangeddescriptionmeaning changedList all playable game families supported by the engine (chess, draughts, go, reversi, shogi, xiangqi, mancala, morris, hex, landlords-game)
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, pachisi, royal-ur, senet, stern-halma, surakarta, tafl)
Showing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +dns-namespace +reachable +uptime-93% ~updated-132d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://tools.moddable.games/mcp streamable-http | none | yes | 93% | 402 ms | 2025-03-26 | 2026-10-20 |
board_gallery_get | Get details of a specific board layout by ID |
board_gallery_search | Search the board gallery (335 rendered board layouts across 34 game families) |
board_gallery_stats | Get statistics about the board gallery (total boards, families, topologies) |
chess_analyze_position | [DEPRECATED — use play_suggest_move] Analyse a chess position. Removal: v1.0.0. |
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_get_legal_moves | [DEPRECATED — use play_create_game + play_get_moves] Get legal moves for a chess position. Removal: v1.0.0. |
chess_get_opening_book | [REMOVED — engine#98] Opening book resolution is broken in Worker context. No replacement. |
chess_get_status | [DEPRECATED — use play_check_status] Get chess game status. Removal: v1.0.0. |
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_make_move | [DEPRECATED — use play_apply_move] Apply a move to a chess game. Removal: v1.0.0. |
chess_make_moves | [DEPRECATED — use play_make_moves] Apply a sequence of chess moves. Removal: v1.0.0. |
chess_render_svg | [DEPRECATED — use play_render_board] Render a chess position as SVG. Removal: v1.0.0. |
chess_validate_move | [DEPRECATED — use play_validate_move] Check if a chess move is legal. Removal: v1.0.0. |
coin_flip | Flip one or more coins, or pick from a list of choices |
colony_dice_odds | Calculate settlement dice probability for Colony/Catan-style resource numbers |
dice_odds | Calculate probability of meeting a target with a dice expression. Supports keep-high/low (4d6kh3). |
dice_roll | Roll dice using standard notation (e.g. 2d6+3, 4d8, d20). Supports comma-separated pools and keep-high/low (4d6kh3). |
game_deck_create | Create, shuffle, and optionally draw/deal from a card deck |
game_deck_deal | Shuffle and deal a custom deck of arbitrary named cards |
game_deck_list_types | List all available deck types with metadata |
game_jam_theme | Generate a random game jam theme combining mechanics and themes |
game_nukes_combat | Resolve a Nukes combat encounter between units |
game_score_tracker | Track scores for players in any game |
hex_compute_fov | Compute field of view from a hex position |
hex_export_svg | Generate a hex map and export as SVG |
hex_generate_map | Generate a hex map for a specific game and player count |
hex_get_info | Get info about a specific hex coordinate (terrain, neighbours, distance) |
hex_list_games | List all available hex map game types with configuration options |
hex_pathfind | Find shortest path between two hex coordinates |
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 |
nukes_setup_generator | Generate random territory/resource setup for a Nukes game |
oracle_ask | Ask the oracle a yes/no question with likelihood modifier |
oracle_encounter | Generate a tabletop RPG encounter with CR-appropriate monsters, terrain, and loot (D&D 5e or Pathfinder 1e) |
oracle_interpret | Resolve oracle cross-references. Given a result like "Action + Theme", follows references and returns expanded results |
oracle_list_games | List all supported RPG systems with oracle tables and entity data availability |
oracle_list_recipes | List all predefined scene recipes — curated multi-table compositions that produce coherent narrative prompts |
oracle_list_tables | List available oracle tables for a system |
oracle_roll | Roll on a random oracle table (Ironsworn, Starforged, Maze Rats, etc) |
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. |
oracle_table_view | View the complete contents of an oracle table — all entries with roll ranges |
piece_gallery_get_set | Get full details and piece list for a specific set |
piece_gallery_search | Search the piece set gallery by name, style, or game type |
piece_gallery_stats | Get statistics about the piece gallery (total sets, styles, authors, game families) |
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_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_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_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_get_moves | Get all legal moves for the current position. Requires state from play_create_game or play_apply_move. |
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, pachisi, royal-ur, senet, stern-halma, surakarta, tafl) |
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_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_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. |
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, nyout, pachisi, royal-ur, senet, stern-halma, surakarta, tafl). |
play_suggest_move | Use AI to analyse the position and suggest the best move. Supports 5 difficulty levels across all 30 playable 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. |
random_player_order | Randomise turn order for a list of players |
rpg_browse_category | Browse entities by category with pagination |
rpg_chargen | Generate a random character for an RPG system (D&D 5e, Pathfinder, Ironsworn, Cairn, Knave, etc) |
rpg_get_entity | Get full details of a specific RPG entity by name |
rpg_list_categories | List entity categories for an RPG system (spells, monsters, classes, equipment, etc) |
rpg_loot | Generate random loot/treasure for a system and tier |
rpg_random | Get random entities from an RPG system for inspiration or encounter prep |
rpg_random_encounter | Generate a random encounter for a system and difficulty level |
rpg_search_entities | Search RPG entities (spells, monsters, classes, items) across all systems |
rules_get_diagram | Get board diagram SVG URL for a game variant. Returns the diagram path, topology, and rendering metadata. |
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 | Get rules for a specific game variant |
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_list_games | List all available game rulebooks with metadata (players, duration, complexity, mechanics). Filterable by type, complexity, and mechanics. |
rules_random | Get a random game suggestion from the library |
rules_search | Full-text search across all published rulebooks. Returns section-typed results with deep-link anchors. |
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) |
team_split | Randomly divide players into teams |
ti4_draft_factions | Milty-style TI4 draft with pick pools per player |
ti4_draw_agendas | Draw random agenda cards for TI4 political phase |
ti4_draw_objectives | Draw random public objectives for TI4 |
ti4_list_factions | List all TI4 factions with colors, flags, and expansion info |
ti4_random_factions | Generate random faction assignments for Twilight Imperium 4th Edition |
tile_gallery_get | Get details of a specific tile set with all tile types |
tile_gallery_search | Search hex tile sets by name, game, or terrain type |
tile_gallery_stats | Get statistics about available tile sets |
timer_suggest | Suggest time controls for a game based on player count and complexity |
Schemas: list_tools.
{
"name": "games.moddable.tools/moddable-games-tools",
"title": "Moddable Games Tools",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://tools.moddable.games/mcp",
"type": "streamable-http"
}
],
"version": "1.1.0",
"repository": {
"url": "https://github.com/Moddable-Games/moddable-website",
"source": "github"
},
"description": "15 tools for chess variant analysis, hex map generation, and board game utilities"
}