mcp-consultant-tools 3.0.0 → 3.1.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 (2) hide show
  1. package/README.md +190 -841
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,983 +1,332 @@
1
1
  # MCP Consultant Tools
2
2
 
3
- A Model Context Protocol (MCP) server that provides intelligent access to PowerPlatform/Dataverse entities, Azure DevOps, and Figma designs. This tool offers context-aware assistance, entity exploration, and metadata access across multiple platforms.
3
+ A Model Context Protocol (MCP) server providing intelligent access to PowerPlatform/Dataverse, Azure DevOps, and Figma through an AI-friendly interface.
4
4
 
5
- Key features:
6
- - **PowerPlatform/Dataverse**: Rich entity metadata exploration with formatted, context-aware prompts, advanced OData query support, comprehensive relationship mapping
7
- - **Azure DevOps**: Wiki search, work item management, WIQL queries, and team collaboration tools
8
- - **Figma**: Design data extraction with simplified AI-friendly format, component analysis, and style deduplication
9
- - AI-assisted query building and data modeling through AI agent
10
- - Full access to entity attributes, relationships, and global option sets
5
+ ## Overview
11
6
 
12
- ## Installation
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
13
11
 
14
- You can install and run this tool in two ways:
12
+ All integrations are **optional** - configure only the services you need.
15
13
 
16
- ### Option 1: Install globally
14
+ ## Quick Start
17
15
 
18
- ```bash
19
- npm install -g mcp-consultant-tools
20
- ```
16
+ ### Installation
21
17
 
22
- Then run it:
18
+ Run directly with npx (no installation needed):
23
19
 
24
20
  ```bash
25
- mcp-consultant-tools
21
+ npx mcp-consultant-tools@latest
26
22
  ```
27
23
 
28
- ### Option 2: Run directly with npx
29
-
30
- Run without installing:
24
+ Or install globally:
31
25
 
32
26
  ```bash
33
- npx mcp-consultant-tools
27
+ npm install -g mcp-consultant-tools
34
28
  ```
35
29
 
36
- ## Configuration
37
-
38
- This is an MCP server designed to work with MCP-compatible clients like Claude Desktop, Cursor, or Claude Code (VS Code extension).
30
+ ### Configuration
39
31
 
40
- ### Quick Start: VS Code (Claude Code) Configuration
32
+ #### Claude Desktop
41
33
 
42
- For VS Code with Claude Code extension, create a `.vscode/mcp.json` file in your repository:
34
+ Add to `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
43
35
 
44
36
  ```json
45
37
  {
46
- "servers": {
38
+ "mcpServers": {
47
39
  "mcp-consultant-tools": {
48
40
  "command": "npx",
49
- "args": ["-y", "mcp-consultant-tools"],
41
+ "args": ["-y", "mcp-consultant-tools@latest"],
50
42
  "env": {
51
43
  "POWERPLATFORM_URL": "https://yourenvironment.crm.dynamics.com",
52
- "POWERPLATFORM_CLIENT_ID": "your-azure-app-client-id",
53
- "POWERPLATFORM_CLIENT_SECRET": "your-azure-app-client-secret",
54
- "POWERPLATFORM_TENANT_ID": "your-azure-tenant-id",
55
- "AZUREDEVOPS_ORGANIZATION": "your-organization-name",
56
- "AZUREDEVOPS_PAT": "your-personal-access-token",
44
+ "POWERPLATFORM_CLIENT_ID": "your-client-id",
45
+ "POWERPLATFORM_CLIENT_SECRET": "your-client-secret",
46
+ "POWERPLATFORM_TENANT_ID": "your-tenant-id",
47
+
48
+ "AZUREDEVOPS_ORGANIZATION": "your-org",
49
+ "AZUREDEVOPS_PAT": "your-pat",
57
50
  "AZUREDEVOPS_PROJECTS": "Project1,Project2",
58
- "AZUREDEVOPS_API_VERSION": "7.1",
59
- "AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE": "true",
60
- "AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE": "false",
61
- "AZUREDEVOPS_ENABLE_WIKI_WRITE": "false",
62
- "FIGMA_API_KEY": "your-figma-personal-access-token",
63
- "FIGMA_OAUTH_TOKEN": "",
64
- "FIGMA_USE_OAUTH": "false"
51
+
52
+ "FIGMA_API_KEY": "your-figma-token"
65
53
  }
66
54
  }
67
55
  }
68
56
  }
69
57
  ```
70
58
 
71
- **After configuration:**
72
- 1. Save the `.vscode/mcp.json` file
73
- 2. Reload VS Code window
74
- 3. The MCP server will be available in Claude Code
59
+ Restart Claude Desktop after saving.
75
60
 
76
- **Note:** You can omit PowerPlatform, Azure DevOps, or Figma credentials if you only need certain integrations (see Environment Variables Reference below).
61
+ #### VS Code (Claude Code)
77
62
 
78
- ### Quick Start: Claude Desktop Configuration
79
-
80
- Add this to your Claude Desktop config file at `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows):
63
+ Create `.vscode/mcp.json` in your project:
81
64
 
82
65
  ```json
83
66
  {
84
- "mcpServers": {
67
+ "servers": {
85
68
  "mcp-consultant-tools": {
86
69
  "command": "npx",
87
- "args": ["-y", "mcp-consultant-tools"],
70
+ "args": ["-y", "mcp-consultant-tools@latest"],
88
71
  "env": {
89
72
  "POWERPLATFORM_URL": "https://yourenvironment.crm.dynamics.com",
90
- "POWERPLATFORM_CLIENT_ID": "your-azure-app-client-id",
91
- "POWERPLATFORM_CLIENT_SECRET": "your-azure-app-client-secret",
92
- "POWERPLATFORM_TENANT_ID": "your-azure-tenant-id",
93
- "AZUREDEVOPS_ORGANIZATION": "your-organization-name",
94
- "AZUREDEVOPS_PAT": "your-personal-access-token",
95
- "AZUREDEVOPS_PROJECTS": "Project1,Project2",
96
- "AZUREDEVOPS_API_VERSION": "7.1",
97
- "AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE": "true",
98
- "AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE": "false",
99
- "AZUREDEVOPS_ENABLE_WIKI_WRITE": "false",
100
- "FIGMA_API_KEY": "your-figma-personal-access-token",
101
- "FIGMA_OAUTH_TOKEN": "",
102
- "FIGMA_USE_OAUTH": "false"
73
+ "POWERPLATFORM_CLIENT_ID": "your-client-id",
74
+ "POWERPLATFORM_CLIENT_SECRET": "your-client-secret",
75
+ "POWERPLATFORM_TENANT_ID": "your-tenant-id"
103
76
  }
104
77
  }
105
78
  }
106
79
  }
107
80
  ```
