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

MythxEngine

NPM · @MYTHXENGINE/MCP-SERVER · 2 COMPONENTS · SCANNED AUG 3

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

+29 this week 73 Trust /100
Trust breakdown (6 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 →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Only part of the dependency tree could be resolved (96 of 100), so this covers what we could see, not the whole tree. 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 22 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability44
  • 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 Management23
  • Stability observed for 7 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
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @mythxengine/mcp-server

# add to Claude Code
claude mcp add protolabsai-mythxengine -- npx -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"]
// 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.

  • 3 Aug 26 +1

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

  • 2 Aug 26 +67
    • Install scripts: unverified → pass security
    • Provenance: unverified → pass security
    • Known CVEs: unverified → partial security
    • Malware scan: unverified → pass security
    • The attested source repository moved: protoLabsAI/mythx-mcp security
    • Schema quality: unverified → good functional
    • Tool coverage: unverified → 100 functional
    • License: unverified → pass functional
    • Schema quality: unverified → 0 functional
    • Dependency health: unverified → partial functional
    • Stability: unverified → 0.20 functional
    • Maintenance: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Licence: MIT functional
  • 31 Jul 26 −21
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −18
    • Malware scan: pass → unverified security
  • 27 Jul 26 44

    First indexed and scored.

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 3 Aug 2026 · Analysed npm/@mythxengine/[email protected]

Provenance verified

Ecosystem: npm · Outcome: verified

Reason: verified

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
Discovery method:
attestation_endpoint
Dependencies 96 packages

96 packages in the resolved dependency tree · 96 deprecated · 29 stale.

The dependency tree was only partially resolved, so these counts may be incomplete.

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.

Tool Tokens
mystify_content ~60

Break complete information into mysterious fragments, creating revelatory discovery.

NameTypeReqDescription
fragmentCountnumberyesHow many pieces (2-6)
fullRevelationstringyesComplete information to fragment
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

next_turn ~26

Advance to the next turn in combat

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

pause_clock ~44

Pause an active clock. Time-based triggers will not fire while paused.

NameTypeReqDescription
clockIdstringyesClock ID to pause
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

personalize_content ~59

Connect abstract information to a PC's backstory, making it personally relevant.

NameTypeReqDescription
characterIdstringyesPC to connect it to
contentstringyesThe information or event to personalize
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

push_roll ~156

Spend 2 stress to add +1d6 bonus to a failed or partial roll. Can trigger trauma if stress exceeds max. Returns an envelope with `outcome` ('pushed' or 'trauma_gained') and a one-line `summary` as the headline; mechanical detail is in `result` (including `previousOutcome` → `newOutcome`, the re-derived outcome tier for the pushed margin), stress/trauma changes in `state_delta`.

NameTypeReqDescription
characterIdstringyesCharacter spending stress to push
originalMarginnumberyesThe original margin (roll - difficulty)
originalRollnumberyesThe original roll total to add bonus to
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

quick_research ~143

Fast deterministic world pack lookup. Use for finding monsters, NPCs, locations, items, etc. Automatically detects entity type and does fuzzy name matching. Pure function lookup (~5ms) with no LLM overhead.

NameTypeReqDescription
entityTypestringEntity type hint (optional, will auto-detect if not provided)
includeSecretsbooleanWhether to include GM-only information (default: true)
querystringyesSearch query - can be entity name, ID, or natural language
resolveReferencesbooleanWhether to resolve cross-references (default: true)
worldPackIdstringyesWorld pack ID to search

No output schema declared.

No examples provided.

record_null_result ~76

Log a search that found nothing. Critical for hypothesis testing.

NameTypeReqDescription
investigationIdstringyesInvestigation ID
locationstringWhere they searched
meaningstringyesGM note: why nothing was found
searchstringyesWhat they searched for
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

recover_stress ~87

Recover stress during rest. Short rest recovers 2 stress, long rest recovers all stress.

NameTypeReqDescription
bonusesnumberAdditional recovery from abilities, conditions, or circumstances
characterIdstringyesCharacter recovering stress
restTypestringyesType of rest (short=2 stress, long=all stress)
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

remove_condition ~83

Remove a condition from a character. Accepts the condition id OR its display name (case-insensitive). No-op if the condition isn't on the character.

NameTypeReqDescription
characterIdstringyesCharacter losing the condition
conditionstringyesCondition to remove — accepts the condition id OR display name (case-insensitive).
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

remove_deadline ~37

Remove a deadline by ID

NameTypeReqDescription
deadlineIdstringyesDeadline ID to remove
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

remove_item ~89

Remove an item from a character's inventory. For stackable items, can remove a specific quantity. Automatically unequips if equipped.

NameTypeReqDescription
characterIdstringyesCharacter ID
itemIdstringyesItem instance ID to remove
quantityintegerQuantity to remove (for stackable items). Removes all if not specified.
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

request_player_input ~77

Mark a human player as awaiting input for their turn

NameTypeReqDescription
choicesarrayOptional preset choices
contextstringAdditional context (scene, situation)
playerIdstringyesPlayer ID
promptstringyesWhat we're asking the player to decide
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

resist_consequence ~264

Spend stress to reduce a consequence. Roll ability to potentially reduce cost. Minor=1, Moderate=2, Severe=3 base cost. Pass `damage` when the consequence is HP damage — the tool then applies the mechanical effect itself (successful resist halves it, failed resist lands in full; set `alreadyApplied` if the damage already hit HP so it refunds the reduction). Returns an envelope with `outcome` ('reduced', 'absorbed', or 'trauma_gained') and a one-line `summary` as the headline; stress/trauma/HP changes in `state_delta`.

NameTypeReqDescription
characterIdstringyesCharacter resisting the consequence
consequencestringDescription of the consequence being resisted
damageobjectMechanical damage consequence. When provided the tool applies the resist result to HP itself: a successful resist halves the damage (rounded down — 1 becomes 0), a failed resist lets it land in full.…
resistAbilitystringyesAbility to roll for potential cost reduction
sessionIdstringyesSession ID
severitystringyesSeverity of consequence to resist (affects stress cost)

No output schema declared.

No examples provided.

resume_clock ~35

Resume a paused clock.

NameTypeReqDescription
clockIdstringyesClock ID to resume
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

resume_generation ~55

Resume an interrupted world generation session. Analyzes session state to report progress and optionally reset incomplete steps.

NameTypeReqDescription
reconstructbooleanIf true, reset incomplete steps to allow retry
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

reveal_clock ~76

Make a hidden situation clock visible to players on their HUD. Call this exactly when your narration reveals the threat or deadline to the players — not before. Until revealed, clocks are GM-only state and may tick in secret.

NameTypeReqDescription
clockIdstringyesClock ID to reveal to players
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

reveal_clue ~52

Mark a portable clue as discovered.

NameTypeReqDescription
clueIdstringyesClue ID to reveal
sessionIdstringyesSession ID
viastringyesHow it was revealed (description)

No output schema declared.

No examples provided.

reveal_lead ~87

Mark a lead as discovered by the players.

NameTypeReqDescription
discoveredByPlayerIdstringPlayer ID of the PC who discovered this lead (for asymmetric knowledge)
discoveryContextstringAdditional context about discovery
discoveryMethodstringyesHow it was discovered
leadIdstringyesLead ID to reveal
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

roll_custom_test ~96

Perform a custom test defined in the world pack rules (e.g., panic check, sanity roll). Returns success/failure, any table rolls, and effects to apply.

NameTypeReqDescription
characterIdstringyesCharacter performing the test
modifiersnumberAdditional modifiers
sessionIdstringyesSession ID
testIdstringyesCustom test ID (e.g., 'panic', 'sanity_check')

No output schema declared.

No examples provided.

roll_dice ~88

Roll dice using standard notation (e.g., '2d6+3', 'd20', '4d6'). Optionally use session RNG for determinism.

NameTypeReqDescription
expressionstringyesDice expression like '2d6+3', 'd20', '1d8-1'
sessionIdstringOptional session ID to use session RNG for determinism

No output schema declared.

No examples provided.

roll_initiative ~31

Roll initiative for all combatants and set turn order

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

roll_test ~289

Perform a skill or ability test for a character. Rolls d20 + ability + skill + modifiers vs difficulty. Supports advantage/disadvantage. Returns an envelope with `outcome` (five-tier) and a one-line `summary` as the headline; mechanical detail is in `result`, follow-up moves in `suggested_next`.

NameTypeReqDescription
abilitystringAbility to use (optional, defaults to skill's ability or WIT)
advantageSourcesarraySources granting advantage (e.g., 'flanking', 'high ground')
autoTickClockIdsarrayClock IDs to automatically tick on partial/failure outcomes
characterIdstringyesCharacter performing the test
difficultystringDifficulty level: easy (DC 8), standard (DC 12, default), hard (DC 16), extreme (DC 20). For an exact custom DC, use roll_custom_test instead.
disadvantageSourcesarraySources granting disadvantage (e.g., 'darkness', 'wounded')
effectLevelstringEffect level (impact): limited, standard (default), great
modifiersarrayAdditional modifiers
positionstringPosition (risk level): controlled, risky (default), desperate
sessionIdstringyesSession ID
skillstringSkill to use (optional)

No output schema declared.

No examples provided.

save_book_result ~52

Save generated book content to a file.

NameTypeReqDescription
bookTypestringyesType of book being saved
contentstringyesThe generated book content
packIdstringyesWorld pack ID

No output schema declared.

No examples provided.

save_generation_result ~76

Save LLM-generated content back to the session. Call this after executing a generation prompt. Accepts JSON or XML formatted results.

NameTypeReqDescription
resultThe LLM-generated result (JSON object or XML string)
sessionIdstringyesSession ID
stepIdstringyesStep ID from the generation tool response

No output schema declared.

No examples provided.

save_rulebook_result ~31

Save the generated rulebook content to files.

NameTypeReqDescription
contentstringyesThe generated rulebook content

No output schema declared.

No examples provided.

scale_encounter ~61

Adjust the difficulty of an existing encounter.

NameTypeReqDescription
encounterIdstringyesEncounter ID to scale
methodstringHow to adjust difficulty
sessionIdstringyesSession ID
targetDifficultystringyesNew target difficulty

No output schema declared.

No examples provided.

search_leads ~38

Search for leads by keyword across all lead information.

NameTypeReqDescription
querystringyesSearch query
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

search_notes ~51

Search session notes by keyword or tags

NameTypeReqDescription
querystringyesSearch query (searches content)
sessionIdstringyesSession ID
tagsarrayFilter by tags (optional)

No output schema declared.

No examples provided.

sell_item ~103

Sell an item from the character's inventory for gold. Default sell price is 50% of item value.

NameTypeReqDescription
characterIdstringyesCharacter who is selling
inventoryItemIdstringyesID of the item in the character's inventory
quantityintegerQuantity to sell
sellPriceOverrideintegerOverride sell price per unit (default: 50% of item value)
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

set_party_location ~72

Update the session's current party location. The locationId must exist in the active world pack. Drives the persistent scene panel in the UI.

NameTypeReqDescription
locationIdstringyesId of the location the party is now at — must exist in the active world pack
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

set_play_mode ~79

Set the play mode for a session. 'interactive' prompts the player for decisions, 'auto' plays all characters autonomously. Persists across context compaction.

NameTypeReqDescription
modestringyesPlay mode: 'interactive' prompts the player for actions, 'auto' plays all characters autonomously
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

set_time ~64

Sets game time (for initialization/GM override)

NameTypeReqDescription
daynumberDay number (1+)
hournumberHour (0-23)
minutenumberMinute (0-59)
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

start_augmentation ~80

Start adding new content to an existing world pack. Returns generation prompts for the requested content types.

NameTypeReqDescription
locationContextstringLocation ID or description for contextual content
packIdstringyesWorld pack ID to augment
requestobjectyesContent counts to generate
themestringTheme or focus for new content

No output schema declared.

No examples provided.

start_combat ~139

Initialize combat with characters and enemies. Returns an envelope with `outcome: 'combat_started'` and a one-line `summary` as the headline; combatant lists in `result`, combat state in `state_delta`. Always follow with `roll_initiative` (also surfaced in `suggested_next.next_action`).

NameTypeReqDescription
characterIdsarrayyesCharacter IDs participating in combat
enemiesarrayInline enemy definitions — creates enemies automatically. Use this instead of pre-creating enemies with create_character.
enemyIdsarrayIDs of enemies already in the session
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

start_dialogue ~111

Start a structured NPC dialogue. Loads NPC data from the world pack, sets the UI to dialogue stage with portrait and response choices.

NameTypeReqDescription
contextstringAdditional context for the encounter (e.g., 'player just saved them')
greetingstringCustom greeting text (overrides auto-generated greeting)
npcIdstringyesNPC ID from world pack
responsesarrayCustom response choices (overrides role-based defaults)
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

start_investigation ~89

Begin tracking a mystery. Define the truth (GM-only) to enable hypothesis testing.

NameTypeReqDescription
namestringyesInvestigation name
openQuestionsarrayInitial questions to answer
sessionIdstringyesSession ID
situationIdsarrayRelated situation IDs
truthobjectyesThe truth of the mystery (GM-only, used for hypothesis testing)

No output schema declared.

No examples provided.

start_situation_clock ~117

Start a situation clock. The clock tracks what happens if PCs don't intervene.

NameTypeReqDescription
clockIdstringOptional clock ID if situation has multiple clocks
playerVisiblebooleanWhether players can see this clock on their HUD. Defaults to false — clocks are GM-state and revealing them at start is a spoiler. Leave hidden and call reveal_clock when the fiction surfaces the thr…
sessionIdstringyesSession ID
situationIdstringyesSituation ID containing the clock

No output schema declared.

No examples provided.

start_turns ~63

Begin turn-based coordination for multi-player gameplay

NameTypeReqDescription
playerIdsarraySpecific player IDs for turn order (default: all PC players)
sessionIdstringyesSession ID
strategystringTurn strategy (default: round_robin)

No output schema declared.

No examples provided.

submit_ai_player_action ~65

Record an AI player's decided action

NameTypeReqDescription
actionstringyesThe action the AI decided on
playerIdstringyesAI player ID
reasoningstringBrief reasoning for the choice (optional)
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

submit_player_action ~48

Record a human player's chosen action

NameTypeReqDescription
actionstringyesThe action the player chose
playerIdstringyesPlayer ID
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

suggest_clue_delivery ~79

Get suggestions for how to naturally deliver a clue in the current context.

NameTypeReqDescription
clueIdstringyesClue ID
currentActivitystringWhat's happening now
currentLocationIdstringCurrent location
presentNpcIdsarrayNPCs present
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

suggest_investigation_steps ~39

Get suggestions for moving the investigation forward.

NameTypeReqDescription
investigationIdstringyesInvestigation ID
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

suggest_lead_opportunity ~55

Suggest ways to naturally surface leads pointing to a target situation. Supports the Three Clue Rule.

NameTypeReqDescription
sessionIdstringyesSession ID
targetSituationIdstringyesSituation ID to find leads for

No output schema declared.

No examples provided.

suggest_scene_cut ~87

Recommend how to transition to the next meaningful moment. Based on the Alexandrian principle: 'Cut to the next meaningful choice.'

NameTypeReqDescription
currentLocationstringyesWhere the scene is taking place
includeInterruptionsbooleanWhether to suggest interruptions
partyIntentionstringyesWhat the party is trying to do
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

take_rest ~168

Initiate a rest sequence for the party. Recovers HP and stress, advances game time, and optionally clears conditions. Sets the UI stage to 'rest'. Returns an envelope with `outcome` ('short_rest', 'long_rest', or 'camp_rest') and a one-line `summary` as the headline; per-character mechanics in `result.results`, totals in `state_delta`.

NameTypeReqDescription
flavorstringFlavor text for the rest scene
locationstringWhere the party is resting
restTypestringyesType of rest: short (1h, 25% HP, 1 stress), long (8h, 50% HP, 2 stress), camp (12h, full recovery)
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

test_hypothesis ~87

Record the result of testing a hypothesis. Supports the 'null result' principle.

NameTypeReqDescription
hypothesisIdstringyesHypothesis ID
investigationIdstringyesInvestigation ID
resultstringyesResult: supports, refutes, or inconclusive
sessionIdstringyesSession ID
teststringyesWhat was done to test it

No output schema declared.

No examples provided.

tick_clock ~90

Manually advance a clock to its next stage. Use for event-based triggers or GM override.

NameTypeReqDescription
clockIdstringyesClock ID to advance
revealbooleanAlso make the clock player-visible (tick-and-reveal in one call). Defaults to false — ticking does NOT reveal a hidden clock, so hidden doom can advance off-screen.
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

transfer_item ~111

Transfer an item between characters or to/from party inventory. Automatically unequips if the item is equipped.

NameTypeReqDescription
fromCharacterIdstring|nullyesSource character ID (null = from party inventory)
itemIdstringyesItem instance ID to transfer
quantityintegerQuantity to transfer (for stackable items). Transfers all if not specified.
sessionIdstringyesSession ID
toCharacterIdstring|nullyesDestination character ID (null = to party inventory)

No output schema declared.

No examples provided.

treasurify_information ~63

Package information as a valuable discovery - a physical item, document, or reward.

NameTypeReqDescription
contextstringyesCurrent situation for context
informationstringyesThe lore or plot point to make valuable
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

unequip_item ~57

Unequip an item from an equipment slot. The item remains in inventory.

NameTypeReqDescription
characterIdstringyesCharacter ID
sessionIdstringyesSession ID
slotstringyesEquipment slot to unequip from

No output schema declared.

No examples provided.