@mandujs/mcp 0.12.2 → 0.13.0

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.
Files changed (141) hide show
  1. package/README.md +367 -367
  2. package/package.json +2 -2
  3. package/src/activity-monitor.ts +847 -847
  4. package/src/adapters/index.ts +20 -20
  5. package/src/adapters/monitor-adapter.ts +100 -100
  6. package/src/adapters/tool-adapter.ts +88 -88
  7. package/src/executor/error-handler.ts +250 -250
  8. package/src/executor/index.ts +22 -22
  9. package/src/executor/tool-executor.ts +148 -148
  10. package/src/hooks/config-watcher.ts +174 -174
  11. package/src/hooks/index.ts +23 -23
  12. package/src/hooks/mcp-hooks.ts +227 -227
  13. package/src/index.ts +106 -106
  14. package/src/logging/index.ts +15 -15
  15. package/src/logging/mcp-transport.ts +134 -134
  16. package/src/registry/index.ts +13 -13
  17. package/src/registry/mcp-tool-registry.ts +298 -298
  18. package/src/resources/skills/guides.ts +1136 -1136
  19. package/src/resources/skills/index.ts +12 -12
  20. package/src/resources/skills/loader.ts +218 -218
  21. package/src/resources/skills/mandu-composition/SKILL.md +91 -91
  22. package/src/resources/skills/mandu-composition/metadata.json +13 -13
  23. package/src/resources/skills/mandu-composition/rules/_sections.md +26 -26
  24. package/src/resources/skills/mandu-composition/rules/_template.md +77 -77
  25. package/src/resources/skills/mandu-composition/rules/comp-arch-avoid-boolean-props.md +146 -146
  26. package/src/resources/skills/mandu-composition/rules/comp-arch-compound-components.md +164 -164
  27. package/src/resources/skills/mandu-composition/rules/comp-island-event.md +161 -161
  28. package/src/resources/skills/mandu-composition/rules/comp-island-slot-split.md +167 -167
  29. package/src/resources/skills/mandu-composition/rules/comp-pattern-children.md +149 -149
  30. package/src/resources/skills/mandu-composition/rules/comp-state-context-interface.md +148 -148
  31. package/src/resources/skills/mandu-composition/rules/comp-state-lift-state.md +150 -150
  32. package/src/resources/skills/mandu-deployment/SKILL.md +92 -92
  33. package/src/resources/skills/mandu-deployment/_sections.md +41 -41
  34. package/src/resources/skills/mandu-deployment/_template.md +38 -38
  35. package/src/resources/skills/mandu-deployment/metadata.json +13 -13
  36. package/src/resources/skills/mandu-deployment/rules/deploy-build-bun.md +109 -109
  37. package/src/resources/skills/mandu-deployment/rules/deploy-build-output.md +115 -115
  38. package/src/resources/skills/mandu-deployment/rules/deploy-cicd-github.md +219 -219
  39. package/src/resources/skills/mandu-deployment/rules/deploy-docker-bun.md +150 -150
  40. package/src/resources/skills/mandu-deployment/rules/deploy-docker-compose.md +223 -223
  41. package/src/resources/skills/mandu-deployment/rules/deploy-platform-fly.md +152 -152
  42. package/src/resources/skills/mandu-deployment/rules/deploy-platform-render.md +179 -179
  43. package/src/resources/skills/mandu-deployment/rules/deploy-platform-supabase.md +323 -323
  44. package/src/resources/skills/mandu-deployment/rules/deploy-platform-vercel.md +140 -140
  45. package/src/resources/skills/mandu-fs-routes/SKILL.md +82 -82
  46. package/src/resources/skills/mandu-fs-routes/metadata.json +12 -12
  47. package/src/resources/skills/mandu-fs-routes/rules/_sections.md +36 -36
  48. package/src/resources/skills/mandu-fs-routes/rules/_template.md +69 -69
  49. package/src/resources/skills/mandu-fs-routes/rules/routes-api-methods.md +65 -65
  50. package/src/resources/skills/mandu-fs-routes/rules/routes-dynamic-param.md +93 -93
  51. package/src/resources/skills/mandu-fs-routes/rules/routes-naming-page.md +55 -55
  52. package/src/resources/skills/mandu-guard/SKILL.md +129 -129
  53. package/src/resources/skills/mandu-guard/metadata.json +12 -12
  54. package/src/resources/skills/mandu-guard/rules/_sections.md +36 -36
  55. package/src/resources/skills/mandu-guard/rules/_template.md +82 -82
  56. package/src/resources/skills/mandu-guard/rules/guard-config-rules.md +100 -100
  57. package/src/resources/skills/mandu-guard/rules/guard-layer-direction.md +76 -76
  58. package/src/resources/skills/mandu-guard/rules/guard-preset-mandu.md +81 -81
  59. package/src/resources/skills/mandu-guard/rules/guard-validate-import.md +80 -80
  60. package/src/resources/skills/mandu-hydration/SKILL.md +91 -91
  61. package/src/resources/skills/mandu-hydration/metadata.json +12 -12
  62. package/src/resources/skills/mandu-hydration/rules/_sections.md +31 -31
  63. package/src/resources/skills/mandu-hydration/rules/_template.md +72 -72
  64. package/src/resources/skills/mandu-hydration/rules/hydration-data-event.md +109 -109
  65. package/src/resources/skills/mandu-hydration/rules/hydration-directive-use-client.md +55 -55
  66. package/src/resources/skills/mandu-hydration/rules/hydration-island-setup.md +113 -113
  67. package/src/resources/skills/mandu-hydration/rules/hydration-priority-visible.md +68 -68
  68. package/src/resources/skills/mandu-performance/SKILL.md +85 -85
  69. package/src/resources/skills/mandu-performance/metadata.json +14 -14
  70. package/src/resources/skills/mandu-performance/rules/_sections.md +31 -31
  71. package/src/resources/skills/mandu-performance/rules/_template.md +64 -64
  72. package/src/resources/skills/mandu-performance/rules/perf-async-defer-await.md +103 -103
  73. package/src/resources/skills/mandu-performance/rules/perf-async-parallel.md +95 -95
  74. package/src/resources/skills/mandu-performance/rules/perf-bun-file.md +124 -124
  75. package/src/resources/skills/mandu-performance/rules/perf-bun-serve.md +125 -125
  76. package/src/resources/skills/mandu-performance/rules/perf-bundle-imports.md +80 -80
  77. package/src/resources/skills/mandu-performance/rules/perf-bundle-island-lazy.md +145 -145
  78. package/src/resources/skills/mandu-performance/rules/perf-cache-react.md +98 -98
  79. package/src/resources/skills/mandu-performance/rules/perf-render-transitions.md +154 -154
  80. package/src/resources/skills/mandu-security/SKILL.md +87 -87
  81. package/src/resources/skills/mandu-security/metadata.json +13 -13
  82. package/src/resources/skills/mandu-security/rules/_sections.md +31 -31
  83. package/src/resources/skills/mandu-security/rules/_template.md +74 -74
  84. package/src/resources/skills/mandu-security/rules/sec-auth-guard.md +127 -127
  85. package/src/resources/skills/mandu-security/rules/sec-env-management.md +133 -133
  86. package/src/resources/skills/mandu-security/rules/sec-input-validate.md +148 -148
  87. package/src/resources/skills/mandu-security/rules/sec-protect-csrf.md +146 -146
  88. package/src/resources/skills/mandu-security/rules/sec-protect-headers.md +138 -138
  89. package/src/resources/skills/mandu-slot/SKILL.md +85 -85
  90. package/src/resources/skills/mandu-slot/metadata.json +12 -12
  91. package/src/resources/skills/mandu-slot/rules/_sections.md +36 -36
  92. package/src/resources/skills/mandu-slot/rules/_template.md +63 -63
  93. package/src/resources/skills/mandu-slot/rules/slot-basic-structure.md +38 -38
  94. package/src/resources/skills/mandu-slot/rules/slot-ctx-response.md +56 -56
  95. package/src/resources/skills/mandu-slot/rules/slot-guard-auth.md +59 -59
  96. package/src/resources/skills/mandu-slot/rules/slot-http-methods.md +64 -64
  97. package/src/resources/skills/mandu-styling/SKILL.md +154 -154
  98. package/src/resources/skills/mandu-styling/_sections.md +43 -43
  99. package/src/resources/skills/mandu-styling/_template.md +32 -32
  100. package/src/resources/skills/mandu-styling/metadata.json +15 -15
  101. package/src/resources/skills/mandu-styling/rules/style-component-compound.md +235 -235
  102. package/src/resources/skills/mandu-styling/rules/style-component-slots.md +255 -255
  103. package/src/resources/skills/mandu-styling/rules/style-component-tokens.md +205 -205
  104. package/src/resources/skills/mandu-styling/rules/style-island-animations.md +272 -272
  105. package/src/resources/skills/mandu-styling/rules/style-island-scoping.md +167 -167
  106. package/src/resources/skills/mandu-styling/rules/style-island-variants.md +221 -221
  107. package/src/resources/skills/mandu-styling/rules/style-perf-critical.md +209 -209
  108. package/src/resources/skills/mandu-styling/rules/style-perf-purge.md +192 -192
  109. package/src/resources/skills/mandu-styling/rules/style-setup-modules.md +162 -162
  110. package/src/resources/skills/mandu-styling/rules/style-setup-panda.md +164 -164
  111. package/src/resources/skills/mandu-styling/rules/style-setup-tailwind.md +170 -170
  112. package/src/resources/skills/mandu-styling/rules/style-tailwind-v4-gotchas.md +179 -179
  113. package/src/resources/skills/mandu-styling/rules/style-theme-darkmode.md +229 -229
  114. package/src/resources/skills/mandu-testing/SKILL.md +99 -99
  115. package/src/resources/skills/mandu-testing/metadata.json +13 -13
  116. package/src/resources/skills/mandu-testing/rules/_sections.md +26 -26
  117. package/src/resources/skills/mandu-testing/rules/_template.md +65 -65
  118. package/src/resources/skills/mandu-testing/rules/test-component-island.md +195 -195
  119. package/src/resources/skills/mandu-testing/rules/test-e2e-playwright.md +196 -196
  120. package/src/resources/skills/mandu-testing/rules/test-mock-fetch.md +219 -219
  121. package/src/resources/skills/mandu-testing/rules/test-slot-unit.md +192 -192
  122. package/src/resources/skills/mandu-ui/SKILL.md +117 -117
  123. package/src/resources/skills/mandu-ui/_sections.md +23 -23
  124. package/src/resources/skills/mandu-ui/_template.md +32 -32
  125. package/src/resources/skills/mandu-ui/metadata.json +13 -13
  126. package/src/resources/skills/mandu-ui/rules/ui-accessibility-aria.md +232 -232
  127. package/src/resources/skills/mandu-ui/rules/ui-accessibility-focus.md +238 -238
  128. package/src/resources/skills/mandu-ui/rules/ui-composition-patterns.md +259 -259
  129. package/src/resources/skills/mandu-ui/rules/ui-island-integration.md +258 -258
  130. package/src/resources/skills/mandu-ui/rules/ui-radix-patterns.md +213 -213
  131. package/src/resources/skills/mandu-ui/rules/ui-shadcn-setup.md +209 -209
  132. package/src/resources/skills/recipes.ts +932 -932
  133. package/src/tools/generate.ts +7 -4
  134. package/src/tools/guard.ts +17 -4
  135. package/src/tools/hydration.ts +10 -10
  136. package/src/tools/project.ts +334 -334
  137. package/src/tools/runtime.ts +497 -497
  138. package/src/tools/seo.ts +417 -417
  139. package/src/tools/spec.ts +80 -159
  140. package/src/utils/project.ts +22 -12
  141. package/src/utils/withWarnings.ts +83 -83
