@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.
- package/.claude-plugin/marketplace.json +20 -0
- package/.claude-plugin/plugin.json +2 -3
- package/.mcp.json +1 -2
- package/README.md +74 -22
- package/package.json +4 -1
|
@@ -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.
|
|
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": ["
|
|
14
|
-
"cwd": "${CLAUDE_PLUGIN_ROOT}"
|
|
13
|
+
"args": ["-y", "@thijshakkenberg/valkyrie-mom-mcp"]
|
|
15
14
|
}
|
|
16
15
|
}
|
|
17
16
|
}
|
package/.mcp.json
CHANGED
package/README.md
CHANGED
|
@@ -1,47 +1,79 @@
|
|
|
1
1
|
# valkyrie-mom-mcp
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](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
|
-
|
|
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
|
-
|
|
12
|
-
- [Valkyrie](https://github.com/NPBruce/valkyrie) (optional, for playing built scenarios)
|
|
13
|
+
## Install
|
|
13
14
|
|
|
14
|
-
|
|
15
|
+
### As a Claude Code plugin (recommended)
|
|
15
16
|
|
|
16
17
|
```bash
|
|
17
|
-
|
|
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
|
-
|
|
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
|
|
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": ["
|
|
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
|
-
|
|
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
|
-
|
|
40
|
-
|
|
41
|
-
npm
|
|
42
|
-
|
|
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
|
|
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
|
|
162
|
+
3. **Cross-references** - All referenced components exist
|
|
130
163
|
4. **Event graph** - `EventStart` trigger exists, no unreachable/dead-end events
|
|
131
|
-
5. **
|
|
132
|
-
6. **
|
|
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/
|
|
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
|
-
|
|
216
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thijshakkenberg/valkyrie-mom-mcp",
|
|
3
|
-
"version": "1.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
|
},
|