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
add_combat_condition ~58

Add a condition to a combatant. Supports advantage/disadvantage and resistance/vulnerability effects.

NameTypeReqDescription
conditionobjectyes
sessionIdstringyesSession ID
targetIdstringyesTarget combatant ID

No output schema declared.

No examples provided.

add_deadline ~143

Add a deadline/countdown to track. Specify either expiresIn (minutes from now) or expiresAt (specific time).

NameTypeReqDescription
descriptionstringyesWhat happens when deadline expires
expiresAtobjectSpecific game time when deadline expires
expiresInnumberMinutes from now until expiration
idstringyesUnique deadline ID
namestringyesDeadline name (e.g., 'Midnight')
onExpireFlagstringFlag to set when deadline expires
sessionIdstringyesSession ID
warnOnApproachbooleanWarn when within 1 hour (default: true)

No output schema declared.

No examples provided.

add_evidence ~86

Record evidence discovered during investigation.

NameTypeReqDescription
connectsarrayOther evidence IDs this connects to
descriptionstringyesWhat was found
investigationIdstringyesInvestigation ID
isRedHerringbooleanGM flag: is this misleading?
sessionIdstringyesSession ID
sourcestringyesWhere/how it was found

No output schema declared.

No examples provided.

add_hypothesis ~70

Record a player theory about the mystery.

NameTypeReqDescription
investigationIdstringyesInvestigation ID
sessionIdstringyesSession ID
statementstringyesThe hypothesis (e.g., 'The butler did it')
supportingEvidencearrayEvidence IDs that support this

No output schema declared.

No examples provided.

add_item ~127

Add an item to a character's inventory. Can add from a world pack template (worldPackId + templateId) or create a custom item. Requires itemized inventory mode.

NameTypeReqDescription
autoEquipbooleanAutomatically equip if slot is empty
characterIdstringyesCharacter ID
customItemCustom item definition
quantityintegerQuantity to add
sessionIdstringyesSession ID
templateIdstringItem template ID from world pack
worldPackIdstringWorld pack ID to get template from

No output schema declared.

No examples provided.

add_note ~47

Add a timestamped note to the session

NameTypeReqDescription
contentstringyesNote content
sessionIdstringyesSession ID
tagsarrayTags for the note

No output schema declared.

No examples provided.

add_npc ~166

Register a fabricated NPC on the session. Returns a stable `npcId` to use in `generate_portrait` and `showDialogue`. Use BEFORE introducing any NPC that isn't already in the world pack — without this the NPC has no identity and their portrait can't be tracked across turns.

NameTypeReqDescription
attitudestringInitial disposition toward the player
descriptionstringyesShort physical + role description (1-2 sentences)
motivationstringWhat this NPC wants or fears (free-form, optional)
namestringyesNPC display name
narrativeRolestringStory role this NPC plays
personalitystringOne-line personality summary (e.g. 'gruff but fair')
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

advance_dialogue ~128

Continue an NPC dialogue with the next line and response choices. Set endDialogue=true to end the conversation and return to narrative.

NameTypeReqDescription
endDialoguebooleanIf true, end the dialogue and return to narrative stage
npcIdstringyesNPC ID (must match current dialogue)
npcNamestringyesNPC display name
portraitstringPortrait URL or emoji (optional override)
responsesarrayNew response choices for the player
sessionIdstringyesSession ID
textstringyesNPC's next dialogue line

No output schema declared.

No examples provided.

advance_time ~34

Advances time by N minutes

NameTypeReqDescription
minutesnumberyesMinutes to advance
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

advance_turn ~27

Move to the next player in turn order

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

analyze_scene ~88

Evaluate current scene for pacing issues. Helps identify when to cut or change direction. Based on the Alexandrian principle: 'Cut to the next meaningful choice.'

NameTypeReqDescription
currentActivitystringyesWhat's happening now
minutesInScenenumberyesReal-time minutes in scene
playerEnergystringyesGM's read on player engagement
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

apply_condition ~96

Add a condition to a character (narrative/exploration). For combat, use `add_combat_condition` instead so combat effects (advantage/disadvantage, modifiers) are picked up.

NameTypeReqDescription
characterIdstringyesCharacter receiving the condition
conditionobjectyesCondition to apply. duration is rounds (number), 'permanent', or 'until_rest'.
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

apply_damage ~59

Apply damage directly to a combatant (bypassing attack roll)

NameTypeReqDescription
amountnumberyesDamage amount (must be >= 0)
sessionIdstringyesSession ID
targetIdstringyesTarget combatant ID

No output schema declared.

No examples provided.

assemble_world_pack ~33

Combine all generated content into a complete WorldContentPack and save it.

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

assign_character ~47

Link a player to a character

NameTypeReqDescription
characterIdstringyesCharacter ID to assign
playerIdstringyesPlayer ID
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

attack ~260

