mcp-consultant-tools 3.1.0 → 5.0.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.
package/README.md CHANGED
@@ -5,12 +5,26 @@ A Model Context Protocol (MCP) server providing intelligent access to PowerPlatf
5
5
  ## Overview
6
6
 
7
7
  This MCP server enables AI assistants to:
8
- - **PowerPlatform/Dataverse**: Explore entity metadata, query records, inspect plugins, analyze workflows and flows
9
- - **Azure DevOps**: Search wikis, manage work items, execute WIQL queries
10
- - **Figma**: Extract design data in simplified, AI-friendly format
8
+ - **PowerPlatform/Dataverse** (70+ tools):
9
+ - **READ**: Explore entity metadata, query records, inspect plugins, analyze workflows and flows
10
+ - **WRITE** *(Optional, Feature-Flagged)*:
11
+ - Entities & attributes (all 11 user-creatable types)
12
+ - Global option sets, forms, views
13
+ - Business rules, web resources
14
+ - Solutions, publishers, import/export
15
+ - Publishing & validation
16
+ - **Azure DevOps** (12 tools): Search wikis, manage work items, execute WIQL queries
17
+ - **Figma** (2 tools): Extract design data in simplified, AI-friendly format
11
18
 
12
19
  All integrations are **optional** - configure only the services you need.
13
20
 
21
+ **Total: 86+ MCP tools** providing comprehensive access to your development lifecycle.
22
+
23
+ ## Known limitations
24
+ - Cannot create Model-Driven-Apps
25
+ - Cannot add Customer fields
26
+ - Adds icon to solution, but does not update the table correctly. Icon name: 'Icon for {table name}'
27
+
14
28
  ## Quick Start
15
29
 
16
30
  ### Installation
@@ -44,12 +58,20 @@ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS)
44
58
  "POWERPLATFORM_CLIENT_ID": "your-client-id",
45
59
  "POWERPLATFORM_CLIENT_SECRET": "your-client-secret",
46
60
  "POWERPLATFORM_TENANT_ID": "your-tenant-id",
61
+ "POWERPLATFORM_ENABLE_CUSTOMIZATION": "false",
62
+ "POWERPLATFORM_DEFAULT_SOLUTION": "",
47
63
 
48
64
  "AZUREDEVOPS_ORGANIZATION": "your-org",
49
65
  "AZUREDEVOPS_PAT": "your-pat",
50
66
  "AZUREDEVOPS_PROJECTS": "Project1,Project2",
51
-
52
- "FIGMA_API_KEY": "your-figma-token"
67
+ "AZUREDEVOPS_API_VERSION": "7.1",
68
+ "AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE": "false",
69
+ "AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE": "false",
70
+ "AZUREDEVOPS_ENABLE_WIKI_WRITE": "false",
71
+
72
+ "FIGMA_API_KEY": "your-figma-token",
73
+ "FIGMA_OAUTH_TOKEN": "",
74
+ "FIGMA_USE_OAUTH": "false"
53
75
  }
54
76
  }
55
77
  }
@@ -72,7 +94,21 @@ Create `.vscode/mcp.json` in your project:
72
94
  "POWERPLATFORM_URL": "https://yourenvironment.crm.dynamics.com",
73
95
  "POWERPLATFORM_CLIENT_ID": "your-client-id",
74
96
  "POWERPLATFORM_CLIENT_SECRET": "your-client-secret",
75
- "POWERPLATFORM_TENANT_ID": "your-tenant-id"
97
+ "POWERPLATFORM_TENANT_ID": "your-tenant-id",
98
+ "POWERPLATFORM_ENABLE_CUSTOMIZATION": "false",
99
+ "POWERPLATFORM_DEFAULT_SOLUTION": "",
100
+
101
+ "AZUREDEVOPS_ORGANIZATION": "your-org",
102
+ "AZUREDEVOPS_PAT": "your-pat",
103
+ "AZUREDEVOPS_PROJECTS": "Project1,Project2",
104
+ "AZUREDEVOPS_API_VERSION": "7.1",
105
+ "AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE": "false",
106
+ "AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE": "false",
107
+ "AZUREDEVOPS_ENABLE_WIKI_WRITE": "false",
108
+
109
+ "FIGMA_API_KEY": "your-figma-token",
110
+ "FIGMA_OAUTH_TOKEN": "",
111
+ "FIGMA_USE_OAUTH": "false"
76
112
  }
77
113
  }
78
114
  }
@@ -85,9 +121,9 @@ Reload VS Code window after saving.
85
121
 
