Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,523Letters: 13Defects: 1,322counted 3 min ago
teppi

Server definition

Hash
sha256:ba4e3e8d0c8b2d978e135767fb5f180a0723d45c69c4d4fc76594fe56de0a66a
What it is
What a remote MCP server returned when asked what it offers: 89 tools

The blob, as servednamed by its sha256

{ "instructions": null, "tools": [ { "description": "Get details of a specific board layout by ID", "inputSchema": { "properties": { "board": { "description": "Board ID or name", "type": "string" } }, "required": [ "board" ], "type": "object" }, "name": "board_gallery_get", "outputSchema": null }, { "description": "Search the board gallery (335 rendered board layouts across 34 game families)", "inputSchema": { "properties": { "limit": { "description": "Max results (default 10)", "type": "number" }, "query": { "description": "Search term (e.g. \"8x8\", \"hex\", \"shogi\")", "type": "string" } }, "type": "object" }, "name": "board_gallery_search", "outputSchema": null }, { "description": "Get statistics about the board gallery (total boards, families, topologies)", "inputSchema": { "properties": {}, "type": "object" }, "name": "board_gallery_stats", "outputSchema": null }, { "description": "[DEPRECATED — use play_suggest_move] Analyse a chess position. Removal: v1.0.0.", "inputSchema": { "properties": { "depth": { "type": "number" }, "variant": { "type": "string" } }, "type": "object" }, "name": "chess_analyze_position", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "difficulty": { "description": "Puzzle difficulty by rating: easy under 1200, medium 1200-1799, hard 1800 and above", "enum": [ "easy", "medium", "hard" ], "type": "string" }, "theme": { "description": "Puzzle theme (fork, pin, skewer, mateIn2, etc). Not every variant puzzle carries themes.", "type": "string" }, "variant": { "description": "Chess variant play slug (e.g. almost-chess, benedict, fischer-random, king-of-the-hill, standard); a manifest key such as chess960 is also accepted. Returns only puzzles for this variant.", "type": "string" } }, "type": "object" }, "name": "chess_generate_puzzle", "outputSchema": null }, { "description": "[DEPRECATED — use play_create_game + play_get_moves] Get legal moves for a chess position. Removal: v1.0.0.", "inputSchema": { "properties": { "variant": { "type": "string" } }, "type": "object" }, "name": "chess_get_legal_moves", "outputSchema": null }, { "description": "[REMOVED — engine#98] Opening book resolution is broken in Worker context. No replacement.", "inputSchema": { "properties": { "variant": { "type": "string" } }, "type": "object" }, "name": "chess_get_opening_book", "outputSchema": null }, { "description": "[DEPRECATED — use play_check_status] Get chess game status. Removal: v1.0.0.", "inputSchema": { "properties": { "variant": { "type": "string" } }, "type": "object" }, "name": "chess_get_status", "outputSchema": null }, { "description": "List available puzzle variants, themes, and per-variant counts from the puzzle pool", "inputSchema": { "properties": {}, "type": "object" }, "name": "chess_list_puzzle_types", "outputSchema": null }, { "description": "[DEPRECATED — use play_list_variants] List chess variants. Removal: v1.0.0.", "inputSchema": { "properties": { "group": { "type": "string" } }, "type": "object" }, "name": "chess_list_variants", "outputSchema": null }, { "description": "[DEPRECATED — use play_apply_move] Apply a move to a chess game. Removal: v1.0.0.", "inputSchema": { "properties": { "move": { "type": "object" }, "variant": { "type": "string" } }, "required": [ "move" ], "type": "object" }, "name": "chess_make_move", "outputSchema": null }, { "description": "[DEPRECATED — use play_make_moves] Apply a sequence of chess moves. Removal: v1.0.0.", "inputSchema": { "properties": { "moves": { "items": { "type": "object" }, "type": "array" }, "variant": { "type": "string" } }, "required": [ "moves" ], "type": "object" }, "name": "chess_make_moves", "outputSchema": null }, { "description": "[DEPRECATED — use play_render_board] Render a chess position as SVG. Removal: v1.0.0.", "inputSchema": { "properties": { "fen": { "description": "FEN position string", "type": "string" }, "highlights": { "description": "Squares to highlight (e.g. [\"e2\",\"e4\"])", "items": { "type": "string" }, "type": "array" }, "variant": { "type": "string" } }, "type": "object" }, "name": "chess_render_svg", "outputSchema": null }, { "description": "[DEPRECATED — use play_validate_move] Check if a chess move is legal. Removal: v1.0.0.", "inputSchema": { "properties": { "move": { "type": "object" }, "variant": { "type": "string" } }, "required": [ "move" ], "type": "object" }, "name": "chess_validate_move", "outputSchema": null }, { "description": "Flip one or more coins, or pick from a list of choices", "inputSchema": { "properties": { "choices": { "description": "Comma-separated options to pick from (overrides coin flip)", "type": "string" }, "count": { "description": "Number of coins (default 1)", "type": "number" } }, "type": "object" }, "name": "coin_flip", "outputSchema": null }, { "description": "Calculate settlement dice probability for Colony/Catan-style resource numbers", "inputSchema": { "properties": { "numbers": { "description": "Settlement numbers, comma-separated (e.g. \"5,6,8,9\")", "type": "string" } }, "required": [ "numbers" ], "type": "object" }, "name": "colony_dice_odds", "outputSchema": null }, { "description": "Calculate probability of meeting a target with a dice expression. Supports keep-high/low (4d6kh3).", "inputSchema": { "properties": { "comparison": { "description": "Comparison (default >=)", "enum": [ ">=", ">", "<=", "<", "=" ], "type": "string" }, "expression": { "description": "Dice expression (e.g. 2d6, 4d6kh3)", "type": "string" }, "target": { "description": "Target number to meet or exceed", "type": "number" } }, "required": [ "expression", "target" ], "type": "object" }, "name": "dice_odds", "outputSchema": null }, { "description": "Roll dice using standard notation (e.g. 2d6+3, 4d8, d20). Supports comma-separated pools and keep-high/low (4d6kh3).", "inputSchema": { "properties": { "count": { "description": "Number of times to roll (default 1)", "type": "number" }, "expression": { "description": "Alias for notation", "type": "string" }, "notation": { "description": "Dice notation (e.g. 2d6+3, 4d6kh3, 3d8,1d12+2)", "type": "string" } }, "type": "object" }, "name": "dice_roll", "outputSchema": null }, { "description": "Create, shuffle, and optionally draw/deal from a card deck", "inputSchema": { "properties": { "draw": { "description": "Number of cards to draw", "type": "number" }, "hands": { "description": "Deal into N hands", "type": "number" }, "per_hand": { "description": "Cards per hand (default: 5)", "type": "number" }, "type": { "description": "Deck type (default: standard-52)", "enum": [ "standard-52", "bavarian-32", "hanafuda-48", "mahjong-136", "dominoes-28", "standard-dice" ], "type": "string" } }, "type": "object" }, "name": "game_deck_create", "outputSchema": null }, { "description": "Shuffle and deal a custom deck of arbitrary named cards", "inputSchema": { "properties": { "cards": { "description": "Cards in the deck (name + optional quantity)", "items": { "properties": { "name": { "type": "string" }, "quantity": { "default": 1, "type": "number" } }, "required": [ "name" ], "type": "object" }, "type": "array" }, "draw": { "description": "Draw N cards from the top instead of dealing hands", "type": "number" }, "hands": { "description": "Deal into N hands (default: 1 = draw pile only)", "type": "number" }, "per_hand": { "description": "Cards per hand (default: 5)", "type": "number" } }, "required": [ "cards" ], "type": "object" }, "name": "game_deck_deal", "outputSchema": null }, { "description": "List all available deck types with metadata", "inputSchema": { "properties": {}, "type": "object" }, "name": "game_deck_list_types", "outputSchema": null }, { "description": "Generate a random game jam theme combining mechanics and themes", "inputSchema": { "properties": { "count": { "description": "Number of themes to generate (default 3)", "type": "number" } }, "type": "object" }, "name": "game_jam_theme", "outputSchema": null }, { "description": "Resolve a Nukes combat encounter between units", "inputSchema": { "properties": { "attacker": { "description": "Attacking unit type", "type": "string" }, "defender": { "description": "Defending unit type", "type": "string" }, "terrain": { "description": "Terrain type (plains, forest, mountain, urban)", "type": "string" } }, "required": [ "attacker", "defender" ], "type": "object" }, "name": "game_nukes_combat", "outputSchema": null }, { "description": "Track scores for players in any game", "inputSchema": { "properties": { "game": { "description": "Game name", "type": "string" }, "players": { "description": "Player names", "items": { "type": "string" }, "type": "array" }, "scores": { "description": "Scores (default: all 0)", "items": { "type": "number" }, "type": "array" } }, "required": [ "players" ], "type": "object" }, "name": "game_score_tracker", "outputSchema": null }, { "description": "Compute field of view from a hex position", "inputSchema": { "properties": { "game": { "description": "Game context for obstacle lookup", "type": "string" }, "q": { "description": "Origin Q coordinate", "type": "number" }, "r": { "description": "Origin R coordinate", "type": "number" }, "range": { "description": "Vision range in hexes", "type": "number" }, "seed": { "description": "Map seed", "type": "string" } }, "required": [ "q", "r", "range" ], "type": "object" }, "name": "hex_compute_fov", "outputSchema": null }, { "description": "Generate a hex map and export as SVG", "inputSchema": { "properties": { "game": { "description": "Game type", "type": "string" }, "hexSize": { "description": "Hex size in pixels (default: 30)", "type": "number" }, "players": { "description": "Number of players", "type": "number" }, "seed": { "description": "Random seed", "type": "string" }, "size": { "description": "Map size", "type": "number" }, "style": { "description": "Visual style", "type": "string" } }, "required": [ "game" ], "type": "object" }, "name": "hex_export_svg", "outputSchema": null }, { "description": "Generate a hex map for a specific game and player count", "inputSchema": { "properties": { "game": { "description": "Game type (nukes, colony, catan, age-of-steam, eclipse, twilight-imperium)", "type": "string" }, "players": { "description": "Number of players (default: 2)", "type": "number" }, "seed": { "description": "Random seed for reproducibility", "type": "string" }, "size": { "description": "Map size (default: game default)", "type": "number" } }, "required": [ "game" ], "type": "object" }, "name": "hex_generate_map", "outputSchema": null }, { "description": "Get info about a specific hex coordinate (terrain, neighbours, distance)", "inputSchema": { "properties": { "game": { "description": "Game context for terrain lookup", "type": "string" }, "q": { "description": "Hex Q coordinate (column)", "type": "number" }, "r": { "description": "Hex R coordinate (row)", "type": "number" }, "seed": { "description": "Map seed (to look up terrain from a generated map)", "type": "string" } }, "required": [ "q", "r" ], "type": "object" }, "name": "hex_get_info", "outputSchema": null }, { "description": "List all available hex map game types with configuration options", "inputSchema": { "properties": {}, "type": "object" }, "name": "hex_list_games", "outputSchema": null }, { "description": "Find shortest path between two hex coordinates", "inputSchema": { "properties": { "endQ": { "description": "End Q", "type": "number" }, "endR": { "description": "End R", "type": "number" }, "game": { "description": "Game context for movement costs", "type": "string" }, "seed": { "description": "Map seed", "type": "string" }, "startQ": { "description": "Start Q", "type": "number" }, "startR": { "description": "Start R", "type": "number" } }, "required": [ "startQ", "startR", "endQ", "endR" ], "type": "object" }, "name": "hex_pathfind", "outputSchema": null }, { "description": "Get the current Mod Jam status (active jam, deadline, submissions)", "inputSchema": { "properties": {}, "type": "object" }, "name": "jam_status", "outputSchema": null }, { "description": "Get time remaining in the current Mod Jam", "inputSchema": { "properties": {}, "type": "object" }, "name": "jam_timer", "outputSchema": null }, { "description": "Get voting status for the current Mod Jam", "inputSchema": { "properties": {}, "type": "object" }, "name": "jam_vote", "outputSchema": null }, { "description": "Generate random territory/resource setup for a Nukes game", "inputSchema": { "properties": { "players": { "description": "Number of players (2-6, default: 2)", "type": "number" } }, "type": "object" }, "name": "nukes_setup_generator", "outputSchema": null }, { "description": "Ask the oracle a yes/no question with likelihood modifier", "inputSchema": { "properties": { "likelihood": { "description": "How likely is yes? (default: even)", "enum": [ "certain", "likely", "even", "unlikely", "impossible" ], "type": "string" }, "question": { "description": "Yes/no question", "type": "string" } }, "required": [ "question" ], "type": "object" }, "name": "oracle_ask", "outputSchema": null }, { "description": "Generate a tabletop RPG encounter with CR-appropriate monsters, terrain, and loot (D&D 5e or Pathfinder 1e)", "inputSchema": { "properties": { "difficulty": { "description": "Encounter difficulty (default: medium)", "enum": [ "easy", "medium", "hard", "deadly" ], "type": "string" }, "monster_type": { "description": "Filter by type (undead, dragon, beast, etc)", "type": "string" }, "party_level": { "description": "Average party level 1-20 (default: 5)", "type": "number" }, "party_size": { "description": "Number of players 1-10 (default: 4)", "type": "number" }, "system": { "description": "Game system (default: dnd-5e)", "enum": [ "dnd-5e", "pathfinder-1e" ], "type": "string" }, "terrain": { "description": "Terrain type (omit for random)", "type": "string" } }, "type": "object" }, "name": "oracle_encounter", "outputSchema": null }, { "description": "Resolve oracle cross-references. Given a result like \"Action + Theme\", follows references and returns expanded results", "inputSchema": { "properties": { "game": { "description": "Game system (default: starforged)", "type": "string" }, "result": { "description": "Oracle result text to interpret", "type": "string" }, "source_table": { "description": "Table ID the result came from", "type": "string" } }, "required": [ "result" ], "type": "object" }, "name": "oracle_interpret", "outputSchema": null }, { "description": "List all supported RPG systems with oracle tables and entity data availability", "inputSchema": { "properties": {}, "type": "object" }, "name": "oracle_list_games", "outputSchema": null }, { "description": "List all predefined scene recipes — curated multi-table compositions that produce coherent narrative prompts", "inputSchema": { "properties": { "game": { "description": "Filter by game system (omit for all)", "type": "string" } }, "type": "object" }, "name": "oracle_list_recipes", "outputSchema": null }, { "description": "List available oracle tables for a system", "inputSchema": { "properties": { "system": { "description": "RPG system slug", "type": "string" } }, "required": [ "system" ], "type": "object" }, "name": "oracle_list_tables", "outputSchema": null }, { "description": "Roll on a random oracle table (Ironsworn, Starforged, Maze Rats, etc)", "inputSchema": { "properties": { "system": { "description": "RPG system slug (ironsworn, starforged, maze-rats, cairn, knave, fate-core)", "type": "string" }, "table": { "description": "Specific table name (omit for random)", "type": "string" } }, "required": [ "system" ], "type": "object" }, "name": "oracle_roll", "outputSchema": null }, { "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, picks random tables.", "inputSchema": { "properties": { "recipe": { "description": "Recipe ID (from oracle_list_recipes) — rolls each table in the recipe", "type": "string" }, "region": { "description": "Region for Starforged region-aware recipes", "enum": [ "terminus", "outlands", "expanse" ], "type": "string" }, "system": { "description": "RPG system slug (default: ironsworn)", "type": "string" }, "type": { "description": "Scene type for random mode (default: event)", "enum": [ "location", "npc", "event", "combat" ], "type": "string" } }, "type": "object" }, "name": "oracle_scene", "outputSchema": null }, { "description": "View the complete contents of an oracle table — all entries with roll ranges", "inputSchema": { "properties": { "game": { "description": "Game system (default: starforged)", "type": "string" }, "table": { "description": "Table ID to view", "type": "string" } }, "required": [ "table" ], "type": "object" }, "name": "oracle_table_view", "outputSchema": null }, { "description": "Get full details and piece list for a specific set", "inputSchema": { "properties": { "set": { "description": "Set name or ID", "type": "string" } }, "required": [ "set" ], "type": "object" }, "name": "piece_gallery_get_set", "outputSchema": null }, { "description": "Search the piece set gallery by name, style, or game type", "inputSchema": { "properties": { "family": { "description": "Filter by game family (chess, shogi, xiangqi, draughts, go, etc)", "type": "string" }, "limit": { "description": "Max results (default 10)", "type": "number" }, "query": { "description": "Search term (e.g. \"staunton\", \"pixel\", \"shogi\")", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "piece_gallery_search", "outputSchema": null }, { "description": "Get statistics about the piece gallery (total sets, styles, authors, game families)", "inputSchema": { "properties": {}, "type": "object" }, "name": "piece_gallery_stats", "outputSchema": null }, { "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 uses {coord} or {action:\"pass\"}).", "inputSchema": { "properties": { "move": { "description": "Move object from play_get_moves (e.g. {from:\"e2\",to:\"e4\"} for chess, {coord:40} for go, {action:\"pass\"})", "type": "object" }, "state": { "description": "Game state object from play_create_game or a previous play_apply_move", "type": "object" } }, "required": [ "state", "move" ], "type": "object" }, "name": "play_apply_move", "outputSchema": null }, { "description": "Check the current game status: whose turn it is, whether the game is over, and who won.", "inputSchema": { "properties": { "state": { "description": "Game state object from play_create_game or play_apply_move", "type": "object" } }, "required": [ "state" ], "type": "object" }, "name": "play_check_status", "outputSchema": null }, { "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+drops\".", "inputSchema": { "properties": { "family": { "description": "Game family name (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)", "type": "string" }, "rngSeed": { "description": "Optional RNG seed for deterministic games", "type": "number" }, "variant": { "description": "Variant slug, optionally with flags (e.g. \"grand\", \"grand+random\", \"standard+drops\")", "type": "string" } }, "required": [ "family" ], "type": "object" }, "name": "play_create_game", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "state": { "description": "Game state object from play_create_game or play_apply_move", "type": "object" } }, "required": [ "state" ], "type": "object" }, "name": "play_export_fen", "outputSchema": null }, { "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 game.", "inputSchema": { "properties": { "family": { "description": "Game 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)", "type": "string" }, "variant": { "description": "Variant slug (default: the family's default game)", "type": "string" } }, "required": [ "family" ], "type": "object" }, "name": "play_get_definition", "outputSchema": null }, { "description": "Get all legal moves for the current position. Requires state from play_create_game or play_apply_move.", "inputSchema": { "properties": { "state": { "description": "Game state object returned by play_create_game or play_apply_move", "type": "object" } }, "required": [ "state" ], "type": "object" }, "name": "play_get_moves", "outputSchema": null }, { "description": "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)", "inputSchema": { "properties": {}, "type": "object" }, "name": "play_list_families", "outputSchema": null }, { "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\".", "inputSchema": { "properties": { "family": { "description": "Game 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)", "type": "string" } }, "required": [ "family" ], "type": "object" }, "name": "play_list_variants", "outputSchema": null }, { "description": "Create a game from a FEN-style setup string, as returned by play_export_fen. Pass the same variant the position was exported from.", "inputSchema": { "properties": { "family": { "description": "Game 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)", "type": "string" }, "fen": { "description": "Position string in FEN-style notation for the family", "type": "string" }, "variant": { "description": "Optional variant slug (default: the family's default game)", "type": "string" } }, "required": [ "family", "fen" ], "type": "object" }, "name": "play_load_fen", "outputSchema": null }, { "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.", "inputSchema": { "properties": { "moves": { "description": "Array of move objects in the format returned by play_get_moves", "items": { "type": "object" }, "type": "array" }, "state": { "description": "Game state object from play_create_game or play_apply_move", "type": "object" } }, "required": [ "state", "moves" ], "type": "object" }, "name": "play_make_moves", "outputSchema": null }, { "description": "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).", "inputSchema": { "properties": { "highlights": { "description": "Optional cells to highlight (e.g. [{key: 52, color: \"#ff0\"}])", "items": { "properties": { "color": { "type": "string" }, "key": { "type": "integer" } }, "type": "object" }, "type": "array" }, "size": { "description": "Board width in pixels for PNG output (default: 480, max: 2048)", "type": "integer" }, "state": { "description": "Game state object from play_create_game or play_apply_move", "type": "object" } }, "required": [ "state" ], "type": "object" }, "name": "play_render_board", "outputSchema": null }, { "description": "Use AI to analyse the position and suggest the best move. Supports 5 difficulty levels across all 30 playable families.", "inputSchema": { "properties": { "difficulty": { "description": "AI difficulty level (default: medium)", "enum": [ "beginner", "easy", "medium", "hard", "expert" ], "type": "string" }, "state": { "description": "Game state object from play_create_game or play_apply_move", "type": "object" } }, "required": [ "state" ], "type": "object" }, "name": "play_suggest_move", "outputSchema": null }, { "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.", "inputSchema": { "properties": { "move": { "description": "Move object to validate (same format as play_get_moves output)", "type": "object" }, "state": { "description": "Game state object from play_create_game or play_apply_move", "type": "object" } }, "required": [ "state", "move" ], "type": "object" }, "name": "play_validate_move", "outputSchema": null }, { "description": "Randomise turn order for a list of players", "inputSchema": { "properties": { "players": { "description": "Player names", "items": { "type": "string" }, "type": "array" } }, "required": [ "players" ], "type": "object" }, "name": "random_player_order", "outputSchema": null }, { "description": "Browse entities by category with pagination", "inputSchema": { "properties": { "category": { "description": "Category (spell, monster, class, item, feat, etc)", "type": "string" }, "game": { "description": "Alias for system", "type": "string" }, "page": { "description": "Page number (default 1)", "type": "number" }, "pageSize": { "description": "Items per page (default 20)", "type": "number" }, "system": { "description": "System slug", "type": "string" } }, "required": [ "system", "category" ], "type": "object" }, "name": "rpg_browse_category", "outputSchema": null }, { "description": "Generate a random character for an RPG system (D&D 5e, Pathfinder, Ironsworn, Cairn, Knave, etc)", "inputSchema": { "properties": { "class": { "description": "Class preference (omit for random)", "type": "string" }, "level": { "description": "Character level (default: 1)", "type": "number" }, "system": { "description": "RPG system (dnd-5e, pathfinder-1e, ironsworn, starforged, cairn, knave, maze-rats, dungeon-world)", "type": "string" } }, "required": [ "system" ], "type": "object" }, "name": "rpg_chargen", "outputSchema": null }, { "description": "Get full details of a specific RPG entity by name", "inputSchema": { "properties": { "category": { "description": "Category filter (spells, monsters, classes, etc)", "type": "string" }, "game": { "description": "Alias for system", "type": "string" }, "name": { "description": "Entity name", "type": "string" }, "system": { "description": "System slug", "type": "string" } }, "required": [ "name" ], "type": "object" }, "name": "rpg_get_entity", "outputSchema": null }, { "description": "List entity categories for an RPG system (spells, monsters, classes, equipment, etc)", "inputSchema": { "properties": { "game": { "description": "Game system slug (omit for all systems)", "type": "string" }, "system": { "description": "Alias for game", "type": "string" } }, "type": "object" }, "name": "rpg_list_categories", "outputSchema": null }, { "description": "Generate random loot/treasure for a system and tier", "inputSchema": { "properties": { "count": { "description": "Number of items (default 3)", "type": "number" }, "system": { "description": "System slug (default: dnd-5e)", "type": "string" }, "tier": { "description": "Loot tier (default: minor)", "enum": [ "minor", "major", "legendary" ], "type": "string" } }, "type": "object" }, "name": "rpg_loot", "outputSchema": null }, { "description": "Get random entities from an RPG system for inspiration or encounter prep", "inputSchema": { "properties": { "category": { "description": "Category to draw from (omit for any)", "type": "string" }, "count": { "description": "Number of random picks 1-10 (default: 1)", "type": "number" }, "game": { "description": "Game system slug", "type": "string" }, "system": { "description": "Alias for game", "type": "string" } }, "required": [ "game" ], "type": "object" }, "name": "rpg_random", "outputSchema": null }, { "description": "Generate a random encounter for a system and difficulty level", "inputSchema": { "properties": { "difficulty": { "description": "Encounter difficulty", "enum": [ "easy", "medium", "hard", "deadly" ], "type": "string" }, "system": { "description": "System slug (default: dnd-5e)", "type": "string" }, "type": { "description": "Monster type filter (beast, undead, fiend, dragon, etc)", "type": "string" } }, "type": "object" }, "name": "rpg_random_encounter", "outputSchema": null }, { "description": "Search RPG entities (spells, monsters, classes, items) across all systems", "inputSchema": { "properties": { "category": { "description": "Entity category (spell, monster, class, item)", "type": "string" }, "game": { "description": "Alias for system", "type": "string" }, "limit": { "description": "Max results (default 10)", "type": "number" }, "query": { "description": "Search term", "type": "string" }, "system": { "description": "Limit to system (dnd-5e, pathfinder-1e, etc)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "rpg_search_entities", "outputSchema": null }, { "description": "Get board diagram SVG URL for a game variant. Returns the diagram path, topology, and rendering metadata.", "inputSchema": { "properties": { "game": { "description": "Game family slug (e.g. chess, go, agon)", "type": "string" }, "variant": { "description": "Variant slug (default: standard)", "type": "string" } }, "required": [ "game" ], "type": "object" }, "name": "rules_get_diagram", "outputSchema": null }, { "description": "Get full rulebook content for a specific game (markdown). For metadata only, use rules_get_game_meta instead.", "inputSchema": { "properties": { "game": { "description": "Game slug (e.g. chess, dnd-5e, catan)", "type": "string" } }, "required": [ "game" ], "type": "object" }, "name": "rules_get_game", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": { "game": { "description": "Game slug (e.g. chess, backgammon, cairn)", "type": "string" } }, "required": [ "game" ], "type": "object" }, "name": "rules_get_game_meta", "outputSchema": null }, { "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.", "inputSchema": { "properties": { "game": { "description": "Game slug (e.g. cairn, dnd-5e)", "type": "string" }, "page": { "description": "Page slug (e.g. character-creation, combat-and-difficulty)", "type": "string" }, "section": { "description": "Section name (e.g. rules, classes, spells). Default: rules", "type": "string" } }, "required": [ "game", "page" ], "type": "object" }, "name": "rules_get_page", "outputSchema": null }, { "description": "Get rules for a specific game variant", "inputSchema": { "properties": { "game": { "description": "Game slug", "type": "string" }, "variant": { "description": "Variant slug", "type": "string" } }, "required": [ "game", "variant" ], "type": "object" }, "name": "rules_get_variant", "outputSchema": null }, { "description": "List all variants for a game with structured metadata (players, board, playable status, topology, engine config). Much richer than parsing the rulebook.", "inputSchema": { "properties": { "game": { "description": "Game slug (e.g. chess, backgammon, draughts)", "type": "string" }, "playable": { "description": "Filter to only engine-playable variants", "type": "boolean" }, "topology": { "description": "Filter by board topology (grid, hex, track, graph, tableau)", "type": "string" } }, "required": [ "game" ], "type": "object" }, "name": "rules_get_variant_list", "outputSchema": null }, { "description": "List all available game rulebooks with metadata (players, duration, complexity, mechanics). Filterable by type, complexity, and mechanics.", "inputSchema": { "properties": { "category": { "description": "Filter by type (standalone, hub, classic, rpg, component, platform, mod, game)", "type": "string" }, "complexity": { "description": "Filter by complexity level", "enum": [ "simple", "moderate", "complex" ], "type": "string" }, "mechanic": { "description": "Filter by mechanic (e.g. dice, capture, hex, oracle, narrative)", "type": "string" }, "status": { "description": "Filter by status (default: all)", "enum": [ "live", "alpha", "playtest" ], "type": "string" } }, "type": "object" }, "name": "rules_list_games", "outputSchema": null }, { "description": "Get a random game suggestion from the library", "inputSchema": { "properties": { "maxDuration": { "description": "Maximum game duration in minutes", "type": "number" }, "players": { "description": "Number of players available", "type": "number" } }, "type": "object" }, "name": "rules_random", "outputSchema": null }, { "description": "Full-text search across all published rulebooks. Returns section-typed results with deep-link anchors.", "inputSchema": { "properties": { "game": { "description": "Limit to specific game slug", "type": "string" }, "limit": { "description": "Max results (default 10)", "type": "number" }, "query": { "description": "Search query", "type": "string" }, "sectionType": { "description": "Filter by section type (general, board, pieces, setup, movement, capture, winning, special, variants)", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "rules_search", "outputSchema": null }, { "description": "Draw random characters from the Talisman 4e (revised) base set for a character lottery", "inputSchema": { "properties": { "count": { "description": "Number of characters to draw (2-6, default: 4)", "type": "number" } }, "type": "object" }, "name": "talisman_draw_characters", "outputSchema": null }, { "description": "Draw a random encounter for a Talisman ring (outer, middle, inner, crown)", "inputSchema": { "properties": { "ring": { "description": "Ring to draw from (default: outer)", "enum": [ "outer", "middle", "inner", "crown" ], "type": "string" } }, "type": "object" }, "name": "talisman_draw_encounter", "outputSchema": null }, { "description": "Randomly divide players into teams", "inputSchema": { "properties": { "count": { "description": "Number of teams (default 2)", "type": "number" }, "members": { "description": "Comma-separated names (alternative to array)", "type": "string" }, "players": { "description": "Player names", "items": { "type": "string" }, "type": "array" }, "teams": { "description": "Alias for count", "type": "number" } }, "required": [ "players" ], "type": "object" }, "name": "team_split", "outputSchema": null }, { "description": "Milty-style TI4 draft with pick pools per player", "inputSchema": { "properties": { "choices": { "description": "Factions per player to choose from (default: 3)", "type": "number" }, "expansions": { "description": "Expansion filter (e.g. [\"base\",\"pok\"]). Default: all", "items": { "type": "string" }, "type": "array" }, "players": { "description": "Number of players (3-8, default: 6)", "type": "number" } }, "type": "object" }, "name": "ti4_draft_factions", "outputSchema": null }, { "description": "Draw random agenda cards for TI4 political phase", "inputSchema": { "properties": { "count": { "description": "Number to draw (default: 2)", "type": "number" }, "expansions": { "description": "Expansion filter", "items": { "type": "string" }, "type": "array" }, "type": { "description": "Filter by type", "enum": [ "law", "directive" ], "type": "string" } }, "type": "object" }, "name": "ti4_draw_agendas", "outputSchema": null }, { "description": "Draw random public objectives for TI4", "inputSchema": { "properties": { "count": { "description": "Number to draw (default: 5)", "type": "number" }, "expansions": { "description": "Expansion filter", "items": { "type": "string" }, "type": "array" }, "stage": { "description": "Stage 1 or 2 (default: both)", "enum": [ 1, 2 ], "type": "number" } }, "type": "object" }, "name": "ti4_draw_objectives", "outputSchema": null }, { "description": "List all TI4 factions with colors, flags, and expansion info", "inputSchema": { "properties": { "expansions": { "description": "Filter by expansion (e.g. [\"base\",\"pok\"]). Default: all", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "name": "ti4_list_factions", "outputSchema": null }, { "description": "Generate random faction assignments for Twilight Imperium 4th Edition", "inputSchema": { "properties": { "expansions": { "description": "Expansion filter (e.g. [\"base\",\"pok\"]). Default: all", "items": { "type": "string" }, "type": "array" }, "players": { "description": "Number of players (3-8)", "type": "number" } }, "required": [ "players" ], "type": "object" }, "name": "ti4_random_factions", "outputSchema": null }, { "description": "Get details of a specific tile set with all tile types", "inputSchema": { "properties": { "set": { "description": "Tile set ID or name", "type": "string" } }, "required": [ "set" ], "type": "object" }, "name": "tile_gallery_get", "outputSchema": null }, { "description": "Search hex tile sets by name, game, or terrain type", "inputSchema": { "properties": { "query": { "description": "Search term (omit to list all)", "type": "string" } }, "type": "object" }, "name": "tile_gallery_search", "outputSchema": null }, { "description": "Get statistics about available tile sets", "inputSchema": { "properties": {}, "type": "object" }, "name": "tile_gallery_stats", "outputSchema": null }, { "description": "Suggest time controls for a game based on player count and complexity", "inputSchema": { "properties": { "game": { "description": "Game name", "type": "string" }, "players": { "description": "Number of players", "type": "number" } }, "required": [ "game" ], "type": "object" }, "name": "timer_suggest", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:ba4e3e8d0c8b2d978e135767fb5f180a0723d45c69c4d4fc76594fe56de0a66a | sha256sum