package/README.md CHANGED
@@ -1,367 +1,367 @@
1
- <p align="center">
2
- <img src="https://raw.githubusercontent.com/konamgil/mandu/main/mandu_only_simbol.png" alt="Mandu" width="200" />
3
- </p>
4
-
5
- <h1 align="center">@mandujs/mcp</h1>
6
-
7
- <p align="center">
8
- <strong>Mandu MCP Server</strong><br/>
9
- Model Context Protocol server for AI agent integration
10
- </p>
11
-
12
- <p align="center">
13
- English | <a href="./README.ko.md"><strong>한국어</strong></a>
14
- </p>
15
-
16
- ## What is MCP?
17
-
18
- MCP (Model Context Protocol) enables AI agents to directly interact with the Mandu framework. Instead of generating code blindly, agents can:
19
-
20
- - Query current project structure
21
- - Add/modify routes with validation
22
- - Write business logic with auto-correction
23
- - Check architecture rules before making changes
24
- - Receive real-time violation notifications
25
-
26
- ## Setup
27
-
28
- ### Claude Code / Claude Desktop
29
-
30
- Add to your MCP configuration (`.mcp.json` or Claude settings):
31
-
32
- ```json
33
- {
34
- "mcpServers": {
35
- "mandu": {
36
- "command": "bunx",
37
- "args": ["@mandujs/mcp"],
38
- "cwd": "/path/to/your/project"
39
- }
40
- }
41
- }
42
- ```
43
-
44
- ### Direct Execution
45
-
46
- ```bash
47
- cd /path/to/project
48
- bunx @mandujs/mcp
49
- ```
50
-
51
- ### Global Mode
52
-
53
- Run MCP without project auto-detection (use current directory):
54
-
55
- ```bash
56
- bunx @mandujs/mcp --global
57
- ```
58
-
59
- Optional: target a specific root directory:
60
-
61
- ```bash
62
- bunx @mandujs/mcp --root /path/to/project
63
- ```
64
-
65
- ---
66
-
67
- ## Tools (35+)
68
-
69
- ### Spec Management
70
-
71
- | Tool | Description |
72
- |------|-------------|
73
- | `mandu_list_routes` | List all routes with details |
74
- | `mandu_get_route` | Get specific route by ID |
75
- | `mandu_add_route` | Add new route to manifest |
76
- | `mandu_update_route` | Modify existing route |
77
- | `mandu_delete_route` | Remove route from manifest |
78
- | `mandu_validate_spec` | Validate manifest schema |
79
-
80
- ### Code Generation
81
-
82
- | Tool | Description |
83
- |------|-------------|
84
- | `mandu_generate` | Generate code from manifest |
85
-
86
- ### Transaction Management
87
-
88
- | Tool | Description |
89
- |------|-------------|
90
- | `mandu_begin` | Start transaction with snapshot |
91
- | `mandu_commit` | Finalize changes |
92
- | `mandu_rollback` | Restore from snapshot |
93
- | `mandu_tx_status` | Get transaction state |
94
-
95
- ### Slot Management
96
-
97
- | Tool | Description |
98
- |------|-------------|
99
- | `mandu_read_slot` | Read slot file content |
100
- | `mandu_write_slot` | Write slot file (with auto-correction) |
101
- | `mandu_validate_slot` | Validate slot syntax |
102
-
103
- ### Guard & Architecture
104
-
105
- | Tool | Description |
106
- |------|-------------|
107
- | `mandu_guard_check` | Run all guard checks |
108
- | `mandu_guard_heal` | Self-Healing Guard - detect + auto-fix suggestions |
109
- | `mandu_explain_rule` | Explain architecture rule with examples |
110
- | `mandu_check_location` | Validate file location before creating |
111
- | `mandu_check_import` | Validate imports against architecture rules |
112
- | `mandu_get_architecture` | Get project architecture rules |
113
-
114
- ### Decision Memory (RFC-001) 🆕
115
-
116
- | Tool | Description |
117
- |------|-------------|
118
- | `mandu_search_decisions` | Search ADRs by tags or status |
119
- | `mandu_save_decision` | Save new architecture decision |
120
- | `mandu_check_consistency` | Check decision-implementation consistency |
121
-
122
- ### Semantic Slots (RFC-001) 🆕
123
-
124
- | Tool | Description |
125
- |------|-------------|
126
- | `mandu_validate_slot` | Validate slot against constraints |
127
- | `mandu_validate_slots` | Batch validate multiple slots |
128
-
129
- ### Architecture Negotiation (RFC-001) 🆕
130
-
131
- | Tool | Description |
132
- |------|-------------|
133
- | `mandu_negotiate` | AI-Framework negotiation dialog |
134
- | `mandu_generate_scaffold` | Generate structure scaffold |
135
- | `mandu_analyze_structure` | Analyze existing project structure |
136
-
137
- ### Brain & Monitoring
138
-
139
- | Tool | Description |
140
- |------|-------------|
141
- | `mandu_doctor` | Analyze failures + suggest patches |
142
- | `mandu_watch_start` | Start file watcher with notifications |
143
- | `mandu_watch_status` | Get watcher status |
144
- | `mandu_watch_stop` | Stop file watcher |
145
-
146
- ### Project & Dev
147
-
148
- | Tool | Description |
149
- |------|-------------|
150
- | `mandu_init` | Initialize new Mandu project (init + optional install) |
151
- | `mandu_dev_start` | Start dev server (bun run dev) |
152
- | `mandu_dev_stop` | Stop dev server |
153
-
154
- ### Hydration & Build
155
-
156
- | Tool | Description |
157
- |------|-------------|
158
- | `mandu_build` | Build client bundles |
159
- | `mandu_build_status` | Get bundle statistics |
160
- | `mandu_list_islands` | List routes with hydration |
161
- | `mandu_set_hydration` | Configure hydration strategy |
162
- | `mandu_add_client_slot` | Create client slot for route |
163
-
164
- ### History
165
-
166
- | Tool | Description |
167
- |------|-------------|
168
- | `mandu_list_changes` | View change history |
169
- | `mandu_prune_history` | Clean old snapshots |
170
-
171
- ---
172
-
173
- ## Resources
174
-
175
- | URI | Description |
176
- |-----|-------------|
177
- | `mandu://spec/manifest` | Current routes.manifest.json |
178
- | `mandu://spec/lock` | Current spec.lock.json with hash |
179
- | `mandu://generated/map` | Generated files mapping |
180
- | `mandu://transaction/active` | Active transaction state |
181
- | `mandu://slots/{routeId}` | Slot file content by route ID |
182
- | `mandu://watch/warnings` | Recent architecture violation warnings |
183
- | `mandu://watch/status` | Watcher status (active, uptime, count) |
184
-
185
- ---
186
-
187
- ## Real-Time Notifications
188
-
189
- When `mandu_watch_start` is active, the agent receives real-time push notifications for architecture violations:
190
-
191
- ```json
192
- {
193
- "jsonrpc": "2.0",
194
- "method": "notifications/message",
195
- "params": {
196
- "level": "warning",
197
- "logger": "mandu-watch",
198
- "data": {
199
- "type": "watch_warning",
200
- "ruleId": "GENERATED_DIRECT_EDIT",
201
- "file": "apps/server/generated/routes/home.route.ts",
202
- "message": "Generated file was directly modified",
203
- "timestamp": "2026-02-02T10:15:00.000Z"
204
- }
205
- }
206
- }
207
- ```
208
-
209
- ### Watched Rules
210
-
211
- | Rule | Description |
212
- |------|-------------|
213
- | `GENERATED_DIRECT_EDIT` | Manual edits to generated files |
214
- | `WRONG_SLOT_LOCATION` | Slot files outside `spec/slots/` |
215
- | `SLOT_NAMING` | Slot files not ending with `.slot.ts` |
216
- | `CONTRACT_NAMING` | Contract files not ending with `.contract.ts` |
217
- | `FORBIDDEN_IMPORT` | Dangerous imports in generated files |
218
-
219
- ---
220
-
221
- ## Activity Monitor (JSON Schema)
222
-
223
- The MCP server writes activity logs to `.mandu/activity.log` (pretty) or `.mandu/activity.jsonl` (JSON).
224
- JSON lines follow a stable schema with `schemaVersion`:
225
-
226
- ```json
227
- {
228
- "schemaVersion": "1.0",
229
- "ts": "2026-02-02T12:34:56.789Z",
230
- "type": "tool.call",
231
- "severity": "info",
232
- "source": "tool",
233
- "message": "",
234
- "actionRequired": false,
235
- "fingerprint": "tool:call:mandu_guard_check",
236
- "count": 1,
237
- "data": {
238
- "tool": "mandu_guard_check",
239
- "tag": "GUARD",
240
- "args": {}
241
- }
242
- }
243
- ```
244
-
245
- Common `type` values: `tool.call`, `tool.result`, `tool.error`, `watch.warning`, `guard.summary`, `guard.violation`, `routes.change`, `system.event`, `monitor.summary`.
246
-
247
- Default config is auto-created at `.mandu/monitor.config.json` on first run.
248
-
249
- ---
250
-
251
- ## Agent Workflow Examples
252
-
253
- ### Adding a New API Route
254
-
255
- ```
256
- Agent:
257
- 1. mandu_begin({ message: "Add users API" })
258
- → Creates snapshot
259
-
260
- 2. mandu_check_location({ path: "spec/slots/users.slot.ts" })
261
- → Validates location is allowed
262
-
263
- 3. mandu_add_route({
264
- id: "users-list",
265
- pattern: "/api/users",
266
- kind: "api",
267
- methods: ["GET", "POST"],
268
- slotModule: "spec/slots/users.slot.ts"
269
- })
270
- → Adds route to manifest
271
-
272
- 4. mandu_generate()
273
- → Creates route handlers
274
-
275
- 5. mandu_write_slot({
276
- routeId: "users-list",
277
- content: "...",
278
- autoCorrect: true
279
- })
280
- → Writes business logic
281
-
282
- 6. mandu_guard_check()
283
- → Validates architecture
284
-
285
- 7. mandu_commit()
286
- → Finalizes changes
287
- ```
288
-
289
- ### Checking Before Writing
290
-
291
- ```
292
- Agent:
293
- 1. mandu_get_architecture()
294
- → Gets folder rules, import rules, naming rules
295
-
296
- 2. mandu_check_location({ path: "src/features/user/api.ts" })
297
- → Checks if location is valid
298
-
299
- 3. mandu_check_import({
300
- sourceFile: "src/features/user/api.ts",
301
- imports: ["../../entities/product"]
302
- })
303
- → Checks if imports are allowed
304
-
305
- 4. Proceed with writing if all checks pass
306
- ```
307
-
308
- ### Monitoring Architecture
309
-
310
- ```
311
- Agent:
312
- 1. mandu_watch_start()
313
- → Starts watching with notifications
314
-
315
- 2. (Agent receives real-time warnings)
316
-
317
- 3. mandu_watch_status()
318
- → Gets current status and recent warnings
319
-
320
- 4. mandu_doctor()
321
- → Analyzes violations and suggests fixes
322
-
323
- 5. mandu_watch_stop()
324
- → Stops watching
325
- ```
326
-
327
- ---
328
-
329
- ## Architecture Integration
330
-
331
- The MCP server integrates with Mandu Guard to enforce architecture rules:
332
-
333
- ```
334
- ┌─────────────────────────────────────────────────────────────┐
335
- │ AI Agent (Claude) │
336
- ├─────────────────────────────────────────────────────────────┤
337
- │ │
338
- │ Before writing code: │
339
- │ 1. mandu_get_architecture() → Get rules │
340
- │ 2. mandu_check_location() → Validate placement │
341
- │ 3. mandu_check_import() → Validate dependencies │
342
- │ │
343
- │ While writing: │
344
- │ - mandu_watch_start() → Real-time notifications │
345
- │ │
346
- │ After writing: │
347
- │ - mandu_guard_check() → Full validation │
348
- │ - mandu_doctor() → Get fix suggestions │
349
- │ │
350
- └─────────────────────────────────────────────────────────────┘
351
- ```
352
-
353
- ---
354
-
355
- ## Requirements
356
-
357
- - Bun >= 1.0.0
358
- - @mandujs/core >= 0.9.25
359
-
360
- ## Related Packages
361
-
362
- - [@mandujs/core](https://www.npmjs.com/package/@mandujs/core) - Core runtime
363
- - [@mandujs/cli](https://www.npmjs.com/package/@mandujs/cli) - CLI tool
364
-
365
- ## License
366
-
367
- MIT
1
+ <p align="center">
2
+ <img src="https://raw.githubusercontent.com/konamgil/mandu/main/mandu_only_simbol.png" alt="Mandu" width="200" />
3
+ </p>
4
+
5
+ <h1 align="center">@mandujs/mcp</h1>
6
+
7
+ <p align="center">
8
+ <strong>Mandu MCP Server</strong><br/>
9
+ Model Context Protocol server for AI agent integration
10
+ </p>
11
+
12
+ <p align="center">
13
+ English | <a href="./README.ko.md"><strong>한국어</strong></a>
14
+ </p>
15
+
16
+ ## What is MCP?
17
+
18
+ MCP (Model Context Protocol) enables AI agents to directly interact with the Mandu framework. Instead of generating code blindly, agents can:
19
+
20
+ - Query current project structure
21
+ - Add/modify routes with validation
22
+ - Write business logic with auto-correction
23
+ - Check architecture rules before making changes
24
+ - Receive real-time violation notifications
25
+
26
+ ## Setup
27
+
28
+ ### Claude Code / Claude Desktop
29
+
30
+ Add to your MCP configuration (`.mcp.json` or `.claude.json`):
31
+
32
+ ```json
33
+ {
34
+ "mcpServers": {
35
+ "mandu": {
36
+ "command": "bunx",
37
+ "args": ["@mandujs/mcp"],
38
+ "cwd": "/path/to/your/project"
39
+ }
40
+ }
41
+ }
42
+ ```
43
+
44
+ ### Direct Execution
45
+
46
+ ```bash
47
+ cd /path/to/project
48
+ bunx @mandujs/mcp
49
+ ```
50
+
51
+ ### Global Mode
52
+
53
+ Run MCP without project auto-detection (use current directory):
54
+
55
+ ```bash
56
+ bunx @mandujs/mcp --global
57
+ ```
58
+
59
+ Optional: target a specific root directory:
60
+
61
+ ```bash
62
+ bunx @mandujs/mcp --root /path/to/project
63
+ ```
64
+
65
+ ---
66
+
67
+ ## Tools (35+)
68
+
69
+ ### Spec Management
70
+
71
+ | Tool | Description |
72
+ |------|-------------|
73
+ | `mandu_list_routes` | List all routes with details |
74
+ | `mandu_get_route` | Get specific route by ID |
75
+ | `mandu_add_route` | Add new route to manifest |
76
+ | `mandu_update_route` | Modify existing route |
77
+ | `mandu_delete_route` | Remove route from manifest |
78
+ | `mandu_validate_spec` | Validate manifest schema |
79
+
80
+ ### Code Generation
81
+
82
+ | Tool | Description |
83
+ |------|-------------|
84
+ | `mandu_generate` | Generate code from manifest |
85
+
86
+ ### Transaction Management
87
+
88
+ | Tool | Description |
89
+ |------|-------------|
90
+ | `mandu_begin` | Start transaction with snapshot |
91
+ | `mandu_commit` | Finalize changes |
92
+ | `mandu_rollback` | Restore from snapshot |
93
+ | `mandu_tx_status` | Get transaction state |
94
+
95
+ ### Slot Management
96
+
97
+ | Tool | Description |
98
+ |------|-------------|
99
+ | `mandu_read_slot` | Read slot file content |
100
+ | `mandu_write_slot` | Write slot file (with auto-correction) |
101
+ | `mandu_validate_slot` | Validate slot syntax |
102
+
103
+ ### Guard & Architecture
104
+
105
+ | Tool | Description |
106
+ |------|-------------|
107
+ | `mandu_guard_check` | Run all guard checks |
108
+ | `mandu_guard_heal` | Self-Healing Guard - detect + auto-fix suggestions |
109
+ | `mandu_explain_rule` | Explain architecture rule with examples |
110
+ | `mandu_check_location` | Validate file location before creating |
111
+ | `mandu_check_import` | Validate imports against architecture rules |
112
+ | `mandu_get_architecture` | Get project architecture rules |
113
+
114
+ ### Decision Memory (RFC-001) 🆕
115
+
116
+ | Tool | Description |
117
+ |------|-------------|
118
+ | `mandu_search_decisions` | Search ADRs by tags or status |
119
+ | `mandu_save_decision` | Save new architecture decision |
120
+ | `mandu_check_consistency` | Check decision-implementation consistency |
121
+
122
+ ### Semantic Slots (RFC-001) 🆕
123
+
124
+ | Tool | Description |
125
+ |------|-------------|
126
+ | `mandu_validate_slot` | Validate slot against constraints |
127
+ | `mandu_validate_slots` | Batch validate multiple slots |
128
+
129
+ ### Architecture Negotiation (RFC-001) 🆕
130
+
131
+ | Tool | Description |
132
+ |------|-------------|
133
+ | `mandu_negotiate` | AI-Framework negotiation dialog |
134
+ | `mandu_generate_scaffold` | Generate structure scaffold |
135
+ | `mandu_analyze_structure` | Analyze existing project structure |
136
+
137
+ ### Brain & Monitoring
138
+
139
+ | Tool | Description |
140
+ |------|-------------|
141
+ | `mandu_doctor` | Analyze failures + suggest patches |
142
+ | `mandu_watch_start` | Start file watcher with notifications |
143
+ | `mandu_watch_status` | Get watcher status |
144
+ | `mandu_watch_stop` | Stop file watcher |
145
+
146
+ ### Project & Dev
147
+
148
+ | Tool | Description |
149
+ |------|-------------|
150
+ | `mandu_init` | Initialize new Mandu project (init + optional install) |
151
+ | `mandu_dev_start` | Start dev server (bun run dev) |
152
+ | `mandu_dev_stop` | Stop dev server |
153
+
154
+ ### Hydration & Build
155
+
156
+ | Tool | Description |
157
+ |------|-------------|
158
+ | `mandu_build` | Build client bundles |
159
+ | `mandu_build_status` | Get bundle statistics |
160
+ | `mandu_list_islands` | List routes with hydration |
161
+ | `mandu_set_hydration` | Configure hydration strategy |
162
+ | `mandu_add_client_slot` | Create client slot for route |
163
+
164
+ ### History
165
+
166
+ | Tool | Description |
167
+ |------|-------------|
168
+ | `mandu_list_changes` | View change history |
169
+ | `mandu_prune_history` | Clean old snapshots |
170
+
171
+ ---
172
+
173
+ ## Resources
174
+
175
+ | URI | Description |
176
+ |-----|-------------|
177
+ | `mandu://spec/manifest` | Current routes.manifest.json |
178
+ | `mandu://spec/lock` | Current spec.lock.json with hash |
179
+ | `mandu://generated/map` | Generated files mapping |
180
+ | `mandu://transaction/active` | Active transaction state |
181
+ | `mandu://slots/{routeId}` | Slot file content by route ID |
182
+ | `mandu://watch/warnings` | Recent architecture violation warnings |
183
+ | `mandu://watch/status` | Watcher status (active, uptime, count) |
184
+
185
+ ---
186
+
187
+ ## Real-Time Notifications
188
+
189
+ When `mandu_watch_start` is active, the agent receives real-time push notifications for architecture violations:
190
+
191
+ ```json
192
+ {
193
+ "jsonrpc": "2.0",
194
+ "method": "notifications/message",
195
+ "params": {
196
+ "level": "warning",
197
+ "logger": "mandu-watch",
198
+ "data": {
199
+ "type": "watch_warning",
200
+ "ruleId": "GENERATED_DIRECT_EDIT",
201
+ "file": "apps/server/generated/routes/home.route.ts",
202
+ "message": "Generated file was directly modified",
203
+ "timestamp": "2026-02-02T10:15:00.000Z"
204
+ }
205
+ }
206
+ }
207
+ ```
208
+
209
+ ### Watched Rules
210
+
211
+ | Rule | Description |
212
+ |------|-------------|
213
+ | `GENERATED_DIRECT_EDIT` | Manual edits to generated files |
214
+ | `WRONG_SLOT_LOCATION` | Slot files outside `spec/slots/` |
215
+ | `SLOT_NAMING` | Slot files not ending with `.slot.ts` |
216
+ | `CONTRACT_NAMING` | Contract files not ending with `.contract.ts` |
217
+ | `FORBIDDEN_IMPORT` | Dangerous imports in generated files |
218
+
219
+ ---
220
+
221
+ ## Activity Monitor (JSON Schema)
222
+
223
+ The MCP server writes activity logs to `.mandu/activity.log` (pretty) or `.mandu/activity.jsonl` (JSON).
224
+ JSON lines follow a stable schema with `schemaVersion`:
225
+
226
+ ```json
227
+ {
228
+ "schemaVersion": "1.0",
229
+ "ts": "2026-02-02T12:34:56.789Z",
230
+ "type": "tool.call",
231
+ "severity": "info",
232
+ "source": "tool",
233
+ "message": "",
234
+ "actionRequired": false,
235
+ "fingerprint": "tool:call:mandu_guard_check",
236
+ "count": 1,
237
+ "data": {
238
+ "tool": "mandu_guard_check",
239
+ "tag": "GUARD",
240
+ "args": {}
241
+ }
242
+ }
243
+ ```
244
+
245
+ Common `type` values: `tool.call`, `tool.result`, `tool.error`, `watch.warning`, `guard.summary`, `guard.violation`, `routes.change`, `system.event`, `monitor.summary`.
246
+
247
+ Default config is auto-created at `.mandu/monitor.config.json` on first run.
248
+
249
+ ---
250
+
251
+ ## Agent Workflow Examples
252
+
253
+ ### Adding a New API Route
254
+
255
+ ```
256
+ Agent:
257
+ 1. mandu_begin({ message: "Add users API" })
258
+ → Creates snapshot
259
+
260
+ 2. mandu_check_location({ path: "spec/slots/users.slot.ts" })
261
+ → Validates location is allowed
262
+
263
+ 3. mandu_add_route({
264
+ id: "users-list",
265
+ pattern: "/api/users",
266
+ kind: "api",
267
+ methods: ["GET", "POST"],
268
+ slotModule: "spec/slots/users.slot.ts"
269
+ })
270
+ → Adds route to manifest
271
+
272
+ 4. mandu_generate()
273
+ → Creates route handlers
274
+
275
+ 5. mandu_write_slot({
276
+ routeId: "users-list",
277
+ content: "...",
278
+ autoCorrect: true
279
+ })
280
+ → Writes business logic
281
+
282
+ 6. mandu_guard_check()
283
+ → Validates architecture
284
+
285
+ 7. mandu_commit()
286
+ → Finalizes changes
287
+ ```
288
+
289
+ ### Checking Before Writing
290
+
291
+ ```
292
+ Agent:
293
+ 1. mandu_get_architecture()
294
+ → Gets folder rules, import rules, naming rules
295
+
296
+ 2. mandu_check_location({ path: "src/features/user/api.ts" })
297
+ → Checks if location is valid
298
+
299
+ 3. mandu_check_import({
300
+ sourceFile: "src/features/user/api.ts",
301
+ imports: ["../../entities/product"]
302
+ })
303
+ → Checks if imports are allowed
304
+
305
+ 4. Proceed with writing if all checks pass
306
+ ```
307
+
308
+ ### Monitoring Architecture
309
+
310
+ ```
311
+ Agent:
312
+ 1. mandu_watch_start()
313
+ → Starts watching with notifications
314
+
315
+ 2. (Agent receives real-time warnings)
316
+
317
+ 3. mandu_watch_status()
318
+ → Gets current status and recent warnings
319
+
320
+ 4. mandu_doctor()
321
+ → Analyzes violations and suggests fixes
322
+
323
+ 5. mandu_watch_stop()
324
+ → Stops watching
325
+ ```
326
+
327
+ ---
328
+
329
+ ## Architecture Integration
330
+
331
+ The MCP server integrates with Mandu Guard to enforce architecture rules:
332
+
333
+ ```
334
+ ┌─────────────────────────────────────────────────────────────┐
335
+ │ AI Agent (Claude) │
336
+ ├─────────────────────────────────────────────────────────────┤
337
+ │ │
338
+ │ Before writing code: │
339
+ │ 1. mandu_get_architecture() → Get rules │
340
+ │ 2. mandu_check_location() → Validate placement │
341
+ │ 3. mandu_check_import() → Validate dependencies │
342
+ │ │
343
+ │ While writing: │
344
+ │ - mandu_watch_start() → Real-time notifications │
345
+ │ │
346
+ │ After writing: │
347
+ │ - mandu_guard_check() → Full validation │
348
+ │ - mandu_doctor() → Get fix suggestions │
349
+ │ │
350
+ └─────────────────────────────────────────────────────────────┘
351
+ ```
352
+
353
+ ---
354
+
355
+ ## Requirements
356
+
357
+ - Bun >= 1.0.0
358
+ - @mandujs/core >= 0.9.25
359
+
360
+ ## Related Packages
361
+
362
+ - [@mandujs/core](https://www.npmjs.com/package/@mandujs/core) - Core runtime
363
+ - [@mandujs/cli](https://www.npmjs.com/package/@mandujs/cli) - CLI tool
364
+
365
+ ## License
366
+
367
+ MIT