86
122
  ## Available Tools
87
123
 
88
- ### PowerPlatform/Dataverse (15 tools)
124
+ ### PowerPlatform/Dataverse (72 tools)
89
125
 
90
- **Entity & Data:**
126
+ **Entity & Data (Read - 7 tools):**
91
127
  - `get-entity-metadata` - Get entity metadata
92
128
  - `get-entity-attributes` - Get entity fields/attributes
93
129
  - `get-entity-attribute` - Get specific attribute details
@@ -96,13 +132,84 @@ Reload VS Code window after saving.
96
132
  - `get-record` - Get a specific record
97
133
  - `query-records` - Query records with OData filters
98
134
 
99
- **Plugins:**
135
+ **Entity Management (Write - 8 tools) - Requires POWERPLATFORM_ENABLE_CUSTOMIZATION=true:**
136
+ - `create-entity` - Create new custom entity (table)
137
+ - `update-entity` - Update entity metadata
138
+ - `update-entity-icon` - Set entity icon using Fluent UI System Icons
139
+ - `delete-entity` - Delete custom entity
140
+ - `create-attribute` - Create new attribute (column) - supports all 11 user-creatable types
141
+ - `update-attribute` - Update attribute metadata
142
+ - `delete-attribute` - Delete attribute
143
+ - `create-global-optionset-attribute` - Create attribute using global option set
144
+
145
+ **Relationships (Write - 4 tools) - Requires POWERPLATFORM_ENABLE_CUSTOMIZATION=true:**
146
+ - `create-one-to-many-relationship` - Create 1:N relationship
147
+ - `create-many-to-many-relationship` - Create N:N relationship
148
+ - `update-relationship` - Update relationship metadata
149
+ - `delete-relationship` - Delete relationship
150
+
151
+ **Global Option Sets (Write - 5 tools) - Requires POWERPLATFORM_ENABLE_CUSTOMIZATION=true:**
152
+ - `update-global-optionset` - Update option set metadata
153
+ - `add-optionset-value` - Add new value to option set
154
+ - `update-optionset-value` - Update existing value
155
+ - `delete-optionset-value` - Delete value
156
+ - `reorder-optionset-values` - Reorder values
157
+
158
+ **Forms (Write - 6 tools) - Requires POWERPLATFORM_ENABLE_CUSTOMIZATION=true:**
159
+ - `create-form` - Create new form (Main, QuickCreate, QuickView, Card)
160
+ - `update-form` - Update form XML and metadata
161
+ - `delete-form` - Delete form
162
+ - `activate-form` - Activate form
163
+ - `deactivate-form` - Deactivate form
164
+ - `get-forms` - Get all forms for entity
165
+
166
+ **Views (Write - 6 tools) - Requires POWERPLATFORM_ENABLE_CUSTOMIZATION=true:**
167
+ - `create-view` - Create new view with FetchXML
168
+ - `update-view` - Update view query and layout
169
+ - `delete-view` - Delete view
170
+ - `set-default-view` - Set view as default
171
+ - `get-view-fetchxml` - Get view FetchXML
172
+ - `get-views` - Get all views for entity
173
+
174
+ **Business Rules (Read-only - 2 tools):**
175
+ - `get-business-rules` - List all business rules (for troubleshooting)
176
+ - `get-business-rule` - Get business rule definition (for troubleshooting)
177
+
178
+ **Web Resources (Write - 6 tools) - Requires POWERPLATFORM_ENABLE_CUSTOMIZATION=true:**
179
+ - `create-web-resource` - Create web resource (JS, CSS, HTML, images)
180
+ - `update-web-resource` - Update web resource content
181
+ - `delete-web-resource` - Delete web resource
182
+ - `get-web-resource` - Get web resource by ID
183
+ - `get-web-resources` - Get web resources by name pattern
184
+ - `get-webresource-dependencies` - Get web resource dependencies
185
+
186
+ **Solution Management (Write - 7 tools) - Requires POWERPLATFORM_ENABLE_CUSTOMIZATION=true:**
187
+ - `create-publisher` - Create new solution publisher
188
+ - `get-publishers` - Get all publishers
189
+ - `create-solution` - Create new solution
190
+ - `add-solution-component` - Add component to solution
191
+ - `remove-solution-component` - Remove component from solution
192
+ - `export-solution` - Export solution (managed/unmanaged)
193
+ - `import-solution` - Import solution from base64 zip
194
+
195
+ **Publishing & Validation (Write - 8 tools) - Requires POWERPLATFORM_ENABLE_CUSTOMIZATION=true:**
196
+ - `publish-customizations` - Publish all pending customizations
197
+ - `publish-entity` - Publish specific entity
198
+ - `check-dependencies` - Check component dependencies
199
+ - `check-entity-dependencies` - Check entity dependencies
200
+ - `check-delete-eligibility` - Check if component can be deleted
201
+ - `get-entity-customization-info` - Check if entity is customizable
202
+ - `validate-schema-name` - Validate schema name against rules
203
+ - `preview-unpublished-changes` - Preview unpublished customizations
204
+ - `validate-solution-integrity` - Validate solution for missing dependencies
205
+
206
+ **Plugins (Read - 4 tools):**
100
207
  - `get-plugin-assemblies` - List plugin assemblies