108
81
 
109
- ### Local Development Configuration
110
-
111
- For local development and testing, you can run the server directly from your cloned repository using Node.js. Add this to your Claude Desktop config:
112
-
113
- ```json
114
- {
115
- "mcpServers": {
116
- "mcp-consultant-tools-dev": {
117
- "command": "node",
118
- "args": ["/absolute/path/to/mcp-consultant-tools/build/index.js"],
119
- "env": {
120
- "POWERPLATFORM_URL": "https://yourenvironment.crm.dynamics.com",
121
- "POWERPLATFORM_CLIENT_ID": "your-azure-app-client-id",
122
- "POWERPLATFORM_CLIENT_SECRET": "your-azure-app-client-secret",
123
- "POWERPLATFORM_TENANT_ID": "your-azure-tenant-id",
124
- "AZUREDEVOPS_ORGANIZATION": "your-organization-name",
125
- "AZUREDEVOPS_PAT": "your-personal-access-token",
126
- "AZUREDEVOPS_PROJECTS": "Project1,Project2",
127
- "AZUREDEVOPS_API_VERSION": "7.1",
128
- "AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE": "true",
129
- "AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE": "false",
130
- "AZUREDEVOPS_ENABLE_WIKI_WRITE": "false",
131
- "FIGMA_API_KEY": "your-figma-personal-access-token",
132
- "FIGMA_OAUTH_TOKEN": "",
133
- "FIGMA_USE_OAUTH": "false"
134
- }
135
- }
136
- }
137
- }
138
- ```
139
-
140
- **Important:** Replace `/absolute/path/to/mcp-consultant-tools` with the actual path to your cloned repository (e.g., `/Users/yourname/Repo/mcp-consultant-tools`).
141
-
142
- ### Environment Variables Reference
143
-
144
- **Note:** All integrations (PowerPlatform, Azure DevOps, Figma) are optional. You can configure only the services you need:
145
- - PowerPlatform only: Set `POWERPLATFORM_*` variables
146
- - Azure DevOps only: Set `AZUREDEVOPS_*` variables
147
- - Figma only: Set `FIGMA_*` variables
148
- - Any combination: Set only the variables you need
149
-
150
- **PowerPlatform/Dataverse (Optional):**
151
- - `POWERPLATFORM_URL`: Your PowerPlatform environment URL
152
- - `POWERPLATFORM_CLIENT_ID`: Azure AD app registration client ID
153
- - `POWERPLATFORM_CLIENT_SECRET`: Azure AD app registration client secret
154
- - `POWERPLATFORM_TENANT_ID`: Azure tenant ID
155
-
156
- **Azure DevOps (Optional):**
157
- - `AZUREDEVOPS_ORGANIZATION`: Your Azure DevOps organization name
158
- - `AZUREDEVOPS_PAT`: Personal Access Token with appropriate scopes
159
- - `AZUREDEVOPS_PROJECTS`: Comma-separated list of allowed projects
160
- - `AZUREDEVOPS_API_VERSION`: API version (default: "7.1")
161
- - `AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE`: Enable work item write operations (default: "false")
162
- - `AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE`: Enable work item delete operations (default: "false")
163
- - `AZUREDEVOPS_ENABLE_WIKI_WRITE`: Enable wiki write operations (default: "false")
164
-
165
- **Figma (Optional):**
166
- - `FIGMA_API_KEY`: Figma Personal Access Token (generate at: https://www.figma.com/developers/api#authentication)
167
- - `FIGMA_OAUTH_TOKEN`: Alternative to API key for OAuth authentication
168
- - `FIGMA_USE_OAUTH`: Set to "true" if using OAuth token instead of API key (default: "false")
169
-
170
- **How to get a Figma API Key:**
171
- 1. Go to https://www.figma.com/developers/api#authentication
172
- 2. Scroll to "Personal Access Tokens"
173
- 3. Click "Get personal access token"
174
- 4. Log in to Figma
175
- 5. Generate new token and copy it to your config
176
-
177
- **After configuration:**
178
- 1. Save the config file
179
- 2. Completely restart Claude Desktop (quit and reopen)
180
- 3. The MCP server will be available in Claude Desktop
181
-
182
- ## Usage
183
-
184
- Once configured, the MCP server will expose tools for retrieving PowerPlatform entity metadata and records.
185
-
186
- ### Available Tools
187
-
188
- The server provides **30 tools** across PowerPlatform, Azure DevOps, and Figma integrations.
189
-
190
- ### PowerPlatform/Dataverse Tools
191
-
192
- #### Entity Metadata & Data Tools
193
- - `get-entity-metadata`: Get metadata about a PowerPlatform entity
194
- - `get-entity-attributes`: Get attributes/fields of a PowerPlatform entity
195
- - `get-entity-attribute`: Get a specific attribute/field of a PowerPlatform entity
196
- - `get-entity-relationships`: Get relationships for a PowerPlatform entity
197
- - `get-global-option-set`: Get a global option set definition
198
- - `get-record`: Get a specific record by entity name and ID
199
- - `query-records`: Query records using an OData filter expression
200
-
201
- #### Plugin Registration & Validation Tools
202
- - `get-plugin-assemblies`: List all plugin assemblies in the environment
203
- - `get-plugin-assembly-complete`: Get comprehensive plugin assembly information including all types, steps, images, and automatic validation
204
- - `get-entity-plugin-pipeline`: Get all plugins that execute on a specific entity, organized by message and execution order
205
- - `get-plugin-trace-logs`: Query plugin trace logs with filtering and exception parsing
206
-
207
- #### Workflow & Power Automate Flow Tools
208
- - `get-flows`: List all Power Automate cloud flows (category = 5)
209
- - `get-flow-definition`: Get complete flow definition including JSON logic from clientdata field
210
- - `get-flow-runs`: Get flow run history with status, duration, and error details
211
- - `get-workflows`: List all classic Dynamics workflows (category = 0)
212
- - `get-workflow-definition`: Get complete workflow definition including XAML and trigger configuration
213
-
214
- ### Azure DevOps Tools
215
-
216
- #### Wiki Tools
217
- - `get-wikis`: List all wikis in a project
218
- - `search-wiki-pages`: Full-text search across wiki pages with highlighting
219
- - `get-wiki-page`: Get specific wiki page content and metadata
220
- - `create-wiki-page`: Create new wiki page (requires `AZUREDEVOPS_ENABLE_WIKI_WRITE=true`)
221
- - `update-wiki-page`: Update existing wiki page (requires `AZUREDEVOPS_ENABLE_WIKI_WRITE=true`)
222
-
223
- #### Work Item Tools
224
- - `get-work-item`: Get work item by ID with full details
225
- - `query-work-items`: Execute WIQL queries to find work items
226
- - `get-work-item-comments`: Get discussion comments for a work item
227
- - `add-work-item-comment`: Add comment to work item (requires `AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true`)
228
- - `update-work-item`: Update work item fields using JSON Patch (requires `AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true`)
229
- - `create-work-item`: Create new work item (requires `AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true`)
230
- - `delete-work-item`: Delete work item (requires `AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE=true`)
231
-
232
- ### Figma Tools
233
- - `get-figma-data`: Get comprehensive Figma design data including layout, text, styles, and components. Fetches from Figma API and transforms into simplified, AI-friendly format. Can fetch entire files or specific nodes.
234
- - `download-figma-images`: Placeholder for future image download functionality (Coming in v2)
235
-
236
- ## MCP Prompts
237
-
238
- The server includes **12 prompts** that provide formatted, context-rich information across all integrations.
239
-
240
- ### Available Prompts
241
-
242
- #### Entity Prompts
243
- 1. **entity-overview**: Comprehensive overview of a PowerPlatform entity
244
- 2. **attribute-details**: Detailed information about a specific entity attribute
245
- 3. **query-template**: OData query template for an entity with example filters
246
- 4. **relationship-map**: Visual map of entity relationships
247
-
248
- #### PowerPlatform Plugin Prompts
249
- 5. **plugin-deployment-report**: Generate a comprehensive deployment report for a plugin assembly with validation warnings
250
- 6. **entity-plugin-pipeline-report**: Generate a visual execution pipeline showing all plugins for an entity in order
251
-
252
- #### PowerPlatform Workflow & Flow Prompts
253
- 7. **flows-report**: Comprehensive report of all Power Automate flows grouped by state
254
- 8. **workflows-report**: Comprehensive report of all classic Dynamics workflows grouped by state
255
-
256
- #### Azure DevOps Prompts
257
- 9. **wiki-search-results**: Search Azure DevOps wiki pages with formatted results and content snippets
258
- 10. **wiki-page-content**: Get a formatted wiki page with navigation context and sub-pages
259
- 11. **work-item-summary**: Get a comprehensive summary of a work item with details and comments
260
- 12. **work-items-query-report**: Execute a WIQL query and get results grouped by state/type
261
-
262
- ## Prompt Examples
263
-
264
- Here are some examples of how you can interact with assistant using the PowerPlatform MCP prompts:
265
-
266
- ### 1. Entity Understanding
267
-
268
- You can ask assistant about entities in natural language:
269
-
270
- ```
271
- User: "Tell me about the Account entity in our PowerPlatform environment"
272
-
273
- Response:
274
- [uses ENTITY_OVERVIEW prompt internally]
275
-
276
- Here's what I found about the Account entity:
277
- - It's a core business entity representing customers and potential customers
278
- - The primary identifier is 'accountid' and the primary name field is 'name'
279
- - Key fields include:
280
- * name (Account Name)
281
- * emailaddress1 (Email)
282
- * telephone1 (Main Phone)
283
- * revenue (Annual Revenue)
284
- - It has 42 one-to-many relationships and 8 many-to-many relationships
285
- ```
286
-
287
- ### 2. Building Queries
288
-
289
- You can ask for help constructing queries:
290
-
291
- ```
292
- User: "Help me write a query to find active accounts with revenue over $1M in California"
293
-
294
- Response:
295
- [uses QUERY_TEMPLATE prompt internally]
296
-
297
- Here's the OData query you need:
298
- accounts?$select=name,revenue,statecode,address1_stateorprovince
299
- &$filter=statecode eq 0
300
- and revenue gt 1000000
301
- and address1_stateorprovince eq 'California'
302
- &$orderby=revenue desc
303
-
304
- This query:
305
- 1. Selects relevant fields
306
- 2. Filters for active accounts (statecode eq 0)
307
- 3. Checks revenue > $1M
308
- 4. Filters for California location
309
- 5. Orders by revenue highest to lowest
310
- ```
311
-
312
- ### 3. Understanding Relationships
313
-
314
- You can explore entity relationships naturally:
315
-
316
- ```
317
- User: "How are Accounts and Contacts related in our system?"
318
-
319
- Response:
320
- [uses RELATIONSHIP_MAP prompt for both entities internally]
321
-
322
- Here are the key relationships between Accounts and Contacts:
82
+ Reload VS Code window after saving.
323
83
 
324
- 1. Primary Contact (One-to-Many):
325
- - account_primary_contact: Account (1) → Contact (N)
326
- - An account can have many contacts, but one designated as primary
84
+ **Note:** Omit credentials for integrations you don't need. See [SETUP.md](SETUP.md) for complete configuration options.
327
85
 
328
- 2. Customer Relationship:
329
- - contact_customer_accounts: Contact (N) ← Account (1)
330
- - Contacts can be associated with customer accounts
86
+ ## Available Tools
331
87
 
332
- 3. Additional Relationships:
333
- - accountleads_association: For lead tracking
334
- - account_connections: For relationship management
335
- ```
88
+ ### PowerPlatform/Dataverse (15 tools)
336
89
 
337
- ### 4. Field/Attribute Investigation
90
+ **Entity & Data:**
91
+ - `get-entity-metadata` - Get entity metadata
92
+ - `get-entity-attributes` - Get entity fields/attributes
93
+ - `get-entity-attribute` - Get specific attribute details
94
+ - `get-entity-relationships` - Get entity relationships
95
+ - `get-global-option-set` - Get option set definitions
96
+ - `get-record` - Get a specific record
97
+ - `query-records` - Query records with OData filters
338
98
 
339
- You can ask about specific fields:
99
+ **Plugins:**
100
+ - `get-plugin-assemblies` - List plugin assemblies
101
+ - `get-plugin-assembly-complete` - Full assembly details with validation
102
+ - `get-entity-plugin-pipeline` - Plugin execution order for entity
103
+ - `get-plugin-trace-logs` - Query plugin execution logs
340
104
 
341
- ```
342
- User: "What kind of field is the revenue field on Account?"
343
-
344
- Response:
345
- [uses ATTRIBUTE_DETAILS prompt internally]
346
-
347
- The revenue field on Account is:
348
- - Data Type: Money
349
- - Format: Currency
350
- - Not required
351
- - Searchable: Yes
352
- - Used for: Tracking annual revenue for the account
353
- - Can be used in advanced find and filtered views
354
- ```
105
+ **Workflows & Flows:**
106
+ - `get-flows` - List Power Automate flows
107
+ - `get-flow-definition` - Get flow definition and logic
108
+ - `get-flow-runs` - Get flow run history
109
+ - `get-workflows` - List classic workflows
110
+ - `get-workflow-definition` - Get workflow definition
355
111
 
356
- ### 5. Complex Data Modeling
112
+ ### Azure DevOps (12 tools)
357
113
 
358
- You can get help with data modeling decisions:
114
+ **Wikis:**
115
+ - `get-wikis` - List wikis in project
116
+ - `search-wiki-pages` - Full-text search across wikis
117
+ - `get-wiki-page` - Get wiki page content
118
+ - `create-wiki-page` - Create new wiki page (requires write permission)
119
+ - `update-wiki-page` - Update wiki page (requires write permission)
359
120
 
360
- ```
361
- User: "I need to design a solution for tracking product reviews. Which entities should I relate to?"
121
+ **Work Items:**
122
+ - `get-work-item` - Get work item by ID
123
+ - `query-work-items` - Execute WIQL queries
124
+ - `get-work-item-comments` - Get work item comments
125
+ - `add-work-item-comment` - Add comment (requires write permission)
126
+ - `update-work-item` - Update work item fields (requires write permission)
127
+ - `create-work-item` - Create new work item (requires write permission)
128
+ - `delete-work-item` - Delete work item (requires delete permission)
362
129
 
363
- Response:
364
- [uses multiple ENTITY_OVERVIEW and RELATIONSHIP_MAP prompts internally]
130
+ ### Figma (2 tools)
365
131
 
366
- Based on the existing data model, here's a suggested approach:
132
+ - `get-figma-data` - Get design data (layout, text, styles, components)
133
+ - `download-figma-images` - Download images (coming in v2)
367
134
 
368
- 1. Product (existing entity):
369
- - Already has relationships with:
370
- * Price lists
371
- * Product categories
372
- * Inventory units
135
+ ## Available Prompts
373
136
 
374
- 2. New Review entity should relate to:
375
- - Product (N:1) - Each review is for one product
376
- - Contact (N:1) - Reviews are written by contacts
377
- - Account (N:1) - Optional link to company if B2B review
137
+ The server includes **12 prompts** that provide formatted, context-rich output:
378
138
 
379
- Here's a sample lookup field structure...
380
- [continues with detailed implementation guidance]
381
- ```
139
+ **PowerPlatform:**
140
+ - `entity-overview` - Comprehensive entity overview
141
+ - `attribute-details` - Detailed attribute information
142
+ - `query-template` - OData query examples
143
+ - `relationship-map` - Visual relationship mapping
144
+ - `plugin-deployment-report` - Plugin validation for PR reviews
145
+ - `entity-plugin-pipeline-report` - Visual plugin execution pipeline
146
+ - `flows-report` - Power Automate flows report
147
+ - `workflows-report` - Classic workflows report
382
148
 
383
- ### 6. Debugging Assistance
149
+ **Azure DevOps:**
150
+ - `wiki-search-results` - Formatted wiki search results
151
+ - `wiki-page-content` - Formatted wiki page with navigation
152
+ - `work-item-summary` - Comprehensive work item summary
153
+ - `work-items-query-report` - Formatted WIQL query results
384
154
 
385
- You can get help troubleshooting:
155
+ ## Documentation
386
156
 
387
- ```
388
- User: "Why am I getting 'invalid property' when querying account.customertypecode?"
389
-
390
- Response:
391
- [uses ATTRIBUTE_DETAILS prompt internally]
392
-
393
- I see the issue. The field 'customertypecode' is actually named 'customertype' in your environment. Here's the correct field information:
394
- - Logical Name: customertype
395
- - Type: OptionSetValue
396
- - Valid Values:
397
- * 1 = Competitor
398
- * 2 = Consultant
399
- * 3 = Customer
400
- * 4 = Investor
401
- * 5 = Partner
402
- * 6 = Influencer
403
-
404
- Try updating your query to use 'customertype' instead of 'customertypecode'.
405
- ```
157
+ - **[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
159
+ - **[USAGE.md](USAGE.md)** - Examples and use cases for all integrations
160
+ - **[CLAUDE.md](CLAUDE.md)** - Architecture details and development guide
406
161
 
407
- These examples show how AI assistant can leverage the MCP prompts to provide context-aware, accurate assistance for PowerPlatform development tasks. The AI understands your environment's specific configuration and can help with both simple queries and complex architectural decisions.
162
+ ## Key Features
408
163
 
409
- ## Plugin Registration & Validation
164
+ ### PowerPlatform Plugin Validation
410
165
 
411
- The server includes powerful tools for plugin discovery, validation, and troubleshooting. These tools eliminate the need for the Plugin Registration Tool for most inspection tasks and enable AI-assisted PR reviews.
412
-
413
- ### Use Cases
414
-
415
- #### 1. Discover Plugin Assemblies
416
- ```javascript
417
- // List all custom (unmanaged) plugin assemblies
418
- await mcpClient.invoke("get-plugin-assemblies", {
419
- includeManaged: false
420
- });
421
- ```
422
-
423
- **Output:**
424
- ```json
425
- {
426
- "totalCount": 10,
427
- "assemblies": [
428
- {
429
- "name": "MyCompany.Plugins",
430
- "version": "1.0.0.5",
431
- "isolationMode": "Sandbox",
432
- "modifiedOn": "2024-01-15T10:30:00Z",
433
- "modifiedBy": "John Doe"
434
- }
435
- ]
436
- }
437
- ```
438
-
439
- #### 2. Validate Plugin Deployment (PR Review)
440
- ```javascript
441
- // Get comprehensive assembly info with automatic validation
442
- await mcpClient.invoke("get-plugin-assembly-complete", {
443
- assemblyName": "MyCompany.Plugins",
444
- includeDisabled: false
445
- });
446
- ```
447
-
448
- **Returns:**
449
- - Assembly metadata (version, isolation mode, last modified)
450
- - All plugin types (class names)
451
- - All registered steps with:
452
- - Stage (PreValidation/PreOperation/PostOperation)
453
- - Mode (Synchronous/Asynchronous)
454
- - Execution rank
455
- - Filtering attributes
456
- - Pre/Post images with column lists
457
- - **Automatic validation** detecting:
458
- - Missing filtering attributes (performance issue)
459
- - Missing images (potential runtime errors)
460
- - Disabled steps
461
- - Configuration issues
462
-
463
- #### 3. View Entity Plugin Pipeline
464
- ```javascript
465
- // See all plugins that run on an entity in execution order
466
- await mcpClient.invoke("get-entity-plugin-pipeline", {
467
- entityName": "account",
468
- messageFilter": "Update" // Optional: filter by message
469
- });
470
- ```
471
-
472
- **Shows:**
473
- - All plugins organized by stage and rank
474
- - Execution order
475
- - Filtering attributes per step
476
- - Images configured
477
- - Assembly versions
478
-
479
- #### 4. Troubleshoot with Trace Logs
480
- ```javascript
481
- // Query recent plugin failures
482
- await mcpClient.invoke("get-plugin-trace-logs", {
483
- entityName: "account",
484
- exceptionOnly: true,
485
- hoursBack: 24,
486
- maxRecords: 50
487
- });
488
- ```
489
-
490
- **Returns:**
491
- - Parsed exception details
492
- - Exception type and message
493
- - Stack traces
494
- - Execution duration
495
- - Correlation IDs for further investigation
496
-
497
- ### Plugin Validation for PR Reviews
498
-
499
- When reviewing plugin PRs, use the `plugin-deployment-report` prompt for a human-readable validation report:
166
+ Automatically validate plugin deployments for PR reviews:
500
167
 
501
168
  ```javascript
169
+ // Get complete validation report
502
170
  await mcpClient.callPrompt("plugin-deployment-report", {
503
171
  assemblyName: "MyCompany.Plugins"
504
172
  });
505
173
  ```
506
174
 
507
- **Sample Report:**
508
- ```markdown
509
- # Plugin Deployment Report: MyCompany.Plugins
510
-
511
- ## Assembly Information
512
- - Version: 1.0.0.5
513
- - Isolation Mode: Sandbox
514
- - Last Modified: 2024-01-15 by John Doe
175
+ Returns:
176
+ - Assembly information
177
+ - All registered steps
178
+ - **Automatic validation warnings** for missing filtering attributes, images, disabled steps
515
179
 
516
- ## Registered Steps (8 total)
180
+ ### Azure DevOps Integration
517
181
 
518
- ### Update - Account (PreOperation, Sync, Rank 10)
519
- - Plugin: MyCompany.Plugins.AccountPlugin
520
- - Status: ✓ Enabled
521
- - Filtering Attributes: name, revenue, industrycode
522
- - Images:
523
- - PreImage "Target" → Attributes: name, revenue, accountnumber
524
-
525
- ## Validation Results
526
-
527
- ✓ All steps are enabled
528
- ✓ All Update/Delete steps have filtering attributes
529
- ⚠ Warning: 2 steps without images (may need entity data)
530
-
531
- ### Potential Issues
532
- - Account.Delete step missing PreImage - code may fail at runtime
533
- ```
534
-
535
- ### Entity Pipeline Visualization
536
-
537
- View the execution pipeline for an entity with the `entity-plugin-pipeline-report` prompt:
182
+ Search documentation and manage work items:
538
183
 
539
184
  ```javascript
540
- await mcpClient.callPrompt("entity-plugin-pipeline-report", {
541
- entityName: "account",
542
- messageFilter: "Update" // Optional
543
- });
544
- ```
545
-
546
- **Sample Report:**
547
- ```markdown
548
- # Plugin Pipeline: Account Entity
549
-
550
- ## Update Message
551
-
552
- ### Stage 1: PreValidation (Synchronous)
553
- 1. [Rank 5] DataValidationPlugin.ValidateAccount
554
- - Assembly: ValidationPlugins v1.0.0
555
- - Filtering: name, accountnumber
556
-
557
- ### Stage 2: PreOperation (Synchronous)
558
- 1. [Rank 10] BusinessLogicPlugin.EnrichAccountData
559
- - Assembly: BusinessLogic v2.0.1
560
- - Filtering: revenue, industrycode
561
- - Images: PreImage
562
-
563
- ### Stage 3: PostOperation
564
- 1. [Rank 10] IntegrationPlugin.SyncToERP (Async)
565
- - Assembly: Integrations v3.1.0
566
- - Filtering: revenue
567
- ```
568
-
569
- ## Azure DevOps Integration
570
-
571
- In addition to PowerPlatform capabilities, this MCP server provides comprehensive Azure DevOps integration for accessing wikis and work items across your organization.
572
-
573
- ### Azure DevOps Configuration
574
-
575
- Set the following environment variables to enable Azure DevOps integration:
576
-
577
- ```bash
578
- # Required: Azure DevOps organization and authentication
579
- AZUREDEVOPS_ORGANIZATION=your-organization-name
580
- AZUREDEVOPS_PAT=your-personal-access-token
581
- AZUREDEVOPS_PROJECTS=Project1,Project2,Project3 # Comma-separated list of allowed projects
582
-
583
- # Optional: API version (default: 7.1)
584
- AZUREDEVOPS_API_VERSION=7.1
585
-
586
- # Optional: Feature flags to control write/delete operations (default: false for all)
587
- AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true # Enable create/update work items
588
- AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE=true # Enable delete work items
589
- AZUREDEVOPS_ENABLE_WIKI_WRITE=true # Enable create/update wiki pages
590
- ```
591
-
592
- #### Creating a Personal Access Token (PAT)
593
-
594
- 1. Go to Azure DevOps → User Settings → Personal Access Tokens
595
- 2. Click "New Token"
596
- 3. Set required scopes:
597
- - **Wiki**: `vso.wiki` (Read)
598
- - **Work Items**: `vso.work` (Read) and optionally `vso.work_write` (Read & Write)
599
- - **Search**: `vso.search` (Read - for wiki search)
600
- 4. Copy the token and set it in `AZUREDEVOPS_PAT` environment variable
601
-
602
- **Security Note**: The PAT is scoped to specific permissions and projects. For maximum security, create separate PATs for read-only vs write operations.
603
-
604
- ### Available Azure DevOps Tools
605
-
606
- #### Wiki Tools (5 tools)
607
- - `get-wikis`: List all wikis in a project
608
- - `search-wiki-pages`: Search wiki content across projects with highlighting
609
- - `get-wiki-page`: Get specific wiki page content and metadata
610
- - `create-wiki-page`: Create new wiki page (requires `AZUREDEVOPS_ENABLE_WIKI_WRITE=true`)
611
- - `update-wiki-page`: Update existing wiki page (requires `AZUREDEVOPS_ENABLE_WIKI_WRITE=true`)
612
-
613
- #### Work Item Tools (7 tools)
614
- - `get-work-item`: Get work item by ID with full details
615
- - `query-work-items`: Execute WIQL queries to find work items
616
- - `get-work-item-comments`: Get discussion comments for a work item
617
- - `add-work-item-comment`: Add comment to work item (requires `AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true`)
618
- - `update-work-item`: Update work item fields using JSON Patch (requires `AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true`)
619
- - `create-work-item`: Create new work item (requires `AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true`)
620
- - `delete-work-item`: Delete work item (requires `AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE=true`)
621
-
622
- ### Available Azure DevOps Prompts
623
-
624
- The server includes 4 prompts for formatted, human-readable Azure DevOps data:
625
-
626
- 1. **wiki-search-results**: Search wiki pages and get formatted results with content snippets
627
- 2. **wiki-page-content**: Get formatted wiki page with navigation context
628
- 3. **work-item-summary**: Comprehensive work item summary with details and comments
629
- 4. **work-items-query-report**: Execute WIQL query and get results grouped by state/type
630
-
631
- ### Azure DevOps Usage Examples
632
-
633
- #### Example 1: Search Wiki Documentation
634
-
635
- ```javascript
636
- // Search for authentication-related wiki pages
185
+ // Search wiki
637
186
  await mcpClient.callPrompt("wiki-search-results", {
638
187
  searchText: "authentication",
639
- project: "MyProject",
640
- maxResults: 10
188
+ project: "MyProject"
641
189
  });
642
- ```
643
-
644
- **Sample Output:**
645
- ```markdown
646
- # Wiki Search Results: "authentication"
647
-
648
- **Project:** MyProject
649
- **Total Results:** 3
650
-
651
- ## Results
652
-
653
- ### 1. Setup-Guide.md
654
- - **Path:** /Setup/Setup-Guide
655
- - **Wiki:** MyProject.wiki
656
- - **Project:** MyProject
657
- - **Highlights:**
658
- - Authentication can be configured using OAuth or Azure AD
659
- - The authentication flow supports SAML and JWT tokens
660
- ```
661
-
662
- #### Example 2: Get Work Item with Comments
663
190
 
664
- ```javascript
665
- // Get detailed work item summary with all comments
666
- await mcpClient.callPrompt("work-item-summary", {
667
- project: "MyProject",
668
- workItemId: 12345
669
- });
670
- ```
671
-
672
- **Sample Output:**
673
- ```markdown
674
- # Work Item #12345: Login button not working
675
-
676
- ## Details
677
- - **Type:** Bug
678
- - **State:** Active
679
- - **Assigned To:** John Doe
680
- - **Created By:** Jane Smith
681
- - **Created Date:** 2024-01-15T10:30:00Z
682
- - **Area Path:** MyProject\\Web\\Authentication
683
- - **Iteration Path:** Sprint 23
684
- - **Tags:** critical, authentication
685
-
686
- ## Description
687
- When users click the login button on the homepage, nothing happens.
688
- The console shows a JavaScript error: "Cannot read property 'submit' of null"
689
-
690
- ## Repro Steps
691
- 1. Navigate to https://myapp.com
692
- 2. Click the "Login" button in the top right
693
- 3. Observe that nothing happens
694
-
695
- ## Comments (3)
696
-
697
- ### John Doe - 1/15/2024 11:00 AM
698
- I've investigated this issue. The problem is in the form validation logic.
699
-
700
- ### Jane Smith - 1/15/2024 2:30 PM
701
- Created PR #456 to fix this issue.
702
- ```
703
-
704
- #### Example 3: Query Active Bugs
705
-
706
- ```javascript
707
- // Find all active bugs assigned to current user
191
+ // Query work items
708
192
  await mcpClient.callPrompt("work-items-query-report", {
709
193
  project: "MyProject",
710
- wiql: "SELECT [System.Id], [System.Title], [System.State] FROM WorkItems WHERE [System.WorkItemType] = 'Bug' AND [System.State] = 'Active' AND [System.AssignedTo] = @me"
194
+ wiql: "SELECT * FROM WorkItems WHERE [State] = 'Active' AND [Assigned To] = @me"
711
195
  });
712
196
  ```
713
197
 
714
- **Sample Output:**
715
- ```markdown
716
- # Work Items Query Results
717
-
718
- **Project:** MyProject
719
- **Total Results:** 5
720
-
721
- ## Active (5)
722
-
723
- - **#12345**: Login button not working
724
- - Type: Bug, Assigned: John Doe
725
- - **#12346**: Password reset email not sent
726
- - Type: Bug, Assigned: John Doe
727
- - **#12347**: Dashboard loads slowly
728
- - Type: Bug, Assigned: John Doe
729
- ```
198
+ ### Figma Design Extraction
730
199
 
731
- #### Example 4: Read Wiki Page
200
+ Extract design specifications in AI-friendly format:
732
201
 
733
202
  ```javascript
734
- // Get formatted wiki page content
735
- await mcpClient.callPrompt("wiki-page-content", {
736
- project: "MyProject",
737
- wikiId: "MyProject.wiki",
738
- pagePath: "/Architecture/API-Design"
203
+ await mcpClient.invoke("get-figma-data", {
204
+ fileKey: "ABC123xyz",
205
+ depth: 3 // Limit depth for large files
739
206
  });
740
207
  ```
741
208
 
742
- **Sample Output:**
743
- ```markdown
744
- # Wiki Page: /Architecture/API-Design
209
+ Returns simplified JSON with:
210
+ - Layout properties
211
+ - Text and typography
212
+ - Colors, fills, strokes
213
+ - Component definitions
214
+ - Deduplicated styles
745
215
 
746
- **Project:** MyProject
747
- **Wiki:** MyProject.wiki
748
- **Git Path:** Architecture/API-Design.md
216
+ ## Security & Permissions
749
217
 
750
- ## Sub-pages
751
- - /Architecture/API-Design/REST-Guidelines
752
- - /Architecture/API-Design/Authentication
753
- - /Architecture/API-Design/Versioning
218
+ All integrations are optional and can be configured independently:
754
219
 
755
- ## Content
220
+ **PowerPlatform:**
221
+ - Requires Azure AD app registration
222
+ - Uses OAuth authentication with automatic token refresh
756
223
 
757
- # API Design Guidelines
224
+ **Azure DevOps:**
225
+ - Requires Personal Access Token (PAT)
226
+ - Write operations disabled by default (enable with environment variables)
227
+ - Project access controlled via `AZUREDEVOPS_PROJECTS`
758
228
 
759
- This document describes our API design standards...
229
+ **Figma:**
230
+ - Requires Personal Access Token or OAuth
231
+ - Read-only access to design files
760
232
 
761
- ## RESTful Principles
762
- 1. Use nouns for resources
763
- 2. Use HTTP methods correctly...
764
- ```
233
+ See [SETUP.md](SETUP.md#security-best-practices) for security best practices.
765
234
 
766
- #### Example 5: Create Work Item (Write Operations)
235
+ ## Examples
767
236
 
768
- ```javascript
769
- // Create a new bug (requires AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true)
770
- await mcpClient.invoke("create-work-item", {
771
- project: "MyProject",
772
- workItemType: "Bug",
773
- fields: {
774
- "System.Title": "Login page shows 404 error",
775
- "System.Description": "After deploying v2.3, the login page returns 404",
776
- "System.AssignedTo": "john@company.com",
777
- "Microsoft.VSTS.TCM.ReproSteps": "1. Navigate to /login\n2. Observe 404 error",
778
- "System.Tags": "critical; deployment"
779
- }
780
- });
781
- ```
782
-
783
- #### Example 6: Update Work Item State
237
+ ### Ask about PowerPlatform entities
784
238
 
785
- ```javascript
786
- // Update work item to Resolved (requires AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true)
787
- await mcpClient.invoke("update-work-item", {
788
- project: "MyProject",
789
- workItemId: 12345,
790
- patchOperations: [
791
- {
792
- "op": "add",
793
- "path": "/fields/System.State",
794
- "value": "Resolved"
795
- },
796
- {
797
- "op": "add",
798
- "path": "/fields/System.History",
799
- "value": "Fixed in PR #456. Verified in staging environment."
800
- }
801
- ]
802
- });
803
239
  ```
804
-
805
- ### WIQL Query Language
806
-
807
- Work Items queries use WIQL (Work Item Query Language), a SQL-like language:
808
-
809
- **Common WIQL Patterns:**
810
-
811
- ```sql
812
- -- Find all active bugs
813
- SELECT [System.Id], [System.Title]
814
- FROM WorkItems
815
- WHERE [System.WorkItemType] = 'Bug'
816
- AND [System.State] = 'Active'
817
-
818
- -- Find work items changed in last 7 days
819
- SELECT [System.Id], [System.Title], [System.ChangedDate]
820
- FROM WorkItems
821
- WHERE [System.TeamProject] = @project
822
- AND [System.ChangedDate] > @today - 7
823
-
824
- -- Find my active tasks in current sprint
825
- SELECT [System.Id], [System.Title]
826
- FROM WorkItems
827
- WHERE [System.WorkItemType] = 'Task'
828
- AND [System.AssignedTo] = @me
829
- AND [System.State] = 'Active'
830
- AND [System.IterationPath] UNDER @currentIteration
831
-
832
- -- Find user stories with specific tag
833
- SELECT [System.Id], [System.Title], [System.Tags]
834
- FROM WorkItems
835
- WHERE [System.WorkItemType] = 'User Story'
836
- AND [System.Tags] CONTAINS 'authentication'
240
+ User: "Tell me about the Account entity"
241
+ AI: [uses entity-overview prompt]
242
+ Returns comprehensive overview with key fields and relationships
837
243
  ```
838
244
 
839
- **WIQL Macros:**
840
- - `@me` - Current user
841
- - `@today` - Today's date
842
- - `@project` - Current project
843
- - `@currentIteration` - Current iteration path
844
-
845
- ### Integration Use Cases
846
-
847
- #### Use Case 1: AI-Assisted Development with Context
848
-
849
- When working on a feature, the AI can automatically search relevant wiki documentation:
245
+ ### Build OData queries
850
246
 
851
247
  ```
852
- User: "I need to implement OAuth authentication for our API"
853
-
854
- AI Agent:
855
- 1. Searches wiki: search-wiki-pages with "OAuth authentication"
856
- 2. Finds and reads: get-wiki-page for /Architecture/Authentication/OAuth-Setup
857
- 3. Queries related work items: query-work-items for authentication tasks
858
- 4. Provides implementation guidance based on your organization's standards
248
+ User: "Help me query active accounts with revenue over $1M"
249
+ AI: [uses query-template prompt]
250
+ Returns formatted OData query with filters
859
251
  ```
860
252
 
861
- #### Use Case 2: Automated Work Item Management
862
-
863
- AI can help manage work items throughout development:
253
+ ### Plugin PR reviews
864
254
 
865
255
  ```
866
- User: "I fixed bug #12345, mark it as resolved"
867
-
868
- AI Agent:
869
- 1. Gets work item details: get-work-item
870
- 2. Updates state: update-work-item to "Resolved"
871
- 3. Adds comment: add-work-item-comment with fix details
872
- 4. Links to PR if available
256
+ User: "Validate the deployment of MyCompany.Plugins"
257
+ AI: [uses plugin-deployment-report prompt]
258
+ Returns validation report with warnings
873
259
  ```
874
260
 
875
- #### Use Case 3: Sprint Planning Assistant
876
-
877
- AI can analyze sprint work items and provide insights:
261
+ ### Search Azure DevOps wikis
878
262
 
879
263
  ```
880
- User: "Show me all active bugs in our current sprint"
881
-
882
- AI Agent:
883
- 1. Executes WIQL query: query-work-items
884
- 2. Groups results: work-items-query-report by priority/state
885
- 3. Identifies blockers and dependencies
886
- 4. Suggests prioritization based on severity
264
+ User: "Search our wiki for OAuth documentation"
265
+ AI: [uses wiki-search-results prompt]
266
+ Returns formatted search results with snippets
887
267
  ```
888
268
 
889
- #### Use Case 4: Documentation Discovery
890
-
891
- AI can search and summarize documentation across wiki pages:
269
+ See [USAGE.md](USAGE.md) for more examples.
892
270
 
893
- ```
894
- User: "How do we handle database migrations in our projects?"
895
-
896
- AI Agent:
897
- 1. Searches wikis: search-wiki-pages for "database migrations"
898
- 2. Reads relevant pages: wiki-page-content for each result
899
- 3. Summarizes best practices from your team's documentation
900
- 4. Provides code examples from wiki pages
901
- ```
271
+ ## Development
902
272
 
903
- ### Security and Access Control
273
+ ### Local Development Setup
904
274
 
905
- The Azure DevOps integration respects your organization's security boundaries:
275
+ ```bash
276
+ # Clone repository
277
+ git clone <repository-url>
278
+ cd mcp-consultant-tools
906
279
 
907
- 1. **Project Scoping**: Only projects listed in `AZUREDEVOPS_PROJECTS` are accessible
908
- 2. **PAT Permissions**: Access is limited to PAT scopes (read-only, read-write, etc.)
909
- 3. **Feature Flags**: Write operations are disabled by default and must be explicitly enabled
910
- 4. **Audit Trail**: All API operations are logged in Azure DevOps audit logs
280
+ # Install dependencies
281
+ npm install
911
282
 
912
- **Recommended Setup for Different Scenarios:**
283
+ # Build
284
+ npm run build
913
285
 
914
- **Read-Only (Documentation/Research):**
915
- ```bash
916
- AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=false
917
- AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE=false
918
- AZUREDEVOPS_ENABLE_WIKI_WRITE=false
919
- # PAT with: vso.wiki (read), vso.work (read), vso.search (read)
286
+ # Run locally
287
+ node build/index.js
920
288
  ```
921
289
 
922
- **Developer Workflow (Read + Comment):**
923
- ```bash
924
- AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true # Can update work items and add comments
925
- AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE=false # Cannot delete
926
- AZUREDEVOPS_ENABLE_WIKI_WRITE=false # Cannot modify wikis
927
- # PAT with: vso.wiki (read), vso.work_write (read/write), vso.search (read)
928
- ```
290
+ ### Branch Strategy
929
291
 
930
- **Full Access (Team Lead/Admin):**
931
- ```bash
932
- AZUREDEVOPS_ENABLE_WORK_ITEM_WRITE=true
933
- AZUREDEVOPS_ENABLE_WORK_ITEM_DELETE=true
934
- AZUREDEVOPS_ENABLE_WIKI_WRITE=true
935
- # PAT with: vso.wiki (read/write), vso.work_write (read/write), vso.search (read)
936
- ```
292
+ - **`main`** - Production code (published to npm)
293
+ - **`release/*`** - Testing before merge to main
294
+ - **`feature/*`** - Active development
937
295
 
938
- ## Development & Release Strategy
296
+ **Publishing workflow:**
297
+ 1. Merge to `main`
298
+ 2. `npm version patch|minor|major`
299
+ 3. `npm publish`
300
+ 4. `git push && git push --tags`
939
301
 
940
- This project follows a structured branching strategy for development and releases:
302
+ See [CLAUDE.md](CLAUDE.md) for detailed architecture and development guide.
941
303
 
942
- ### Branch Strategy
304
+ ## Updates
943
305
 
944
- - **`feature/*` branches**: For active development of new features
945
- - Create feature branches off `main`
946
- - Develop and test changes locally
947
- - Do NOT publish to npm from feature branches
948
-
949
- - **`release/*` branches**: For testing versions before release
950
- - Used to test and validate changes before merging to main
951
- - Do NOT publish to npm from release branches
952
- - Example: `release/1.0`, `release/2.0`
953
-
954
- - **`main` branch**: Production-ready code
955
- - **ONLY** publish to npm when main branch is updated
956
- - Merge feature/release branches to main when ready
957
- - Publishing workflow:
958
- 1. Merge changes to `main`
959
- 2. Update version: `npm version patch|minor|major`
960
- 3. Publish: `npm publish`
961
- 4. Push to GitHub: `git push && git push --tags`
306
+ ### Ensuring Latest Version
962
307
 
963
- ### Local Development Setup
308
+ **Using npx (recommended):**
964
309
 
965
- For local testing during development (feature/release branches):
310
+ Always use `@latest` in your configuration:
966
311
 
967
312
  ```json
968
313
  {
969
- "mcpServers": {
970
- "mcp-consultant-tools-dev": {
971
- "command": "node",
972
- "args": ["/absolute/path/to/mcp-consultant-tools/build/index.js"],
973
- "env": { ... }
974
- }
975
- }
314
+ "args": ["-y", "mcp-consultant-tools@latest"]
976
315
  }
977
316
  ```
978
317
 
979
- This allows you to test changes locally without publishing to npm.
318
+ **Using global install:**
319
+
320
+ ```bash
321
+ npm update -g mcp-consultant-tools
322
+ ```
980
323
 
981
324
  ## License
982
325
 
983
326
  MIT
327
+
328
+ ## Support
329
+
330
+ - **Issues**: Report bugs or request features in the GitHub repository
331
+ - **Documentation**: See docs above for complete guides
332
+ - **Architecture**: See [CLAUDE.md](CLAUDE.md) for technical details
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-consultant-tools",
3
- "version": "3.0.0",
3
+ "version": "3.1.0",
4
4
  "description": "MCP server providing access to PowerPlatform/Dataverse, Azure DevOps, and Figma through unified interface",
5
5
  "main": "build/index.js",
6
6
  "bin": {