@@ -4,23 +4,34 @@ An MCP (Model Context Protocol) server that provides AI-powered tooling for the
4
4
5
5
## Complete Feature Matrix
6
6
7
- | ** Category** | ** Tool** | ** Capability** | ** Status** |
8
- | ------------------ | -------------------------- | ------------------------------------------------ | ---------- |
9
- | ** Discovery** | ` list_packages ` | Scan all widgets with metadata | ✅ |
10
- | | ` inspect_widget ` | Deep widget analysis with XML/TS parsing | ✅ |
11
- | ** Build/QA** | ` verify_manifest_versions ` | Sync validation using automation utils | ✅ |
12
- | | ` build_widget ` | Interactive destination + smart script selection | ✅ |
13
- | | ` run_tests ` | Unit/e2e test execution | ✅ |
14
- | | ` create_translation ` | Turbo-powered i18n generation | ✅ |
15
- | ** Safety** | Guardrails | Path/command/file validation | ✅ |
16
- | | Error handling | Structured responses with codes | ✅ |
17
- | ** Diff Engine** | ` preview_changes ` | Multi-file unified diff preview | ✅ |
18
- | | ` apply_changes ` | Atomic apply with backup/rollback | ✅ |
19
- | | ` rollback_changes ` | Undo with rollback tokens | ✅ |
20
- | ** Property Magic** | ` add_property ` | ** FULL** XML→TS→Runtime integration | ✅ |
21
- | | ` rename_property ` | Cross-file property renaming | ✅ |
22
- | ** Health** | ` health ` | Server health check | ✅ |
23
- | | ` version ` | Version info with optional repo path | ✅ |
7
+ | ** Category** | ** Tool** | ** Capability** | ** Status** |
8
+ | ------------------ | ----------------------------- | ------------------------------------------------ | ---------- |
9
+ | ** Discovery** | ` list_packages ` | Scan all widgets with metadata | ✅ |
10
+ | | ` inspect_widget ` | Deep widget analysis with XML/TS parsing | ✅ |
11
+ | ** Build/QA** | ` verify_manifest_versions ` | Sync validation using automation utils | ✅ |
12
+ | | ` build_widget ` | Interactive destination + smart script selection | ✅ |
13
+ | | ` run_tests ` | Unit/e2e test execution | ✅ |
14
+ | | ` create_translation ` | Turbo-powered i18n generation | ✅ |
15
+ | ** Safety** | Guardrails | Path/command/file validation | ✅ |
16
+ | | Error handling | Structured responses with codes | ✅ |
17
+ | ** Diff Engine** | ` preview_changes ` | Multi-file unified diff preview | ✅ |
18
+ | | ` apply_changes ` | Atomic apply with backup/rollback | ✅ |
19
+ | | ` rollback_changes ` | Undo with rollback tokens | ✅ |
20
+ | ** Property Magic** | ` add_property ` | ** FULL** XML→TS→Runtime integration | ✅ |
21
+ | | ` rename_property ` | Cross-file property renaming | ✅ |
22
+ | ** Sampling API** | Widget Resources | Context-aware widget code access | ✅ |
23
+ | | Overview Samples | Complete widget structure and config | ✅ |
24
+ | | Properties Samples | Focused property definitions | ✅ |
25
+ | | Runtime Samples | Component implementation details | ✅ |
26
+ | ** Prompts API** | ` add-widget-property ` | Guided workflow for adding properties | ✅ |
27
+ | | ` build-deploy-widget ` | Step-by-step build and deployment | ✅ |
28
+ | | ` debug-widget-issue ` | Systematic debugging assistance | ✅ |
29
+ | | ` rename-widget-property ` | Safe property renaming workflow | ✅ |
30
+ | | ` create-widget-from-template ` | Scaffold new widgets from existing ones | ✅ |
31
+ | | ` analyze-widget-performance ` | Performance optimization guidance | ✅ |
32
+ | | ` migrate-widget-version ` | Version migration assistance | ✅ |
33
+ | ** Health** | ` health ` | Server health check | ✅ |
34
+ | | ` version ` | Version info with optional repo path | ✅ |
24
35
25
36
## Key Features
26
37
@@ -30,6 +41,21 @@ An MCP (Model Context Protocol) server that provides AI-powered tooling for the
30
41
- ** Deep widget inspection** including XML manifests, TypeScript interfaces, runtime files
31
42
- ** Dependency analysis** and build script detection
32
43
44
+ ### MCP Sampling API (Context Awareness)
45
+
46
+ - ** Widget Resources** - AI can "preview" widget code before making changes
47
+ - ** Overview Samples** - Complete widget context including XML, TypeScript, and config
48
+ - ** Properties Samples** - Focused view of widget property definitions
49
+ - ** Runtime Samples** - Component implementation with hooks and dependencies
50
+ - ** Think of it as** : "Let the AI look under the hood before fixing things"
51
+
52
+ ### MCP Prompts API (Guided Workflows)
53
+
54
+ - ** 7 Pre-built Workflows** - Step-by-step recipes for common tasks
55
+ - ** Smart Guidance** - AI follows structured checklists instead of guessing
56
+ - ** Error Prevention** - Reduces mistakes by following proven patterns
57
+ - ** Think of it as** : "IKEA instructions for widget development"
58
+
33
59
### Property Manipulation Revolution
34
60
35
61
- ** ` add_property ` ** : Complete integration across Widget XML → TypeScript → Runtime
@@ -139,6 +165,13 @@ pnpm dev
139
165
140
166
With this MCP server, you can ask in natural language and it will intelligently use the right tools:
141
167
168
+ # ### Using Prompts (Guided Workflows)
169
+
170
+ - _" Help me add a new property to the switch widget" _ → Uses ` add-widget-property` prompt
171
+ - _" I need to debug a build issue with gallery-web" _ → Uses ` debug-widget-issue` prompt
172
+ - _" Walk me through building and deploying the datagrid widget" _ → Uses ` build-deploy-widget` prompt
173
+ - _" Guide me through migrating badge-web to Mendix 10" _ → Uses ` migrate-widget-version` prompt
174
+
142
175
# ### Property Manipulation
143
176
144
177
- _" Add a 'placeholder' text property to the text input widget" _
@@ -170,6 +203,38 @@ With this MCP server, you can ask in natural language and it will intelligently
170
203
171
204
# ## Direct Tool Usage
172
205
206
+ # ### Prompts (Guided Workflows)
207
+
208
+ ` ` ` javascript
209
+ // Use a guided workflow for adding a property
210
+ prompt: " add-widget-property"
211
+ arguments: {
212
+ widgetName: " switch-web" ,
213
+ propertyType: " boolean" ,
214
+ propertyKey: " disabled"
215
+ }
216
+ // Returns step-by-step instructions for the AI to follow
217
+
218
+ // Debug a widget issue systematically
219
+ prompt: " debug-widget-issue"
220
+ arguments: {
221
+ widgetName: " gallery-web" ,
222
+ issueType: " build" ,
223
+ errorMessage: " Module not found: '@mendix/widget-plugin-platform'"
224
+ }
225
+ ` ` `
226
+
227
+ # ### Sampling (Context Access)
228
+
229
+ ` ` ` javascript
230
+ // Access widget context via resources
231
+ // The AI can now request these resources to understand widget structure:
232
+ -" mendix-widget://switch-web/overview" - // Full widget context
233
+ " mendix-widget://switch-web/properties" - // Property definitions
234
+ " mendix-widget://switch-web/runtime" - // Component implementation
235
+ " mendix-widget://repository/list" ; // All widgets overview
236
+ ` ` `
237
+
173
238
# ### Discovery
174
239
175
240
` ` ` javascript
@@ -280,6 +345,8 @@ create_translation({
280
345
- ** Diff Engine** : Unified diff generation with atomic apply/rollback
281
346
- ** Property Engine** : Full-stack XML→TypeScript→Runtime integration
282
347
- ** Discovery System** : Intelligent package scanning with metadata extraction
348
+ - ** Sampling Module** : Context-aware widget code access via MCP Resources API
349
+ - ** Prompts Module** : Guided workflow templates for complex operations
283
350
284
351
# ## Integration Points
285
352
@@ -333,6 +400,20 @@ create_translation({
333
400
- ** Performance analysis** tools for widget optimization
334
401
- ** Dependency management** with automated updates
335
402
403
+ # # Project Structure
404
+
405
+ ` ` `
406
+ src/
407
+ ├── index.ts # Main MCP server entry point
408
+ ├── sampling.ts # Widget context sampling functionality
409
+ ├── prompts.ts # Guided workflow templates
410
+ ├── diff-engine.ts # Change management and preview
411
+ ├── property-engine.ts # Property manipulation logic
412
+ ├── guardrails.ts # Security and validation
413
+ ├── helpers.ts # Generic utilities
414
+ └── types.ts # TypeScript definitions
415
+ ` ` `
416
+
336
417
# # Development
337
418
338
419
` ` ` bash
0 commit comments