Moddable Games Tools

15 tools for chess variant analysis, hex map generation, and board game utilities

Community: Submitted by a user or imported; check the owner before granting accessOnlineNo sign-inGlobalFreeRead-only

What it can do

    What data it sees

    Do you need an account

    No: the server works without sign-in

    15 tools for chess variant analysis, hex map generation, and board game utilities

    How to connect

    How to connect Moddable Games Tools to Claude

    The server address to paste into Claude settings:

    https://tools.moddable.games/mcp

    1. Open Claude (claude.ai or the desktop app).
    2. Go to Settings → Connectors.
    3. Click Add custom connector.
    4. Paste the server address copied below into Remote MCP server URL and click Add.
    5. In a chat, click + → Connectors and switch the new connector on.

    Custom connectors are available on Free, Pro, Max, Team and Enterprise plans (Free is limited to one). On Team and Enterprise an organization Owner adds the connector first under Organization settings → Connectors.

    Authorization

    After you click Add, a sign-in window for the service opens. Sign in with your own account and approve access. Claude never sees your password.

    How to connect Moddable Games Tools to ChatGPT

    The server address to paste into ChatGPT settings:

    https://tools.moddable.games/mcp

    1. Open ChatGPT in a browser (chatgpt.com). A Plus, Pro, Business, Enterprise or Edu plan is required.
    2. Turn on developer mode once: Settings → Apps → Advanced settings → Developer mode.
    3. Open Settings → Connectors and click Create.
    4. Fill in the form: Name (anything), Description (one line about what the service does), MCP server URL (copy it below).
    5. Under Authentication choose OAuth if the service requires sign-in, otherwise None. Click Create.
    6. In a new chat open + → Apps/Connectors and enable the connector.

    OpenAI has renamed this section before (Connectors → Apps/Plugins). If the label differs, search settings for "developer mode". On Business/Enterprise workspaces an admin must allow custom connectors first.

    Authorization

    On first use ChatGPT opens the service's sign-in window. Sign in and approve access.

    How to connect Moddable Games Tools to Cursor

    The server address to paste into Cursor settings:

    https://tools.moddable.games/mcp

    Fastest: click Open in Cursor below and confirm the prompt.

    Manually:

    1. In Cursor open Settings → Cursor Settings → MCP and click Add new global MCP server.
    2. Paste the JSON copied below into ~/.cursor/mcp.json (per project: .cursor/mcp.json in the repo root).
    3. Save the file. The server appears in the MCP list; authorize it there if asked.

    Authorization

    If the service needs sign-in, an authorize button appears next to the server in the MCP list.

    Server tool list (89)

    Raw names from tools/list. Only developers need these.

    chess_generate_puzzleGet 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_typesList 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_gamesList all available hex map game types with configuration options
    hex_generate_mapGenerate a hex map for a specific game and player count
    hex_export_svgGenerate a hex map and export as SVG
    hex_get_infoGet info about a specific hex coordinate (terrain, neighbours, distance)
    hex_compute_fovCompute field of view from a hex position
    hex_pathfindFind shortest path between two hex coordinates
    play_list_familiesList all playable game families supported by the engine (chess, draughts, go, reversi, shogi, xiangqi, mancala, morris, hex, landlords-game)
    play_list_variantsList 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_definitionGet 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_gameCreate 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_movesGet all legal moves for the current position. Requires state from play_create_game or play_apply_move.
    play_apply_moveApply 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_statusCheck the current game status: whose turn it is, whether the game is over, and who won.
    play_suggest_moveUse AI to analyse the position and suggest the best move. Supports 5 difficulty levels across all 10 playable families.
    play_render_boardRender the current board position as SVG for any playable family (chess, draughts, go, reversi, shogi, xiangqi, mancala, morris, hex, landlords-game).
    play_export_fenExport 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_fenCreate a game state from a FEN-style position string. Works for all 10 families.
    play_validate_moveCheck 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_movesApply 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_gamesList all available game rulebooks with metadata (players, duration, complexity, mechanics). Filterable by type, complexity, and mechanics.
    rules_get_gameGet full rulebook content for a specific game (markdown). For metadata only, use rules_get_game_meta instead.
    rules_get_game_metaGet 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_pageGet 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_listList all variants for a game with structured metadata (players, board, playable status, topology, engine config). Much richer than parsing the rulebook.
    rules_get_diagramGet board diagram SVG URL for a game variant. Returns the diagram path, topology, and rendering metadata.
    rules_get_variantGet rules for a specific game variant
    rules_searchFull-text search across all published rulebooks. Returns section-typed results with deep-link anchors.
    rules_randomGet a random game suggestion from the library
    board_gallery_searchSearch the board gallery (334 rendered board layouts across 33 game families)
    board_gallery_getGet details of a specific board layout by ID
    tile_gallery_searchSearch hex tile sets by name, game, or terrain type
    tile_gallery_getGet details of a specific tile set with all tile types
    tile_gallery_statsGet statistics about available tile sets
    board_gallery_statsGet statistics about the board gallery (total boards, families, topologies)
    piece_gallery_searchSearch the piece set gallery by name, style, or game type
    piece_gallery_get_setGet full details and piece list for a specific set
    piece_gallery_statsGet statistics about the piece gallery (total sets, styles, authors, game families)
    oracle_list_gamesList all supported RPG systems with oracle tables and entity data availability
    rpg_chargenGenerate a random character for an RPG system (D&D 5e, Pathfinder, Ironsworn, Cairn, Knave, etc)
    oracle_rollRoll on a random oracle table (Ironsworn, Starforged, Maze Rats, etc)
    oracle_list_tablesList available oracle tables for a system
    oracle_askAsk the oracle a yes/no question with likelihood modifier
    oracle_sceneGenerate 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_entitiesSearch RPG entities (spells, monsters, classes, items) across all systems
    rpg_get_entityGet full details of a specific RPG entity by name
    rpg_random_encounterGenerate a random encounter for a system and difficulty level
    rpg_browse_categoryBrowse entities by category with pagination
    rpg_lootGenerate random loot/treasure for a system and tier
    oracle_list_recipesList all predefined scene recipes — curated multi-table compositions that produce coherent narrative prompts
    oracle_interpretResolve oracle cross-references. Given a result like "Action + Theme", follows references and returns expanded results
    oracle_table_viewView the complete contents of an oracle table — all entries with roll ranges
    oracle_encounterGenerate a tabletop RPG encounter with CR-appropriate monsters, terrain, and loot (D&D 5e or Pathfinder 1e)
    rpg_list_categoriesList entity categories for an RPG system (spells, monsters, classes, equipment, etc)
    rpg_randomGet random entities from an RPG system for inspiration or encounter prep
    ti4_random_factionsGenerate random faction assignments for Twilight Imperium 4th Edition
    ti4_draft_factionsMilty-style TI4 draft with pick pools per player
    ti4_list_factionsList all TI4 factions with colors, flags, and expansion info
    ti4_draw_objectivesDraw random public objectives for TI4
    ti4_draw_agendasDraw random agenda cards for TI4 political phase
    nukes_setup_generatorGenerate random territory/resource setup for a Nukes game
    game_nukes_combatResolve a Nukes combat encounter between units
    colony_dice_oddsCalculate settlement dice probability for Colony/Catan-style resource numbers
    game_deck_createCreate, shuffle, and optionally draw/deal from a card deck
    game_deck_list_typesList all available deck types with metadata
    game_deck_dealShuffle and deal a custom deck of arbitrary named cards
    game_score_trackerTrack scores for players in any game
    talisman_draw_charactersDraw random characters from the Talisman 4e (revised) base set for a character lottery
    talisman_draw_encounterDraw a random encounter for a Talisman ring (outer, middle, inner, crown)
    jam_statusGet the current Mod Jam status (active jam, deadline, submissions)
    jam_timerGet time remaining in the current Mod Jam
    jam_voteGet voting status for the current Mod Jam
    dice_rollRoll dice using standard notation (e.g. 2d6+3, 4d8, d20). Supports comma-separated pools and keep-high/low (4d6kh3).
    coin_flipFlip one or more coins, or pick from a list of choices
    team_splitRandomly divide players into teams
    random_player_orderRandomise turn order for a list of players
    timer_suggestSuggest time controls for a game based on player count and complexity
    game_jam_themeGenerate a random game jam theme combining mechanics and themes
    dice_oddsCalculate probability of meeting a target with a dice expression. Supports keep-high/low (4d6kh3).