@thijshakkenberg/valkyrie-mom-mcp 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
3
+ "name": "valkyrie-mom",
4
+ "description": "Valkyrie Mansions of Madness scenario editor plugin and MCP server",
5
+ "owner": {
6
+ "name": "Thijs Hakkenberg"
7
+ },
8
+ "plugins": [
9
+ {
10
+ "name": "valkyrie-mom",
11
+ "description": "AI-assisted Mansions of Madness scenario editor for Valkyrie — MCP server, 7 skills, and scenario designer agent",
12
+ "version": "1.0.1",
13
+ "author": {
14
+ "name": "Thijs Hakkenberg"
15
+ },
16
+ "source": "./",
17
+ "category": "development"
18
+ }
19
+ ]
20
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "valkyrie-mom",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "AI-assisted Mansions of Madness scenario editor for Valkyrie",
5
5
  "author": {
6
6
  "name": "Thijs Hakkenberg"
@@ -10,8 +10,7 @@
10
10
  "mcpServers": {
11
11
  "valkyrie-mom": {
12
12
  "command": "npx",
13
- "args": ["tsx", "${CLAUDE_PLUGIN_ROOT}/src/index.ts"],
14
- "cwd": "${CLAUDE_PLUGIN_ROOT}"
13
+ "args": ["-y", "@thijshakkenberg/valkyrie-mom-mcp"]
15
14
  }
16
15
  }
17
16
  }
package/.mcp.json CHANGED
@@ -2,8 +2,7 @@
2
2
  "mcpServers": {
3
3
  "valkyrie-mom": {
4
4
  "command": "npx",
5
- "args": ["tsx", "${CLAUDE_PLUGIN_ROOT}/src/index.ts"],
6
- "cwd": "${CLAUDE_PLUGIN_ROOT}"
5
+ "args": ["-y", "@thijshakkenberg/valkyrie-mom-mcp"]
7
6
  }
8
7
  }
9
8
  }
package/README.md CHANGED
@@ -1,47 +1,79 @@
1
1
  # valkyrie-mom-mcp
2
2
 