Perform an attack against a target. Supports advantage/disadvantage and damage type for resistance/vulnerability. 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
advantageSourcesarraySources granting advantage (e.g., 'flanking', 'high ground')
attackerIdstringyesAttacking combatant ID
autoTickClockIdsarrayClock IDs to automatically tick on partial/failure outcomes
damageTypestringDamage type for resistance/vulnerability calculation
defenderIdstringyesDefending combatant ID
disadvantageSourcesarraySources granting disadvantage (e.g., 'darkness', 'cover')
effectLevelstringEffect level (impact). limited=0.5× damage, standard=1× (default), great=1.5×. Applies to graze damage on partial hits too.
positionstringPosition (risk level): controlled, risky (default), desperate
sessionIdstringyesSession ID
weaponIndexnumberIndex of weapon to use (default 0)

No output schema declared.

No examples provided.

batch_generate ~84

After seeding, returns ALL generation prompts at once for parallel LLM execution. Execute each prompt with an LLM, then call save_generation_result for each result. This replaces calling individual generate_* tools one by one.

NameTypeReqDescription
phasesarraySpecific phases to generate (default: all)
sessionIdstringyesSession ID (must have a saved world seed)

No output schema declared.

No examples provided.

batch_lookup ~62

Look up multiple entities at once. More efficient than individual lookups. Returns summaries for each entity.

NameTypeReqDescription
includeSecretsboolean
lookupsarrayyesList of entities to look up
worldPackIdstringyesWorld pack ID

No output schema declared.

No examples provided.

browse_shop ~135

Open a shop interface for the player. Loads items from world pack NPC/location data. Sets the stage to 'shop' so the player can browse, buy, and sell items.

NameTypeReqDescription
characterIdstringyesCharacter who is shopping
flavorstringFlavor text describing the shop atmosphere
locationIdstringLocation ID to find merchants at (alternative to npcId)
npcIdstringNPC ID of the merchant (looked up from world pack)
sessionIdstringyesSession ID
shopNamestringCustom shop name (overrides NPC/location name)

No output schema declared.

No examples provided.

buy_item ~130

Purchase an item from a shop. Deducts gold from the character and adds the item to their inventory.

NameTypeReqDescription
characterIdstringyesCharacter who is buying
itemCategorystringItem category (weapon, armor, consumable, misc)
itemDescriptionstringItem description
itemIdstringyesWorld pack item ID to buy
itemNamestringyesDisplay name of the item
priceintegeryesPrice per unit in gold
quantityintegerQuantity to buy
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

check_clock_triggers ~35

Check if any time-based clock stages have triggered based on current game time.

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

create_character ~183

Create a new character in the session

NameTypeReqDescription
abilitiesobjectAbility modifiers (-5 to +5)
archetypeIdstringArchetype ID (optional)
armorstring|nullArmor name
backgroundstringCharacter background
geararrayOther equipment
hpnumberStarting HP
idstringUnique character ID (auto-generated from the name when omitted)
initializeStressbooleanInitialize stress tracker for FitD-style mechanics
maxStressnumberMaximum stress before trauma (default: 9)
namestringyesCharacter name
personalityarrayPersonality traits
sessionIdstringyesSession ID
weaponsarrayWeapons in format 'Name (damage)' e.g. 'Sword (d8)'

No output schema declared.

No examples provided.

create_player ~106

Add a player (human or AI) to the session

NameTypeReqDescription
aiPersonaobjectAI persona configuration (for AI players)
characterIdstringCharacter ID to link (optional)
controlTypestringyesHuman or AI controlled
idstringyesUnique player ID
namestringyesDisplay name
rolestringyesPlayer role (gm, pc, or spectator)
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

create_portable_clue ~120

Create a revelation that can be discovered through multiple sources. The ultimate flexible clue.

NameTypeReqDescription
gmNotesstringGM-only notes
informationstringyesWhat the clue reveals
prerequisitesobject
revealsLeadTostringSituation ID this clue points to
sessionIdstringyesSession ID
setsFlagsarrayFlags to set when revealed
significancestringyesHow important this clue is
suggestedSourcesarrayyesWays this clue can be discovered

No output schema declared.

No examples provided.

create_session ~75

Create a new game session, optionally associated with a world pack.

NameTypeReqDescription
namestringyesSession name
seednumberRNG seed for determinism
sessionIdstringyesUnique session ID
worldPackIdstringyesWorld pack ID (required - every session must belong to a world)

No output schema declared.

No examples provided.

damage_character ~111

Deal damage to a character (narrative/environmental, not from combat resolution). Floors HP at 0 and reports defeat. For combat attacks, use `attack`. For combat-target damage, use `apply_damage`.

NameTypeReqDescription
amountintegeryesAmount of HP to subtract. Floored at 0.
characterIdstringyesCharacter to damage
reasonstringOptional narrative reason (e.g. 'trap', 'falling')
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

delete_character ~37

Delete a character from the session

NameTypeReqDescription
characterIdstringyesCharacter ID to delete
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

delete_player ~37

Remove a player from the session

NameTypeReqDescription
playerIdstringyesPlayer ID to delete
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

