Valkyrie Mansions of Madness scenario editor plugin and MCP server
npx claudepluginhub thijs-hakkenberg/valkyriemcpAI-assisted Mansions of Madness scenario editor for Valkyrie
MCP (Model Context Protocol) server and Claude Code plugin for AI-assisted Mansions of Madness 2nd Edition scenario creation with Valkyrie.
This server exposes Valkyrie scenario editing as MCP tools, enabling AI assistants (Claude, etc.) to create, modify, validate, and build complete MoM scenarios. It auto-detects the Valkyrie editor directory so scenarios appear directly in the app.
The plugin bundles 7 skills covering advanced patterns (event loops, mythos scaling, tile placement chains, custom puzzles, etc.) and an autonomous scenario designer agent.
claude plugin marketplace add thijs-hakkenberg/ValkyrieMCP
claude plugin install valkyrie-mom
This gives you:
/scenario, /event-patterns, /tile-placement, /variables-and-mythos, /custom-monsters, /ui-and-puzzles, /items-and-distributionTo update to the latest version:
claude plugin marketplace update valkyrie-mom
claude plugin update valkyrie-mom
To uninstall:
claude plugin uninstall valkyrie-mom
Add to your MCP client config (e.g., ~/.claude/mcp.json or Claude Desktop settings):
{
"mcpServers": {
"valkyrie-mom": {
"command": "npx",
"args": ["-y", "@thijshakkenberg/valkyrie-mom-mcp"]
}
}
}
This gives you the MCP tools and resources, but not the skills or agent (those require Claude Code).
git clone https://github.com/thijs-hakkenberg/ValkyrieMCP.git
cd ValkyrieMCP
npm install
npx tsx src/index.ts # Run MCP server via stdio
| Skill | Description |
|---|---|
/scenario | Guided end-to-end scenario creation workflow |
/event-patterns | Event loops, multi-question dialogues, silent events, token swaps, random events, variable branching |
/tile-placement | Standard placement chains, multi-entry tiles, naming conventions |
/variables-and-mythos | Variable system, mythos scaling formula, random generation, hero detection, content pack gating |
/custom-monsters | Custom activations, evade/horror events, round-based spawn triggering |
/ui-and-puzzles | Prologues, interactive journals, combination locks, built-in puzzle types |
/items-and-distribution | Random items, unique items, starting items, inspection events |
| Tool | Description |
|---|---|
list_scenarios | List all scenarios in the Valkyrie editor directory |
create_scenario | Create a new scenario (defaults to Valkyrie editor dir) |
load_scenario | Load an existing scenario from a directory |
get_scenario_state | Get current scenario component/localization summary |
validate_scenario | Run all validation rules |
build_scenario | Save and build .valkyrie package |
| Tool | Description |
|---|---|
upsert_event | Create or update an event |
upsert_tile | Create or update a tile |
upsert_token | Create or update a token |
upsert_spawn | Create or update a monster spawn |
upsert_item | Create or update an item |
upsert_puzzle | Create or update a puzzle |
upsert_ui | Create or update a UI element |
delete_component | Delete a component with cascade reference cleanup |
set_localization | Set localization key-value pairs |
| Tool | Description |
|---|---|
get_map_ascii | Render tile layout as ASCII art |
suggest_tile_layout | Suggest coordinates for linear, L-shape, or hub-spoke layouts |
place_tile_relative | Compute position relative to an existing tile |
| Tool | Description |
|---|---|
search_game_content | Search game content catalogs (846 entries across tiles, monsters, items, audio) |
| Tool | Description |
|---|---|
export_bug_report | Generate a ZIP bug report with session trace, scenario files, validation results, and Valkyrie logs |
| Resource | URI |
|---|---|
| Event format docs | valkyrie://format/events |
| Localization format docs | valkyrie://format/localization |
| Component format docs | valkyrie://format/components |
| Pattern reference | valkyrie://format/patterns |
| Current scenario state | valkyrie://scenario/current |
| Prompt | Description |
|---|---|
create-scenario | Guided workflow for creating a new scenario |
review-scenario | Analyze a scenario for balance and completeness |