MythxEngine
NPM · @MYTHXENGINE/MCP-SERVER · 2 COMPONENTS · SCANNED SEP 20
Tabletop RPG engine over MCP: dice, combat, stress, clocks, world generation, four bundled worlds
Available components
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
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
claude mcp add protolabsai-mythxengine -- npx -y @mythxengine/mcp-server
{
"mcpServers": {
"protolabsai-mythxengine": {
"command": "npx",
"args": [
"-y",
"@mythxengine/mcp-server"
]
}
}
} {
"servers": {
"protolabsai-mythxengine": {
"command": "npx",
"args": [
"-y",
"@mythxengine/mcp-server"
]
}
}
} codex mcp add protolabsai-mythxengine -- npx -y @mythxengine/mcp-server
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"protolabsai-mythxengine": {
"type": "local",
"command": [
"npx",
"-y",
"@mythxengine/mcp-server"
],
"enabled": true
}
}
} openclaw mcp add protolabsai-mythxengine --command npx --arg -y --arg @mythxengine/mcp-server
mcp_servers:
protolabsai-mythxengine:
command: "npx"
args: ["-y", "@mythxengine/mcp-server"] {
"McpServers": {
"protolabsai-mythxengine": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@mythxengine/mcp-server"
]
}
}
} assistant mcp add protolabsai-mythxengine -t stdio -c npx -a -y @mythxengine/mcp-server
{
"mcpServers": {
"protolabsai-mythxengine": {
"command": "npx",
"args": [
"-y",
"@mythxengine/mcp-server"
]
}
}
} 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
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 →
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 →
generate_monsters ~77
Generate monsters based on the world seed. Returns a prompt for LLM execution.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | Number of monsters to generate |
| focusOn | array | – | Specific monster seeds to focus on (by name) |
| sessionId | string | yes | Session ID |
| threatTiers | array | – | Filter 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.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
generate_npcs ~72
Generate NPCs based on the world seed. Returns a prompt for LLM execution.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | Number of NPCs to generate (default: from world seed) |
| focusOn | array | – | Specific NPC seeds to focus on (by name) |
| sessionId | string | yes | Session 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.
| Name | Type | Req | Description |
|---|---|---|---|
| force | boolean | – | Force 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.
| Name | Type | Req | Description |
|---|---|---|---|
| count | number | – | Number of situations to generate (default: from world seed or 5) |
| focusOn | array | – | Specific situation seeds to focus on (by name) |
| sessionId | string | yes | Session 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.
| Name | Type | Req | Description |
|---|---|---|---|
| books | array | – | Which books to generate (default: all) |
| packId | string | yes | World 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.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignSeed | string | yes | The creative prompt for world generation (e.g., 'noir detective in a steampunk city') |
| rulesConfig | object | – | Optional rules configuration for custom abilities, mechanics, or tests |
| sessionId | string | yes | Session ID |
| settings | object | – | Optional world settings overrides |
| tier | string | – | World 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.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
get_ai_player_context ~43
Get full context for an AI player to make a decision
| Name | Type | Req | Description |
|---|---|---|---|
| playerId | string | yes | AI player ID |
| sessionId | string | yes | Session 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.
| Name | Type | Req | Description |
|---|---|---|---|
| arcId | string | yes | Arc ID to retrieve |
| packId | string | yes | Pack ID |
No output schema declared.
No examples provided.
get_archetype ~47
Get full details for a specific archetype from a world pack.
| Name | Type | Req | Description |
|---|---|---|---|
| archetypeId | string | yes | Archetype ID to retrieve |
| packId | string | yes | Pack 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.
| Name | Type | Req | Description |
|---|---|---|---|
| locationId | string | – | Filter by location ID |
| npcId | string | – | Filter by NPC source ID |
| prominence | string | – | Filter by prominence level |
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
get_character ~35
Get a character's full details
| Name | Type | Req | Description |
|---|---|---|---|
| characterId | string | yes | Character ID |
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
get_combat_state ~26
Get the current combat state
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
get_condition ~42
Get full details for a specific condition from a world pack.
| Name | Type | Req | Description |
|---|---|---|---|
| conditionId | string | yes | Condition ID to retrieve |
| packId | string | yes | Pack ID |
No output schema declared.
No examples provided.
get_current_turn ~28
Get the current turn state and active player
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
get_discovered_leads ~29
List all leads that players have discovered.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
get_encounter ~43
Get full details for a specific encounter from a world pack.
| Name | Type | Req | Description |
|---|---|---|---|
| encounterId | string | yes | Encounter ID to retrieve |
| packId | string | yes | Pack ID |
No output schema declared.
No examples provided.
get_encounter_suggestions ~69
List encounters that fit the current context.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results |
| locationId | string | – | Filter by location |
| mood | string | – | Desired mood |
| sessionId | string | yes | Session ID |
| situationId | string | – | Filter by situation |
No output schema declared.
No examples provided.
get_faction ~44
Get full details for a specific faction from a world pack.
| Name | Type | Req | Description |
|---|---|---|---|
| factionId | string | yes | Faction ID to retrieve |
| packId | string | yes | Pack 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.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session 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.
| Name | Type | Req | Description |
|---|---|---|---|
| context | object | – | Additional context for guidance |
| sessionId | string | yes | Session ID |
| type | string | yes | Type 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.
| Name | Type | Req | Description |
|---|---|---|---|
| investigationId | string | yes | Investigation ID |
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
get_item ~42
Get full details for a specific item from a world pack.
| Name | Type | Req | Description |
|---|---|---|---|
| itemId | string | yes | Item ID to retrieve |
| packId | string | yes | Pack ID |
No output schema declared.
No examples provided.
get_location ~42
Get full details for a specific location from a world pack.
| Name | Type | Req | Description |
|---|---|---|---|
| locationId | string | yes | Location ID to retrieve |
| packId | string | yes | Pack ID |
No output schema declared.
No examples provided.
get_monster ~43
Get full details for a specific monster from a world pack.
| Name | Type | Req | Description |
|---|---|---|---|
| monsterId | string | yes | Monster ID to retrieve |
| packId | string | yes | Pack ID |
No output schema declared.
No examples provided.
get_npc ~43
Get full details for a specific NPC from a world pack.
| Name | Type | Req | Description |
|---|---|---|---|
| npcId | string | yes | NPC ID to retrieve |
| packId | string | yes | Pack ID |
No output schema declared.
No examples provided.
get_npc_disposition ~65
Quick check: How does this NPC feel about the party?
| Name | Type | Req | Description |
|---|---|---|---|
| forCharacterId | string | – | Get attitude toward a specific PC (uses per-character tracking if available) |
| npcId | string | yes | NPC ID |
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
get_player ~34
Get a player's full details
| Name | Type | Req | Description |
|---|---|---|---|
| playerId | string | yes | Player ID |
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
get_relationship ~41
Get an NPC's current attitude and interaction history with the party.
| Name | Type | Req | Description |
|---|---|---|---|
| npcId | string | yes | NPC ID |
| sessionId | string | yes | Session 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.
| Name | Type | Req | Description |
|---|---|---|---|
| packId | string | yes | Pack ID |
| situationId | string | yes | Situation 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.
| Name | Type | Req | Description |
|---|---|---|---|
| characterId | string | yes | Character ID |
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
get_time ~25
Returns current game time for session
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session 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.
| Name | Type | Req | Description |
|---|---|---|---|
| locationId | string | – | Filter by location as suggested source |
| npcId | string | – | Filter by NPC as suggested source |
| sessionId | string | yes | Session ID |
| significance | string | – | Filter 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).
| Name | Type | Req | Description |
|---|---|---|---|
| amount | integer | yes | Amount of HP to restore. Capped at the character's max HP. |
| characterId | string | yes | Character to heal |
| reason | string | – | Optional narrative reason (e.g. 'rest', 'spell') |
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
import_leads_as_clues ~46
Convert situation leads into portable clues for flexible delivery.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID |
| situationId | string | yes | Situation ID to import leads from |
No output schema declared.
No examples provided.
initialize_relationship ~91
Start tracking a relationship with an NPC.
| Name | Type | Req | Description |
|---|---|---|---|
| initialAttitude | string | – | Starting attitude (default: neutral) |
| knows | array | – | What the NPC knows about the party |
| npcId | string | yes | NPC ID |
| npcName | string | yes | NPC name for display |
| sessionId | string | yes | Session ID |
| wants | array | – | What the NPC wants from the party |
No output schema declared.
No examples provided.
list_characters ~26
List all characters in a session
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session 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.
| Name | Type | Req | Description |
|---|---|---|---|
| characterId | string | yes | Character ID |
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
list_players ~25
List all players in a session
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
list_relationships ~37
List all tracked NPC relationships.
| Name | Type | Req | Description |
|---|---|---|---|
| attitudeFilter | string | – | Filter by attitude level |
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
list_sessions ~35
List all game sessions. Optionally filter by world pack ID.
| Name | Type | Req | Description |
|---|---|---|---|
| worldPackId | string | – | Filter 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.
| Name | Type | Req | Description |
|---|---|---|---|
| sessionId | string | yes | Session 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…
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | The 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.
| Name | Type | Req | Description |
|---|---|---|---|
| packId | string | yes | Pack 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.
| Name | Type | Req | Description |
|---|---|---|---|
| packId | string | yes | Pack 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).
| Name | Type | Req | Description |
|---|---|---|---|
| entryId | string | – | Specific entry id, e.g. '5.6-trauma' or '4.1-standard-test'. Returns the full entry. |
| tag | string | – | Tag 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.
| Name | Type | Req | Description |
|---|---|---|---|
| autoLink | boolean | – | Auto-link content (default: true) |
| content | object | yes | New content arrays to merge |
| packId | string | yes | World 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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | integer | yes | Amount to add (positive) or subtract (negative) |
| characterId | string | yes | Character ID |
| reason | string | – | Reason for the gold change (for logging) |
| sessionId | string | yes | Session ID |
No output schema declared.
No examples provided.
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.