Skip to content
Moddable logo

Moddable MCP server

Which servers in the official MCP registry are Moddable's own, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-20

← Back to Moddable

Whose server it is
  • Registry namegames.moddable.tools/moddable-games-toolsverified in the MCP registry

The registry name sits under moddable.games. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-20
  • Stateanswerschecked 2026-10-20
  • Tools89
  • Server calls itselfmoddable-tools
  • Server version0.1.0
  • Protocol version2025-03-26

On 2026-10-20 the server answered initialize and tools/list without a sign-in. First answer in 274 ms.

Measured dailydaily checks: 1, the first on 2026-10-20
  • Answeredmeasuring1 of the 7 daily checks it takes to print a share
  • Median first answer285 ms
  • Space in an agent's context≈ 8,612 tokensthe definitions of all its tools (89), which an agent carries on every turn
  • Tool definitionsB · 82 of 100
  • Typed results0 of 89 toolsdeclared outputSchema: results come typed, read once
  • Parameters without a description: in 9 of 89
  • Not saying whether it only reads or can destroy: 89 of 89

Worth a look

  • Tools that change data, on a server that answers without a sign-in: play_create_game

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The state of vendors' MCP servers: method and numbers →

Tools it offers89 tools · read 2026-10-20
  • 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_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_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 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, backgammon, standard-52, bavarian-32, flower-48, double-six-dominoes, mahjong, standard-dice…

  • 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 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, landlords-game, backgammon, standard-52, bavarian-32, flower-48, double-six-dominoes, mahjong…

  • 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_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 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 (335 rendered board layouts across 34 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

The first 60 of 89, as the server listed them.

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "moddable-games-tools": {
      "type": "http",
      "url": "https://tools.moddable.games/mcp"
    }
  }
}

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.