3
- MCP (Model Context Protocol) server for AI-assisted Mansions of Madness 2nd Edition scenario creation with [Valkyrie](https://github.com/NPBruce/valkyrie).
3
+ [![npm](https://img.shields.io/npm/v/@thijshakkenberg/valkyrie-mom-mcp)](https://www.npmjs.com/package/@thijshakkenberg/valkyrie-mom-mcp)
4
+
5
+ MCP (Model Context Protocol) server and Claude Code plugin for AI-assisted Mansions of Madness 2nd Edition scenario creation with [Valkyrie](https://github.com/NPBruce/valkyrie).
4
6
 
5
7
  ## What it does
6
8
 
7
9
  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.
8
10
 
9
- ## Prerequisites
11
+ The plugin bundles 7 skills covering advanced patterns (event loops, mythos scaling, tile placement chains, custom puzzles, etc.) and an autonomous scenario designer agent.
10
12
 
11
- - [Node.js](https://nodejs.org/) >= 18
12
- - [Valkyrie](https://github.com/NPBruce/valkyrie) (optional, for playing built scenarios)
13
+ ## Install
13
14
 
14
- ## Setup
15
+ ### As a Claude Code plugin (recommended)
15
16
 
16
17
  ```bash
17
- npm install
18
+ claude plugin marketplace add thijs-hakkenberg/ValkyrieMCP
19
+ claude plugin install valkyrie-mom
20
+ ```
21
+
22
+ This gives you:
23
+ - **MCP server** with 16 tools for scenario editing (auto-started)
24
+ - **7 skills**: `/scenario`, `/event-patterns`, `/tile-placement`, `/variables-and-mythos`, `/custom-monsters`, `/ui-and-puzzles`, `/items-and-distribution`
25
+ - **Scenario designer agent** for autonomous scenario creation
26
+ - **5 MCP resources** for format documentation
27
+
28
+ To update to the latest version:
29
+ ```bash
30
+ claude plugin marketplace update valkyrie-mom
31
+ claude plugin update valkyrie-mom
18
32
  ```
19
33
 
20
- ### As an MCP server (Claude Code, Claude Desktop, etc.)
34
+ To uninstall:
35
+ ```bash
36
+ claude plugin uninstall valkyrie-mom
37
+ ```
38
+
39
+ ### As a standalone MCP server (Claude Desktop, other MCP clients)
21
40
 
22
- Add to your `.mcp.json` or MCP client config:
41
+ Add to your MCP client config (e.g., `~/.claude/mcp.json` or Claude Desktop settings):
23
42
 
24
43
  ```json
25
44
  {
26
45
  "mcpServers": {
27
46
  "valkyrie-mom": {
28
47
  "command": "npx",
29
- "args": ["tsx", "src/index.ts"],
30
- "cwd": "/path/to/valkyrie_mom_mcp"
48
+ "args": ["-y", "@thijshakkenberg/valkyrie-mom-mcp"]
31
49
  }
32
50
  }
33
51
  }
34
52
  ```
35
53
 
36
- ### Development
54
+ This gives you the MCP tools and resources, but not the skills or agent (those require Claude Code).
55
+
56
+ ### From source
37
57
 
38
58
  ```bash
39
- npm test # Run all tests
40
- npm run test:watch # Watch mode
41
- npm run lint # Type check
42
- npm run build # Compile to dist/
59
+ git clone https://github.com/thijs-hakkenberg/ValkyrieMCP.git
60
+ cd ValkyrieMCP
61
+ npm install
62
+ npx tsx src/index.ts # Run MCP server via stdio
43
63
  ```
44
64
 
65
+ ## Skills
66
+
67
+ | Skill | Description |
68
+ |-------|-------------|
69
+ | `/scenario` | Guided end-to-end scenario creation workflow |
70
+ | `/event-patterns` | Event loops, multi-question dialogues, silent events, token swaps, random events, variable branching |
71
+ | `/tile-placement` | Standard placement chains, multi-entry tiles, naming conventions |
72
+ | `/variables-and-mythos` | Variable system, mythos scaling formula, random generation, hero detection, content pack gating |
73
+ | `/custom-monsters` | Custom activations, evade/horror events, round-based spawn triggering |
74
+ | `/ui-and-puzzles` | Prologues, interactive journals, combination locks, built-in puzzle types |
75
+ | `/items-and-distribution` | Random items, unique items, starting items, inspection events |
76
+
45
77
  ## MCP Tools
46
78
 
47
79
  ### Lifecycle
@@ -77,7 +109,7 @@ npm run build # Compile to dist/
77
109
  ### Reference
78
110
  | Tool | Description |
79
111
  |------|-------------|
80
- | `search_game_content` | Search game content catalogs |
112
+ | `search_game_content` | Search game content catalogs (846 entries across tiles, monsters, items, audio) |
81
113
 
82
114
  ## MCP Resources
83
115
 
@@ -86,6 +118,7 @@ npm run build # Compile to dist/
86
118
  | Event format docs | `valkyrie://format/events` |
87
119
  | Localization format docs | `valkyrie://format/localization` |
88
120
  | Component format docs | `valkyrie://format/components` |
121
+ | Pattern reference | `valkyrie://format/patterns` |
89
122
  | Current scenario state | `valkyrie://scenario/current` |
90
123
 
91
124
  ## MCP Prompts
@@ -122,25 +155,44 @@ Built scenarios are ZIP archives with a `.valkyrie` extension.
122
155
 
123
156
  ## Validation Rules
124
157
 
125
- The server validates scenarios against 6 rule sets:
158
+ The server validates scenarios against 12 rule categories:
126
159
 
127
160
  1. **Unique names** - No duplicate component names
128
161
  2. **Required fields** - Tiles have `side`, displayed events have `buttons`
129
- 3. **Cross-references** - All referenced components exist (built-in game content like `Monster*` is exempt)
162
+ 3. **Cross-references** - All referenced components exist
130
163
  4. **Event graph** - `EventStart` trigger exists, no unreachable/dead-end events
131
- 5. **Localization completeness** - `quest.name`, `quest.description`, event text, button labels
132
- 6. **Format rules** - Valid format version, type=MoM, tile rotations in {0, 90, 180, 270}
164
+ 5. **Event flow** - Buttons vs event-ref consistency, silent event rules
165
+ 6. **Localization completeness** - Event text, button labels, quest metadata
166
+ 7. **Format rules** - Valid format version, type=MoM, tile rotations
167
+ 8. **Catalog references** - Tile sides, monster names, items match game content
168
+ 9. **Tile connectivity** - Tiles are spatially connected
169
+ 10. **Mythos structure** - Proper mythos trigger configuration
170
+ 11. **Investigator token** - TokenInvestigators setup and removal
171
+ 12. **Explore token** - Explore tokens linked to tile reveal events
172
+
173
+ ## Development
174
+
175
+ ```bash
176
+ npm test # Run all tests (1015 tests across 30 files)
177
+ npm run test:watch # Watch mode
178
+ npm run lint # Type check
179
+ npm run build # Compile to dist/
180
+ ```
133
181
 
134
182
  ## Project Structure
135
183
 
136
184
  ```
185
+ .claude-plugin/ Plugin manifest
186
+ skills/ 7 skill SKILL.md files
187
+ agents/ Scenario designer agent
137
188
  src/
138
189
  io/ INI parser/writer, localization CSV, ZIP packager
139
190
  model/ ScenarioModel, LocalizationStore, component types
140
- validation/ 6 rules + orchestrator
191
+ validation/ 12 rules + orchestrator
141
192
  rules/ Individual validation rule implementations
142
193
  tools/ MCP tool implementations
143
194
  resources/ Format documentation resources
195
+ catalogs/ 846-entry game content catalog
144
196
  server.ts MCP server registration
145
197
  index.ts Entry point (stdio transport)
146
198
  tests/
@@ -161,4 +213,4 @@ tests/
161
213
 
162
214
  ## License
163
215
 
164
- ISC
216
+ MIT
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@thijshakkenberg/valkyrie-mom-mcp",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "MCP server for AI-assisted Mansions of Madness scenario creation with Valkyrie",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
+ "bin": {
8
+ "valkyrie-mom-mcp": "dist/index.js"
9
+ },
7
10
  "author": {
8
11
  "name": "Thijs Hakkenberg"
9
12
  },