delete_session ~28

Delete a session and all its data

NameTypeReqDescription
sessionIdstringyesSession ID to delete

No output schema declared.

No examples provided.

delete_world_pack ~27

Delete a saved world pack.

NameTypeReqDescription
packIdstringyesPack ID to delete

No output schema declared.

No examples provided.

end_combat ~33

End the current combat

NameTypeReqDescription
outcomestringyesCombat outcome
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

end_turns ~30

End turn-based coordination and return to free-form play

NameTypeReqDescription
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

equip_item ~92

Equip an item from inventory to an equipment slot. Automatically unequips existing item if slot is occupied (unless disabled).

NameTypeReqDescription
characterIdstringyesCharacter ID
itemIdstringyesItem instance ID to equip
sessionIdstringyesSession ID
slotstringyesEquipment slot to use
unequipExistingbooleanAutomatically unequip existing item in slot

No output schema declared.

No examples provided.

expand_archetype ~61

Expand an archetype with additional detail (skill progression, party role, RP hooks). Returns a prompt for LLM execution.

NameTypeReqDescription
archetypeIdstringyesID of the archetype to expand
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

expand_location ~54

Expand a location with additional detail (areas, random encounters, treasure). Returns a prompt for LLM execution.

NameTypeReqDescription
locationIdstringyesID of the location to expand
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

expand_monster ~55

Expand a monster with additional detail (lair, variants, ecology). Returns a prompt for LLM execution.

NameTypeReqDescription
monsterIdstringyesID of the monster to expand
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

expand_npc ~57

Expand an NPC with additional detail (backstory, combat stats, quest hooks). Returns a prompt for LLM execution.

NameTypeReqDescription
npcIdstringyesID of the NPC to expand
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

export_world_pack ~63

Export a world pack to JSON and/or markdown format.

NameTypeReqDescription
formatstringExport format (default: json)
packIdstringPack ID (if exporting saved pack)
sessionIdstringSession ID (if exporting from session)

No output schema declared.

No examples provided.

flashback ~65

Execute a flashback to establish retroactive preparation. Costs 2 stress (default; world-overridable).

NameTypeReqDescription
characterIdstringyesCharacter using flashback
descriptionstringyesDescription of what the character prepared
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

frame_scene ~115

Generate an opening description for a new scene. Uses location data and tone to create engaging scene framing.

NameTypeReqDescription
focusOnarrayElements to emphasize (optional)
layoutstringScene layout type (default: exploration)
locationIdstringLocation ID from world pack
locationNamestringLocation name if no ID
moodstringDesired mood (optional)
sessionIdstringyesSession ID
timeOfDaystringTime context (optional)

No output schema declared.

No examples provided.

generate_appendices ~51

Generate appendices (items, conditions, encounters) for a world pack.

NameTypeReqDescription
packIdstringyesWorld pack ID
typesarrayWhich appendices to generate (default: all)

No output schema declared.

No examples provided.

generate_archetypes ~76

Generate playable character archetypes based on the world seed. Returns a prompt for LLM execution.

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

No output schema declared.

No examples provided.

generate_arcs ~75

Generate story arcs that group situations around central tensions. Returns a prompt for LLM execution.

NameTypeReqDescription
countnumberNumber of arcs to generate (default: from world seed or 2)
focusOnarraySpecific arc seeds to focus on (by name)
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

generate_conditions ~49

Generate status effects and conditions based on the world seed. Returns a prompt for LLM execution.

NameTypeReqDescription
countnumberNumber of conditions to generate
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

generate_encounter ~117

Create an encounter matching the specified parameters. Uses available monsters from the world pack.

NameTypeReqDescription
difficultystringyesHow challenging the encounter should be
excludeMonsterIdsarrayExclude these monsters
includeMonsterIdsarrayForce specific monsters
locationIdstringUse location-appropriate content
sessionIdstringyesSession ID
themestringTheme like 'ambush', 'negotiation', 'chase'
typestringType of encounter

No output schema declared.

No examples provided.

generate_encounters ~63

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

NameTypeReqDescription
countnumberNumber of encounters to generate
sessionIdstringyesSession ID
typesarrayEncounter types to include (at least one required)

No output schema declared.

No examples provided.

generate_engagement_hooks ~68

Generate personalized engagement hooks for a situation, location, or theme.

NameTypeReqDescription
locationIdstringLocation context
sessionIdstringyesSession ID
situationIdstringSituation to generate hooks for
themestringThematic focus (optional)

No output schema declared.

No examples provided.

generate_factions ~54

Generate factions with relationships, resources, and territory based on the world seed. Returns a prompt for LLM execution.

NameTypeReqDescription
countnumberNumber of factions to generate
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

generate_items ~62

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

NameTypeReqDescription
countnumberNumber of items to generate
kindsarrayItem kinds to include (at least one required)
sessionIdstringyesSession ID

No output schema declared.

No examples provided.

generate_locations ~69

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

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

No output schema declared.

No examples provided.