101
208
  - `get-plugin-assembly-complete` - Full assembly details with validation
102
209
  - `get-entity-plugin-pipeline` - Plugin execution order for entity
103
210
  - `get-plugin-trace-logs` - Query plugin execution logs
104
211
 
105
- **Workflows & Flows:**
212
+ **Workflows & Flows (Read - 5 tools):**
106
213
  - `get-flows` - List Power Automate flows
107
214
  - `get-flow-definition` - Get flow definition and logic
108
215
  - `get-flow-runs` - Get flow run history
@@ -134,7 +241,7 @@ Reload VS Code window after saving.
134
241
 
135
242
  ## Available Prompts
136
243
 
137
- The server includes **12 prompts** that provide formatted, context-rich output:
244
+ The server includes **13 prompts** that provide formatted, context-rich output:
138
245
 
139
246
  **PowerPlatform:**
140
247
  - `entity-overview` - Comprehensive entity overview
@@ -145,6 +252,7 @@ The server includes **12 prompts** that provide formatted, context-rich output:
145
252
  - `entity-plugin-pipeline-report` - Visual plugin execution pipeline
146
253
  - `flows-report` - Power Automate flows report
147
254
  - `workflows-report` - Classic workflows report
255
+ - `business-rules-report` - Business rules report (read-only)
148
256
 
149
257
  **Azure DevOps:**
150
258
  - `wiki-search-results` - Formatted wiki search results
@@ -155,7 +263,7 @@ The server includes **12 prompts** that provide formatted, context-rich output:
155
263
  ## Documentation
156
264
 
157
265
  - **[SETUP.md](SETUP.md)** - Complete setup guide with credentials, troubleshooting, and security
158
- - **[TOOLS.md](TOOLS.md)** - Full reference for all 30 tools and 12 prompts
266
+ - **[TOOLS.md](TOOLS.md)** - Full reference for all 86+ tools and 12 prompts
159
267
  - **[USAGE.md](USAGE.md)** - Examples and use cases for all integrations
160
268
  - **[CLAUDE.md](CLAUDE.md)** - Architecture details and development guide
161
269
 
@@ -220,6 +328,11 @@ All integrations are optional and can be configured independently:
220
328
  **PowerPlatform:**
221
329
  - Requires Azure AD app registration
222
330
  - Uses OAuth authentication with automatic token refresh
331
+ - **Customization tools** (optional, opt-in):
332
+ - Set `POWERPLATFORM_ENABLE_CUSTOMIZATION=true` to enable write operations
333
+ - Create entities, attributes, and publish customizations
334
+ - Specify `POWERPLATFORM_DEFAULT_SOLUTION` to auto-add customizations to a solution
335
+ - **WARNING:** These tools make permanent changes to your CRM environment. Use with caution.
223
336
 
224
337
  **Azure DevOps:**
225
338
  - Requires Personal Access Token (PAT)
@@ -163,7 +163,8 @@ export class AzureDevOpsService {
163
163
  let wikiPath = pagePath;
164
164
  if (pagePath.endsWith('.md')) {
165
165
  wikiPath = this.convertGitPathToWikiPath(pagePath);
166
- console.log(`Auto-converted git path to wiki path: ${pagePath} -> ${wikiPath}`);
166
+ // Log to stderr (not stdout) to avoid breaking MCP protocol
167
+ console.error(`Auto-converted git path to wiki path: ${pagePath} -> ${wikiPath}`);
167
168
  }
168
169
  const response = await this.makeRequest(`${project}/_apis/wiki/wikis/${wikiId}/pages?path=${encodeURIComponent(wikiPath)}&includeContent=${includeContent}&api-version=${this.apiVersion}`);
169
170
  // The API returns the page data directly (not wrapped in a 'page' property)