ZBS Index What actually exists in applied AI, with the source next to it

mcp server

Moddable Games Tools

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

Description as published by the maintainer. Source

  • version 1.1.0
  • active

active — Most recent push to the repository was 2026-07-25.

What this server can do

85 functions, named and described by the server itself. Parameter names are shown because they say more about what a function does than its name usually does.

board_gallery_get(board)
Get details of a specific board layout by ID Required: board.
board_gallery_search(limit, query)
Search the board gallery (333 rendered board layouts across 33 game families)
board_gallery_stats
Get statistics about the board gallery (total boards, families, topologies)
chess_analyze_position(depth, variant)
[DEPRECATED — use play_suggest_move] Analyse a chess position. Removal: v1.0.0.
chess_generate_puzzle(theme, difficulty)
Get a random chess puzzle from the pool. Filter by difficulty or theme.
chess_get_legal_moves(variant)
[DEPRECATED — use play_create_game + play_get_moves] Get legal moves for a chess position. Removal: v1.0.0.
chess_get_opening_book(variant)
[REMOVED — engine#98] Opening book resolution is broken in Worker context. No replacement.
chess_get_status(variant)
[DEPRECATED — use play_check_status] Get chess game status. Removal: v1.0.0.
chess_list_puzzle_types
List available puzzle variants and themes from the puzzle pool
chess_list_variants(group)
[DEPRECATED — use play_list_variants] List chess variants. Removal: v1.0.0.
chess_make_move(move, variant)
[DEPRECATED — use play_apply_move] Apply a move to a chess game. Removal: v1.0.0. Required: move.
chess_make_moves(moves, variant)
[DEPRECATED — use play_make_moves] Apply a sequence of chess moves. Removal: v1.0.0. Required: moves.
chess_render_svg(fen, variant, highlights)
[DEPRECATED — use play_render_board] Render a chess position as SVG. Removal: v1.0.0.
chess_validate_move(move, variant)
[DEPRECATED — use play_validate_move] Check if a chess move is legal. Removal: v1.0.0. Required: move.
coin_flip(count, choices)
Flip one or more coins, or pick from a list of choices
colony_dice_odds(numbers)
Calculate settlement dice probability for Colony/Catan-style resource numbers Required: numbers.
dice_odds(target, comparison, expression)
Calculate probability of meeting a target with a dice expression. Supports keep-high/low (4d6kh3). Required: expression, target.
dice_roll(count, notation, expression)
Roll dice using standard notation (e.g. 2d6+3, 4d8, d20). Supports comma-separated pools and keep-high/low (4d6kh3).
game_deck_create(draw, type, hands, per_hand)
Create, shuffle, and optionally draw/deal from a card deck
game_deck_deal(draw, cards, hands, per_hand)
Shuffle and deal a custom deck of arbitrary named cards Required: cards.
game_deck_list_types
List all available deck types with metadata
game_jam_theme(count)
Generate a random game jam theme combining mechanics and themes
game_nukes_combat(terrain, attacker, defender)
Resolve a Nukes combat encounter between units Required: attacker, defender.
game_score_tracker(game, scores, players)
Track scores for players in any game Required: players.
hex_compute_fov(q, r, game, seed, range)
Compute field of view from a hex position Required: q, r, range.
hex_export_svg(game, seed, size, style, hexSize, players)
Generate a hex map and export as SVG Required: game.
hex_generate_map(game, seed, size, players)
Generate a hex map for a specific game and player count Required: game.
hex_get_info(q, r, game, seed)
Get info about a specific hex coordinate (terrain, neighbours, distance) Required: q, r.
hex_list_games
List all available hex map game types with configuration options
hex_pathfind(endQ, endR, game, seed, startQ, startR)
Find shortest path between two hex coordinates Required: startQ, startR, endQ, endR.
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(players)
Generate random territory/resource setup for a Nukes game
oracle_ask(question, likelihood)
Ask the oracle a yes/no question with likelihood modifier Required: question.
oracle_encounter(system, terrain, difficulty, party_size, party_level, monster_type)
Generate a tabletop RPG encounter with CR-appropriate monsters, terrain, and loot (D&D 5e or Pathfinder 1e)
oracle_interpret(game, result, source_table)
Resolve oracle cross-references. Given a result like "Action + Theme", follows references and returns expanded results Required: result.
oracle_list_games
List all supported RPG systems with oracle tables and entity data availability
oracle_list_recipes(game)
List all predefined scene recipes — curated multi-table compositions that produce coherent narrative prompts
oracle_list_tables(system)
List available oracle tables for a system Required: system.
oracle_roll(table, system)
Roll on a random oracle table (Ironsworn, Starforged, Maze Rats, etc) Required: system.
oracle_scene(type, recipe, region, system)
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(game, table)
View the complete contents of an oracle table — all entries with roll ranges Required: table.
piece_gallery_get_set(set)
Get full details and piece list for a specific set Required: set.
piece_gallery_search(limit, query, family)
Search the piece set gallery by name, style, or game type Required: query.
piece_gallery_stats
Get statistics about the piece gallery (total sets, styles, authors, game families)
play_apply_move(move, state)
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"}). Required: state, move.
play_check_status(state)
Check the current game status: whose turn it is, whether the game is over, and who won. Required: state.
play_create_game(family, rngSeed, variant)
Create a new game instance for a given family. Returns initial state to pass to subsequent calls. Required: family.
play_export_fen(state)
Export the current board position as a FEN-style notation string. Works for all 6 families (chess, draughts, go, reversi, shogi, xiangqi). Required: state.
play_get_definition(family, variant)
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. Required: family.
play_get_moves(state)
Get all legal moves for the current position. Requires state from play_create_game or play_apply_move. Required: state.
play_list_families
List all playable game families supported by the engine (chess, draughts, go, reversi, shogi, xiangqi)
play_list_variants(family)
List available variants for a game family. Each variant can be passed to play_create_game. Required: family.
play_load_fen(fen, family, variant)
Create a game state from a FEN-style position string. Works for all 6 families. Required: family, fen.
play_make_moves(moves, state)
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. Required: state, moves.
play_render_board(size, state, highlights)
Render the current board position as SVG for any playable family (chess, draughts, go, reversi, shogi, xiangqi). Required: state.
play_suggest_move(state, difficulty)
Use AI to analyse the position and suggest the best move. Supports 5 difficulty levels across all 6 playable families. Required: state.
play_validate_move(move, state)
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. Required: state, move.
random_player_order(players)
Randomise turn order for a list of players Required: players.
rpg_browse_category(page, system, category, pageSize)
Browse entities by category with pagination Required: system, category.
rpg_chargen(class, level, system)
Generate a random character for an RPG system (D&D 5e, Pathfinder, Ironsworn, Cairn, Knave, etc) Required: system.
rpg_get_entity(name, system)
Get full details of a specific RPG entity by name Required: name.
rpg_list_categories(game)
List entity categories for an RPG system (spells, monsters, classes, equipment, etc)
rpg_loot(tier, count, system)
Generate random loot/treasure for a system and tier
rpg_random(game, count, category)
Get random entities from an RPG system for inspiration or encounter prep Required: game.
rpg_random_encounter(system, difficulty, environment)
Generate a random encounter for a system and difficulty level
rpg_search_entities(limit, query, system, category)
Search RPG entities (spells, monsters, classes, items) across all systems Required: query.
rules_get_game(game)
Get full rulebook content for a specific game Required: game.
rules_get_variant(game, variant)
Get rules for a specific game variant Required: game, variant.
rules_list_games(category)
List all available game rulebooks with metadata (players, duration, complexity)
rules_random(players, maxDuration)
Get a random game suggestion from the library
rules_search(game, limit, query)
Full-text search across all published rulebooks Required: query.
talisman_draw_characters(count)
Draw random characters from the Talisman 4e (revised) base set for a character lottery
talisman_draw_encounter(ring)
Draw a random encounter for a Talisman ring (outer, middle, inner, crown)
team_split(count, teams, members, players)
Randomly divide players into teams Required: players.
ti4_draft_factions(choices, players, expansions)
Milty-style TI4 draft with pick pools per player
ti4_draw_agendas(type, count, expansions)
Draw random agenda cards for TI4 political phase
ti4_draw_objectives(count, stage, expansions)
Draw random public objectives for TI4
ti4_list_factions(expansions)
List all TI4 factions with colors, flags, and expansion info
ti4_random_factions(players, expansions)
Generate random faction assignments for Twilight Imperium 4th Edition Required: players.
tile_gallery_get(set)
Get details of a specific tile set with all tile types Required: set.
tile_gallery_search(query)
Search hex tile sets by name, game, or terrain type
tile_gallery_stats
Get statistics about available tile sets
timer_suggest(game, players)
Suggest time controls for a game based on player count and complexity Required: game.

Last successful function declaration observed on . Source: https://tools.moddable.games/mcp. We list what the server declared; we do not call any of these functions.

Endpoint status observed on . Source: https://tools.moddable.games/mcp.

Signals

These are separate measurements of different things. They are deliberately not combined into one score, because a popularity number that mixes website traffic with saves and stars cannot be checked or acted on.

Signal Value What it measures Window Observed Source
GitHub stars 0 Number of GitHub accounts that bookmarked this repository since it was created. It is a bookmark count, not installs, not active users and not quality. cumulative, all time GitHub
Last commit 2026-07-25 Date of the most recent push to any branch. This is the strongest cheap indicator of whether the project is still maintained. point in time GitHub
Open issues 16 Open issues plus open pull requests, as GitHub counts them together. A high number can mean an active project or an abandoned one. as of fetch GitHub
Latest published version 1.1.0 Latest version string the maintainer published to the registry. as of fetch Model Context Protocol
Registry record last updated 2026-06-10 When the registry record was last updated by its maintainer. point in time Model Context Protocol
First listed in the MCP Registry 2026-06-10 Date this server was first published to the official MCP Registry. Not a usage or quality measure. point in time Model Context Protocol
repository status active The repository exists on GitHub and is not archived. This says nothing about how recently it was worked on. as of fetch GitHub
mcp tools declared 85 tools Number of functions the server itself declared when asked to list them. This is what the server offers an agent, not a measure of how well any of them work. as of probe tools.moddable.games
mcp endpoint status ok The server listed 85 functions when asked. as of probe tools.moddable.games

Where to get it

This record as data

Every field on this page, with its source and observation date, is in the catalog JSON. Fetch the whole kind at once instead of parsing this HTML.

GET /api/v1/entries/mcp_server.json

Sources

  1. Moddable-Games/moddable-website on GitHub — GitHub, observed , trust tier 3.
  2. Official MCP Registry — Model Context Protocol, observed , trust tier 1.
  3. Tools declared by the MCP server at https://tools.moddable.games/mcp — tools.moddable.games, observed , trust tier 4.