Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

MythxEngine

NPM · @MYTHXENGINE/MCP-SERVER · 2 COMPONENTS · SCANNED SEP 20

Tabletop RPG engine over MCP: dice, combat, stress, clocks, world generation, four bundled worlds

0 this week 87 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 97 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to protoLabsAI/mythx-mcp). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 31 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability47
  • 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Fail
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 12305 tokens (~75/item across 164 items; 158 tools + 6 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
  • Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 99% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 10 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "remove_condition" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 159 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the MythxEngine MCP server?

MythxEngine runs locally as an npm package, launched with npx -y @mythxengine/mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @mythxengine/mcp-server

# add to Claude Code
claude mcp add protolabsai-mythxengine -- npx -y @mythxengine/mcp-server
// .cursor/mcp.json
{
  "mcpServers": {
    "protolabsai-mythxengine": {
      "command": "npx",
      "args": [
        "-y",
        "@mythxengine/mcp-server"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "protolabsai-mythxengine": {
      "command": "npx",
      "args": [
        "-y",
        "@mythxengine/mcp-server"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add protolabsai-mythxengine -- npx -y @mythxengine/mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "protolabsai-mythxengine": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@mythxengine/mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add protolabsai-mythxengine --command npx --arg -y --arg @mythxengine/mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  protolabsai-mythxengine:
    command: "npx"
    args: ["-y", "@mythxengine/mcp-server"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "protolabsai-mythxengine": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@mythxengine/mcp-server"
      ]
    }
  }
}
# add to Vellum
assistant mcp add protolabsai-mythxengine -t stdio -c npx -a -y @mythxengine/mcp-server
// mcp.json
{
  "mcpServers": {
    "protolabsai-mythxengine": {
      "command": "npx",
      "args": [
        "-y",
        "@mythxengine/mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 17 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Sept 26 −3
    • Stability: pass → 0.83 functional
  • 15 Sept 26 +1
    • Stability: 0.97 → pass security
  • 13 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 11 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 9 Sept 26 −3
    • Stability: pass → 0.80 functional
  • 8 Sept 26 +1
    • Stability: 0.97 → pass security
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/@mythxengine/mcp-server@0.3.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo protoLabsAI/mythx-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/protoLabsAI/mythx-mcp/.github/workflows/release.yml@refs/tags/v0.3.0
Rekor log index 2148358974
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:76d0217672d7803fdb6639fbbe58ea06794d12571f3cbf4ca78491690cbd6d7554fcae41ea3eb7cd6e8873ffa915ff4bd9d457a393bd78aa1cfb9c608

Background: How many MCP packages publish verified provenance →

Dependencies 97 packages
Packages resolved 97
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 158 exposed · ~12,266 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
generate_monsters ~77

Generate monsters based on the world seed. Returns a prompt for LLM execution.

NameTypeReqDescription
countnumberNumber of monsters to generate
focusOnarraySpecific monster seeds to focus on (by name)
sessionIdstringyesSession ID
threatTiersarrayFilter by threat tiers

No output schema declared.

No examples provided.

generate_narrative ~46

Generate narrative guidance (opening scenes, plot hooks, conflicts) based on the world seed. Returns a prompt for LLM execution.

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

generate_npcs ~72

Generate NPCs based on the world seed. Returns a prompt for LLM execution.

NameTypeReqDescription
countnumberNumber of NPCs to generate (default: from world seed)
focusOnarraySpecific NPC seeds to focus on (by name)
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

generate_rulebook ~45

Generate the core rulebook. Returns cached path if exists, or a prompt for LLM execution if generation is needed.

NameTypeReqDescription
forcebooleanForce regeneration even if cached

No output schema declared.

No examples provided.

generate_situations ~105

Generate situations (nodes) based on the world seed using Alexandrian node-based design. Returns a prompt for LLM execution. Can generate all at once or one at a time using count=1 with focusOn for better parallelism.

NameTypeReqDescription
countnumberNumber of situations to generate (default: from world seed or 5)
focusOnarraySpecific situation seeds to focus on (by name)
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

generate_world_books ~63

Generate book prompts for a world pack. Returns prompts for GM book, player book, bestiary, and campaign setting.

NameTypeReqDescription
booksarrayWhich books to generate (default: all)
packIdstringyesWorld pack ID to generate books for

No output schema declared.

No examples provided.

generate_world_seed ~136

Create the foundation for a new world from a campaign seed prompt. Returns a prompt for LLM execution.

NameTypeReqDescription
campaignSeedstringyesThe creative prompt for world generation (e.g., 'noir detective in a steampunk city')
rulesConfigobjectOptional rules configuration for custom abilities, mechanics, or tests
sessionIdstringyesSession ID
settingsobjectOptional world settings overrides
tierstringWorld size: small (6 archetypes, 4 locations), medium (6 archetypes, 6 locations), large (6 archetypes, 10 locations)

No output schema declared.

No examples provided.

get_active_clocks ~30

List all active situation clocks with their current status.

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_ai_player_context ~43

Get full context for an AI player to make a decision

NameTypeReqDescription
playerIdstringyesAI player ID
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_arc ~52

Get full details for a specific story arc from a world pack. Includes structure, situations, and resolution patterns.

NameTypeReqDescription
arcIdstringyesArc ID to retrieve
packIdstringyesPack ID

No output schema declared.

No examples provided.

get_archetype ~47

Get full details for a specific archetype from a world pack.

NameTypeReqDescription
archetypeIdstringyesArchetype ID to retrieve
packIdstringyesPack ID

No output schema declared.

No examples provided.

get_available_leads ~74

List leads that are currently available for discovery. Filter by location, NPC, or prominence.

NameTypeReqDescription
locationIdstringFilter by location ID
npcIdstringFilter by NPC source ID
prominencestringFilter by prominence level
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_character ~35

Get a character's full details

NameTypeReqDescription
characterIdstringyesCharacter ID
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_combat_state ~26

Get the current combat state

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_condition ~42

Get full details for a specific condition from a world pack.

NameTypeReqDescription
conditionIdstringyesCondition ID to retrieve
packIdstringyesPack ID

No output schema declared.

No examples provided.

get_current_turn ~28

Get the current turn state and active player

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_discovered_leads ~29

List all leads that players have discovered.

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_encounter ~43

Get full details for a specific encounter from a world pack.

NameTypeReqDescription
encounterIdstringyesEncounter ID to retrieve
packIdstringyesPack ID

No output schema declared.

No examples provided.

get_encounter_suggestions ~69

List encounters that fit the current context.

NameTypeReqDescription
limitnumberMax results
locationIdstringFilter by location
moodstringDesired mood
sessionIdstringyesSession ID
situationIdstringFilter by situation

No output schema declared.

No examples provided.

get_faction ~44

Get full details for a specific faction from a world pack.

NameTypeReqDescription
factionIdstringyesFaction ID to retrieve
packIdstringyesPack ID

No output schema declared.

No examples provided.

get_generation_status ~37

Check world generation progress. Shows completed, in-progress, and pending phases with entity counts.

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_gm_guidance ~90

Get context-aware GM advice for common situations: stuck players, action resolution, pacing, tone, or NPC portrayal. Provides principles, suggestions, and relevant tool recommendations based on current session state.

NameTypeReqDescription
contextobjectAdditional context for guidance
sessionIdstringyesSession ID
typestringyesType of guidance: stuck, resolution, pacing, tone, npc

No output schema declared.

No examples provided.

get_investigation_status ~46

Get the current state of an investigation including evidence, hypotheses, and progress.

NameTypeReqDescription
investigationIdstringyesInvestigation ID
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_item ~42

Get full details for a specific item from a world pack.

NameTypeReqDescription
itemIdstringyesItem ID to retrieve
packIdstringyesPack ID

No output schema declared.

No examples provided.

get_location ~42

Get full details for a specific location from a world pack.

NameTypeReqDescription
locationIdstringyesLocation ID to retrieve
packIdstringyesPack ID

No output schema declared.

No examples provided.

get_monster ~43

Get full details for a specific monster from a world pack.

NameTypeReqDescription
monsterIdstringyesMonster ID to retrieve
packIdstringyesPack ID

No output schema declared.

No examples provided.

get_npc ~43

Get full details for a specific NPC from a world pack.

NameTypeReqDescription
npcIdstringyesNPC ID to retrieve
packIdstringyesPack ID

No output schema declared.

No examples provided.

get_npc_disposition ~65

Quick check: How does this NPC feel about the party?

NameTypeReqDescription
forCharacterIdstringGet attitude toward a specific PC (uses per-character tracking if available)
npcIdstringyesNPC ID
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_player ~34

Get a player's full details

NameTypeReqDescription
playerIdstringyesPlayer ID
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_relationship ~41

Get an NPC's current attitude and interaction history with the party.

NameTypeReqDescription
npcIdstringyesNPC ID
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_situation ~53

Get full details for a specific situation from a world pack. Includes leads, clock, complications, and outcomes.

NameTypeReqDescription
packIdstringyesPack ID
situationIdstringyesSituation ID to retrieve

No output schema declared.

No examples provided.

get_stress ~47

Get a character's current stress level, trauma status, and whether they can safely push.

NameTypeReqDescription
characterIdstringyesCharacter ID
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_time ~25

Returns current game time for session

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

get_unrevealed_clues ~77

List clues that haven't been discovered yet. Filter by significance, location, or NPC.

NameTypeReqDescription
locationIdstringFilter by location as suggested source
npcIdstringFilter by NPC as suggested source
sessionIdstringyesSession ID
significancestringFilter by significance

No output schema declared.

No examples provided.

heal_character ~97

Restore HP to a character. Capped at max HP. Use for any HP recovery (rest, spell, potion narration, GM fiat).

NameTypeReqDescription
amountintegeryesAmount of HP to restore. Capped at the character's max HP.
characterIdstringyesCharacter to heal
reasonstringOptional narrative reason (e.g. 'rest', 'spell')
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

import_leads_as_clues ~46

Convert situation leads into portable clues for flexible delivery.

NameTypeReqDescription
sessionIdstringyesSession ID
situationIdstringyesSituation ID to import leads from

No output schema declared.

No examples provided.

initialize_relationship ~91

Start tracking a relationship with an NPC.

NameTypeReqDescription
initialAttitudestringStarting attitude (default: neutral)
knowsarrayWhat the NPC knows about the party
npcIdstringyesNPC ID
npcNamestringyesNPC name for display
sessionIdstringyesSession ID
wantsarrayWhat the NPC wants from the party

No output schema declared.

No examples provided.

list_characters ~26

List all characters in a session

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

list_inventory ~58

List all items in a character's inventory. Shows equipped status, weight, and gold for itemized mode, or simple equipment list for narrative mode.

NameTypeReqDescription
characterIdstringyesCharacter ID
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

list_players ~25

List all players in a session

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

list_relationships ~37

List all tracked NPC relationships.

NameTypeReqDescription
attitudeFilterstringFilter by attitude level
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

list_sessions ~35

List all game sessions. Optionally filter by world pack ID.

NameTypeReqDescription
worldPackIdstringFilter by world pack ID

No output schema declared.

No examples provided.

list_world_packs ~16

List all saved world packs.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

load_session ~33

Load an existing game session by ID. Returns session state summary.

NameTypeReqDescription
sessionIdstringyesSession ID to load

No output schema declared.

No examples provided.

load_skill ~504

Load on-demand skill guidance into your context. Use when the current situation matches a skill's purpose (e.g. about to generate images, entering combat). The skill body is markdown — read it and apply it on this turn. Skill names come from the "Available skills" section of your system prompt. Available skills: - `combat-runner` — Tool-flow playbook for running combat encounters — when combat triggers, the start_combat → roll_initiative → attack → next_turn → end_combat sequence, position/effect calibration, autoTickClockIds, and the diegetic-narration rules for outcomes. Load when the player engages hostile contact, names tactical parameters (position/effect/target), or any combatant rolls into a multi-round encounter. - `companion-intelligence` — How to narrate and orchestrate AI-controlled party members — when to call get_ai_player_context, the four playstyle decision rules (tactical, roleplay, cautious, reckless), and the combat orchestration sequence (start_combat → roll_initiative → per-turn get_ai_player_context → submit_ai_player_action). Load when the active session has AI companions in the party. - `engine-flows` — Tool-flow playbooks for shop, rest, dialogue, and image generation — when each flow triggers, the exact tool sequence, the response-handling table, and the in-chat narration rules. Load when the player initiates buying/selling, requests a rest, an NPC enters a structured conversation, or you're about to render visuals. - `image-generation` — Visual layer guidelines — when to call frame_scene / generate_portrait / generate_item_art, how to write portrait & item descriptions for SDXL, the add_npc → generate_portrait → showDialogue contract for NPCs invented mid-session, and the silent-on-failure rule. Load when about to generate images, introduce an NPC, or reveal a notable item. - `player-interaction` — Structured-fork interaction tools — showDialogue / showShop / requestCombatAction / requestConfirmation. The scope of each (real player decisi…

NameTypeReqDescription
namestringyesThe skill name to load (the identifier from the skills index). Returns the full skill body as markdown for you to apply on this turn.

No output schema declared.

No examples provided.

load_world_pack ~29

Load a saved world pack by ID.

NameTypeReqDescription
packIdstringyesPack ID to load

No output schema declared.

No examples provided.

load_world_summary ~66

Load a compact GM reference for a world pack. Returns a token-efficient summary with entity IDs, names, and key stats. Use get_* tools (get_archetype, get_location, etc.) for full entity details.

NameTypeReqDescription
packIdstringyesPack ID to load

No output schema declared.

No examples provided.

lookup_rule ~166

Look up a rulebook entry by id (e.g. '5.6-trauma') for full mechanical detail, or list entries by tag (e.g. 'stress', 'combat') to find a specific entry. Use when you need engine math the system prompt doesn't cover (roll-under, custom tests, conditions catalog, trauma details, damage formula, world-overrides, etc.) — cheap (~1ms, no LLM call).

NameTypeReqDescription
entryIdstringSpecific entry id, e.g. '5.6-trauma' or '4.1-standard-test'. Returns the full entry.
tagstringTag to list matching entries, e.g. 'stress', 'combat', 'world-overrides'. Returns id+summary list to drill into.

No output schema declared.

No examples provided.

merge_augmentation ~60

Merge newly generated content into an existing world pack.

NameTypeReqDescription
autoLinkbooleanAuto-link content (default: true)
contentobjectyesNew content arrays to merge
packIdstringyesWorld pack ID to merge into

No output schema declared.

No examples provided.

modify_gold ~86

Add or subtract gold from a character's inventory. Use positive amount to add, negative to subtract. Requires itemized inventory mode.

NameTypeReqDescription
amountintegeryesAmount to add (positive) or subtract (negative)
characterIdstringyesCharacter ID
reasonstringReason for the gold change (for logging)
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

Common questions

What is the MythxEngine MCP server?

MythxEngine is an MCP server listed in the public MCP registry as io.github.protoLabsAI/mythxengine. Tabletop RPG engine over MCP: dice, combat, stress, clocks, world generation, four bundled worlds. This page covers its npm package (@mythxengine/mcp-server).

Is the MythxEngine MCP server safe to use?

MythxEngine scores 87 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the MythxEngine MCP server expose?

MythxEngine exposes 158 tools: roll_dice, roll_test, roll_custom_test, get_character, create_character, and 153 more. Their descriptions and schemas cost roughly 12,266 tokens of context every time the server is loaded.

Is the MythxEngine MCP server still maintained?

MythxEngine is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the MythxEngine MCP server under?

MythxEngine declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.