@mcp-consultant-tools/powerplatform 27.0.0 → 28.0.0-beta.13

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 (117) hide show
  1. package/build/PowerPlatformService.d.ts +23 -2
  2. package/build/PowerPlatformService.d.ts.map +1 -1
  3. package/build/PowerPlatformService.js +23 -1
  4. package/build/PowerPlatformService.js.map +1 -1
  5. package/build/cli/commands/app-commands.d.ts +7 -0
  6. package/build/cli/commands/app-commands.d.ts.map +1 -0
  7. package/build/cli/commands/app-commands.js +65 -0
  8. package/build/cli/commands/app-commands.js.map +1 -0
  9. package/build/cli/commands/flow-commands.d.ts +7 -0
  10. package/build/cli/commands/flow-commands.d.ts.map +1 -0
  11. package/build/cli/commands/flow-commands.js +170 -0
  12. package/build/cli/commands/flow-commands.js.map +1 -0
  13. package/build/cli/commands/form-commands.d.ts +7 -0
  14. package/build/cli/commands/form-commands.d.ts.map +1 -0
  15. package/build/cli/commands/form-commands.js +104 -0
  16. package/build/cli/commands/form-commands.js.map +1 -0
  17. package/build/cli/commands/index.d.ts +15 -0
  18. package/build/cli/commands/index.d.ts.map +1 -0
  19. package/build/cli/commands/index.js +30 -0
  20. package/build/cli/commands/index.js.map +1 -0
  21. package/build/cli/commands/integration-commands.d.ts +7 -0
  22. package/build/cli/commands/integration-commands.d.ts.map +1 -0
  23. package/build/cli/commands/integration-commands.js +97 -0
  24. package/build/cli/commands/integration-commands.js.map +1 -0
  25. package/build/cli/commands/metadata-commands.d.ts +7 -0
  26. package/build/cli/commands/metadata-commands.d.ts.map +1 -0
  27. package/build/cli/commands/metadata-commands.js +83 -0
  28. package/build/cli/commands/metadata-commands.js.map +1 -0
  29. package/build/cli/commands/plugin-commands.d.ts +7 -0
  30. package/build/cli/commands/plugin-commands.d.ts.map +1 -0
  31. package/build/cli/commands/plugin-commands.js +79 -0
  32. package/build/cli/commands/plugin-commands.js.map +1 -0
  33. package/build/cli/commands/security-commands.d.ts +7 -0
  34. package/build/cli/commands/security-commands.d.ts.map +1 -0
  35. package/build/cli/commands/security-commands.js +89 -0
  36. package/build/cli/commands/security-commands.js.map +1 -0
  37. package/build/cli/commands/solution-commands.d.ts +7 -0
  38. package/build/cli/commands/solution-commands.d.ts.map +1 -0
  39. package/build/cli/commands/solution-commands.js +146 -0
  40. package/build/cli/commands/solution-commands.js.map +1 -0
  41. package/build/cli/output.d.ts +11 -0
  42. package/build/cli/output.d.ts.map +1 -0
  43. package/build/cli/output.js +10 -0
  44. package/build/cli/output.js.map +1 -0
  45. package/build/cli.d.ts +9 -0
  46. package/build/cli.d.ts.map +1 -0
  47. package/build/cli.js +30 -0
  48. package/build/cli.js.map +1 -0
  49. package/build/context-factory.d.ts +11 -0
  50. package/build/context-factory.d.ts.map +1 -0
  51. package/build/context-factory.js +39 -0
  52. package/build/context-factory.js.map +1 -0
  53. package/build/index.d.ts +10 -2
  54. package/build/index.d.ts.map +1 -1
  55. package/build/index.js +26 -2394
  56. package/build/index.js.map +1 -1
  57. package/build/prompts/analysis-prompts.d.ts +3 -0
  58. package/build/prompts/analysis-prompts.d.ts.map +1 -0
  59. package/build/prompts/analysis-prompts.js +286 -0
  60. package/build/prompts/analysis-prompts.js.map +1 -0
  61. package/build/prompts/entity-prompts.d.ts +3 -0
  62. package/build/prompts/entity-prompts.d.ts.map +1 -0
  63. package/build/prompts/entity-prompts.js +304 -0
  64. package/build/prompts/entity-prompts.js.map +1 -0
  65. package/build/prompts/index.d.ts +8 -0
  66. package/build/prompts/index.d.ts.map +1 -0
  67. package/build/prompts/index.js +11 -0
  68. package/build/prompts/index.js.map +1 -0
  69. package/build/services/index.d.ts +5 -0
  70. package/build/services/index.d.ts.map +1 -0
  71. package/build/services/index.js +5 -0
  72. package/build/services/index.js.map +1 -0
  73. package/build/tool-examples.d.ts +48 -0
  74. package/build/tool-examples.d.ts.map +1 -0
  75. package/build/tool-examples.js +91 -0
  76. package/build/tool-examples.js.map +1 -0
  77. package/build/tools/app-tools.d.ts +3 -0
  78. package/build/tools/app-tools.d.ts.map +1 -0
  79. package/build/tools/app-tools.js +127 -0
  80. package/build/tools/app-tools.js.map +1 -0
  81. package/build/tools/flow-tools.d.ts +3 -0
  82. package/build/tools/flow-tools.d.ts.map +1 -0
  83. package/build/tools/flow-tools.js +374 -0
  84. package/build/tools/flow-tools.js.map +1 -0
  85. package/build/tools/form-view-tools.d.ts +3 -0
  86. package/build/tools/form-view-tools.d.ts.map +1 -0
  87. package/build/tools/form-view-tools.js +162 -0
  88. package/build/tools/form-view-tools.js.map +1 -0
  89. package/build/tools/index.d.ts +14 -0
  90. package/build/tools/index.d.ts.map +1 -0
  91. package/build/tools/index.js +29 -0
  92. package/build/tools/index.js.map +1 -0
  93. package/build/tools/integration-tools.d.ts +3 -0
  94. package/build/tools/integration-tools.d.ts.map +1 -0
  95. package/build/tools/integration-tools.js +325 -0
  96. package/build/tools/integration-tools.js.map +1 -0
  97. package/build/tools/metadata-tools.d.ts +3 -0
  98. package/build/tools/metadata-tools.d.ts.map +1 -0
  99. package/build/tools/metadata-tools.js +166 -0
  100. package/build/tools/metadata-tools.js.map +1 -0
  101. package/build/tools/plugin-tools.d.ts +3 -0
  102. package/build/tools/plugin-tools.d.ts.map +1 -0
  103. package/build/tools/plugin-tools.js +138 -0
  104. package/build/tools/plugin-tools.js.map +1 -0
  105. package/build/tools/security-tools.d.ts +3 -0
  106. package/build/tools/security-tools.d.ts.map +1 -0
  107. package/build/tools/security-tools.js +188 -0
  108. package/build/tools/security-tools.js.map +1 -0
  109. package/build/tools/solution-tools.d.ts +3 -0
  110. package/build/tools/solution-tools.d.ts.map +1 -0
  111. package/build/tools/solution-tools.js +284 -0
  112. package/build/tools/solution-tools.js.map +1 -0
  113. package/build/types.d.ts +9 -0
  114. package/build/types.d.ts.map +1 -0
  115. package/build/types.js +2 -0
  116. package/build/types.js.map +1 -0
  117. package/package.json +6 -4
@@ -0,0 +1,284 @@
1
+ /**
2
+ * Solution Tools - 8 tools for solution management and validation
3
+ */
4
+ import { z } from 'zod';
5
+ import { descWithExamples, SOLUTION_NAME_EXAMPLES, ENTITY_NAME_EXAMPLES, COMPONENT_TYPE_EXAMPLES } from '../tool-examples.js';
6
+ export function registerSolutionTools(server, ctx) {
7
+ server.tool("get-publishers", "Get all solution publishers (excluding system publishers)", {}, async () => {
8
+ try {
9
+ const service = ctx.pp;
10
+ const result = await service.getPublishers();
11
+ const publishers = result.value || [];
12
+ return {
13
+ content: [
14
+ {
15
+ type: "text",
16
+ text: `Found ${publishers.length} publisher(s):\n\n` +
17
+ publishers.map((p) => `- ${p.friendlyname} (${p.uniquename})\n Prefix: ${p.customizationprefix}\n ID: ${p.publisherid}`).join('\n')
18
+ }
19
+ ]
20
+ };
21
+ }
22
+ catch (error) {
23
+ console.error("Error getting publishers:", error);
24
+ return {
25
+ content: [{ type: "text", text: `Failed to get publishers: ${error.message}` }],
26
+ isError: true
27
+ };
28
+ }
29
+ });
30
+ server.tool("get-solutions", "Get all visible solutions in the environment", {}, async () => {
31
+ try {
32
+ const service = ctx.pp;
33
+ const result = await service.getSolutions();
34
+ const solutions = result.value || [];
35
+ return {
36
+ content: [
37
+ {
38
+ type: "text",
39
+ text: `Found ${solutions.length} solution(s):\n\n` +
40
+ solutions.map((s) => `- ${s.friendlyname} (${s.uniquename})\n Version: ${s.version}\n ID: ${s.solutionid}`).join('\n')
41
+ }
42
+ ]
43
+ };
44
+ }
45
+ catch (error) {
46
+ console.error("Error getting solutions:", error);
47
+ return {
48
+ content: [{ type: "text", text: `Failed to get solutions: ${error.message}` }],
49
+ isError: true
50
+ };
51
+ }
52
+ });
53
+ server.tool("get-solution-components", "List all components in a solution, grouped by component type. Returns component IDs, types, and behavior settings.", {
54
+ solutionUniqueName: z.string().describe(descWithExamples("The unique name of the solution to list components for", SOLUTION_NAME_EXAMPLES)),
55
+ }, async ({ solutionUniqueName }) => {
56
+ try {
57
+ const service = ctx.pp;
58
+ const result = await service.getSolutionComponents(solutionUniqueName);
59
+ const components = result.value || [];
60
+ const componentTypeNames = {
61
+ 1: 'Entity', 2: 'Attribute', 3: 'Relationship', 9: 'OptionSet',
62
+ 10: 'EntityRelationship', 13: 'ManagedProperty', 20: 'Policy',
63
+ 24: 'Privilege', 25: 'PrivilegeObjectTypeCode', 26: 'Role',
64
+ 29: 'Workflow', 31: 'Report', 36: 'Template', 37: 'Contract Template',
65
+ 38: 'Article Template', 39: 'Mail Merge Template', 44: 'Duplicate Rule',
66
+ 46: 'Duplicate Rule Condition', 48: 'Entity Map', 49: 'Attribute Map',
67
+ 59: 'SavedQuery', 60: 'Form', 61: 'WebResource', 62: 'SiteMap',
68
+ 63: 'Connection Role', 65: 'Hierarchy Rule', 66: 'Custom Control',
69
+ 70: 'FieldSecurityProfile', 71: 'FieldPermission', 80: 'AppModule',
70
+ 91: 'PluginAssembly', 92: 'PluginType', 93: 'SDKMessageProcessingStep',
71
+ 95: 'ServiceEndpoint', 150: 'RoutingRule', 152: 'SLA',
72
+ 154: 'ConvertRule', 300: 'Canvas App', 371: 'Connector',
73
+ 372: 'EnvironmentVariableDefinition', 373: 'EnvironmentVariableValue',
74
+ 380: 'AIModel', 381: 'AIConfiguration',
75
+ };
76
+ const grouped = {};
77
+ for (const c of components) {
78
+ const type = c.componenttype;
79
+ if (!grouped[type])
80
+ grouped[type] = [];
81
+ grouped[type].push(c);
82
+ }
83
+ const lines = [`Found ${components.length} component(s) in solution '${solutionUniqueName}':\n`];
84
+ for (const [type, items] of Object.entries(grouped)) {
85
+ const typeName = componentTypeNames[Number(type)] || `Type ${type}`;
86
+ lines.push(`\n${typeName} (${items.length}):`);
87
+ for (const item of items) {
88
+ lines.push(` - ${item.objectid} (behavior: ${item.rootcomponentbehavior ?? 'include subcomponents'})`);
89
+ }
90
+ }
91
+ return {
92
+ content: [{ type: "text", text: lines.join('\n') }]
93
+ };
94
+ }
95
+ catch (error) {
96
+ console.error("Error getting solution components:", error);
97
+ return {
98
+ content: [{ type: "text", text: `Failed to get solution components: ${error.message}` }],
99
+ isError: true
100
+ };
101
+ }
102
+ });
103
+ server.tool("check-dependencies", "Check dependencies before deleting a component", {
104
+ componentId: z.string().describe("Component ID (GUID or MetadataId)"),
105
+ componentType: z.number().describe(descWithExamples("Component type code", COMPONENT_TYPE_EXAMPLES))
106
+ }, async ({ componentId, componentType }) => {
107
+ try {
108
+ const service = ctx.pp;
109
+ const result = await service.checkDependencies(componentId, componentType);
110
+ const dependencies = result.EntityCollection?.Entities || [];
111
+ return {
112
+ content: [
113
+ {
114
+ type: "text",
115
+ text: `Found ${dependencies.length} dependenc${dependencies.length === 1 ? 'y' : 'ies'} for component '${componentId}':\n\n` +
116
+ (dependencies.length > 0
117
+ ? dependencies.map((d) => `- ${d.Attributes?.dependentcomponentobjectid || 'Unknown'}\n Type: ${d.Attributes?.dependentcomponenttype || 'Unknown'}`).join('\n')
118
+ : 'No dependencies found - component can be safely deleted')
119
+ }
120
+ ]
121
+ };
122
+ }
123
+ catch (error) {
124
+ console.error("Error checking dependencies:", error);
125
+ return {
126
+ content: [{ type: "text", text: `Failed to check dependencies: ${error.message}` }],
127
+ isError: true
128
+ };
129
+ }
130
+ });
131
+ server.tool("validate-schema-name", "Validate a schema name against PowerPlatform naming rules", {
132
+ schemaName: z.string().describe("Schema name to validate"),
133
+ prefix: z.string().describe("Required customization prefix")
134
+ }, async ({ schemaName, prefix }) => {
135
+ try {
136
+ const service = ctx.pp;
137
+ const result = service.validateSchemaName(schemaName, prefix);
138
+ return {
139
+ content: [
140
+ {
141
+ type: "text",
142
+ text: `Schema Name Validation for '${schemaName}':\n\n` +
143
+ `Valid: ${result.valid ? '✅' : '❌'}\n\n` +
144
+ (result.errors.length > 0
145
+ ? `Errors:\n${result.errors.map(e => `- ${e}`).join('\n')}`
146
+ : 'No validation errors')
147
+ }
148
+ ]
149
+ };
150
+ }
151
+ catch (error) {
152
+ console.error("Error validating schema name:", error);
153
+ return {
154
+ content: [{ type: "text", text: `Failed to validate schema name: ${error.message}` }],
155
+ isError: true
156
+ };
157
+ }
158
+ });
159
+ server.tool("check-delete-eligibility", "Check if a component can be safely deleted by verifying it has no blocking dependencies.", {
160
+ componentId: z.string().describe("Component ID (GUID or MetadataId)"),
161
+ componentType: z.number().describe(descWithExamples("Component type code", COMPONENT_TYPE_EXAMPLES))
162
+ }, async ({ componentId, componentType }) => {
163
+ try {
164
+ const service = ctx.pp;
165
+ const result = await service.checkDeleteEligibility(componentId, componentType);
166
+ return {
167
+ content: [
168
+ {
169
+ type: "text",
170
+ text: `Delete Eligibility for component '${componentId}':\n\n` +
171
+ `Can Delete: ${result.canDelete ? '✅ Yes' : '❌ No'}\n` +
172
+ `Dependencies: ${result.dependencies.length}\n\n` +
173
+ (result.dependencies.length > 0
174
+ ? `Blocking Dependencies:\n${result.dependencies.map((d) => `- ${d.Attributes?.dependentcomponentobjectid || 'Unknown'}`).join('\n')}`
175
+ : 'No blocking dependencies - component can be safely deleted')
176
+ }
177
+ ]
178
+ };
179
+ }
180
+ catch (error) {
181
+ console.error("Error checking delete eligibility:", error);
182
+ return {
183
+ content: [{ type: "text", text: `Failed to check delete eligibility: ${error.message}` }],
184
+ isError: true
185
+ };
186
+ }
187
+ });
188
+ server.tool("validate-dataverse", "Validate Dataverse entities against internal best practices for column naming, prefixes, configuration, and entity icons. Checks schema name casing, lookup naming conventions, option set scope (all must be global), required columns, publisher prefix compliance, and entity icon assignment. Supports solution-based validation or explicit entity list with configurable time range filtering.", {
189
+ solutionUniqueName: z.string().optional().describe(descWithExamples("Solution unique name to validate. Mutually exclusive with entityLogicalNames", SOLUTION_NAME_EXAMPLES)),
190
+ entityLogicalNames: z.array(z.string()).optional().describe(descWithExamples("Explicit list of entity logical names to validate. Mutually exclusive with solutionUniqueName", ENTITY_NAME_EXAMPLES)),
191
+ publisherPrefix: z.string().describe("Publisher prefix to validate against (e.g., 'sic_'). Required."),
192
+ recentDays: z.number().optional().describe("Only validate columns created in the last N days. Set to 0 to validate all columns regardless of age. Default: 30."),
193
+ includeRefDataTables: z.boolean().optional().describe("Include RefData tables (schema starts with prefix + 'ref_') in validation. Default: true."),
194
+ rules: z.array(z.string()).optional().describe("Specific rules to validate: 'prefix', 'lowercase', 'lookup', 'optionset', 'required-column', 'entity-icon'. Default: all rules."),
195
+ maxEntities: z.number().optional().describe("Maximum number of entities to validate (safety limit). Default: 0 (unlimited)."),
196
+ requiredColumns: z.array(z.string()).optional().describe("List of required column schema names to check for (without prefix). Use '{prefix}' placeholder which will be replaced with publisherPrefix at runtime. Default: ['{prefix}updatedbyprocess']. Example: ['{prefix}sqlcreatedon', '{prefix}sqlmodifiedon'] for SQL timestamp columns.")
197
+ }, async ({ solutionUniqueName, entityLogicalNames, publisherPrefix, recentDays, includeRefDataTables, rules, maxEntities, requiredColumns }) => {
198
+ try {
199
+ if (!solutionUniqueName && !entityLogicalNames) {
200
+ return {
201
+ content: [{ type: "text", text: "Error: Either solutionUniqueName or entityLogicalNames must be provided" }],
202
+ isError: true
203
+ };
204
+ }
205
+ if (solutionUniqueName && entityLogicalNames) {
206
+ return {
207
+ content: [{ type: "text", text: "Error: solutionUniqueName and entityLogicalNames are mutually exclusive" }],
208
+ isError: true
209
+ };
210
+ }
211
+ const service = ctx.pp;
212
+ const result = await service.validateBestPractices(solutionUniqueName, entityLogicalNames, publisherPrefix, recentDays ?? 30, includeRefDataTables ?? true, rules ?? ['prefix', 'lowercase', 'lookup', 'optionset', 'required-column', 'entity-icon'], maxEntities ?? 0, requiredColumns ?? ['{prefix}updatedbyprocess']);
213
+ return {
214
+ content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
215
+ };
216
+ }
217
+ catch (error) {
218
+ console.error("Error validating best practices:", error);
219
+ return {
220
+ content: [{ type: "text", text: `Failed to validate best practices: ${error.message}` }],
221
+ isError: true
222
+ };
223
+ }
224
+ });
225
+ server.tool("generate-dbml-schema", `Generates DBML (Database Markup Language) schema from Dataverse entities.
226
+
227
+ Accepts solution names, explicit entity lists, or both. Returns DBML text
228
+ and a clickable dbdiagram.io URL for visualization.
229
+
230
+ DBML output includes:
231
+ - Table definitions with columns and types
232
+ - Primary key markers [pk]
233
+ - Foreign key relationships (Ref: statements) for all lookups
234
+
235
+ Example output:
236
+ \`\`\`dbml
237
+ Table si_directdebit {
238
+ si_directdebitid uniqueidentifier [pk]
239
+ si_name nvarchar
240
+ si_accountid lookup
241
+ }
242
+ Ref: si_directdebit.si_accountid > account.accountid
243
+ \`\`\``, {
244
+ solutions: z.array(z.string()).optional()
245
+ .describe('One or more solution unique names to extract entities from'),
246
+ entities: z.array(z.string()).optional()
247
+ .describe('Explicit list of entity logical names to include'),
248
+ includeSystemColumns: z.boolean().optional()
249
+ .describe('Include system columns like createdon, modifiedon (default: false)'),
250
+ includeStateStatus: z.boolean().optional()
251
+ .describe('Include statecode/statuscode columns (default: false)'),
252
+ prefix: z.string().optional()
253
+ .describe('Only include columns matching this prefix (e.g., "si_")'),
254
+ depth: z.number().optional()
255
+ .describe('Relationship traversal depth for discovering related entities (default: 0)'),
256
+ includePolymorphicLookups: z.boolean().optional()
257
+ .describe('Include Customer/Owner/PartyList lookups (default: true)'),
258
+ }, async (params) => {
259
+ try {
260
+ const service = ctx.pp;
261
+ const result = await service.generateDbmlSchema(params);
262
+ return {
263
+ content: [
264
+ {
265
+ type: "text",
266
+ text: JSON.stringify(result, null, 2),
267
+ },
268
+ ],
269
+ };
270
+ }
271
+ catch (error) {
272
+ console.error("Error generating DBML schema:", error);
273
+ return {
274
+ content: [
275
+ {
276
+ type: "text",
277
+ text: `Failed to generate DBML schema: ${error.message}`,
278
+ },
279
+ ],
280
+ };
281
+ }
282
+ });
283
+ }
284
+ //# sourceMappingURL=solution-tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solution-tools.js","sourceRoot":"","sources":["../../src/tools/solution-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Service context shared between MCP server and tool/prompt registrations.
3
+ * Uses a lazy getter to initialize the PowerPlatformService on-demand.
4
+ */
5
+ import type { PowerPlatformService } from './PowerPlatformService.js';
6
+ export interface ServiceContext {
7
+ readonly pp: PowerPlatformService;
8
+ }
9
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEtE,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,oBAAoB,CAAC;CACnC"}
package/build/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-consultant-tools/powerplatform",
3
- "version": "27.0.0",
3
+ "version": "28.0.0-beta.13",
4
4
  "description": "MCP server for Microsoft PowerPlatform/Dataverse - read-only access (production-safe)",
5
5
  "type": "module",
6
6
  "main": "./build/index.js",
@@ -44,9 +44,10 @@
44
44
  "node": ">=16.0.0"
45
45
  },
46
46
  "dependencies": {
47
- "@mcp-consultant-tools/core": "27.0.0-beta.1",
48
- "@mcp-consultant-tools/powerplatform-core": "27.0.0-beta.2",
47
+ "@mcp-consultant-tools/core": "28.0.0-beta.13",
48
+ "@mcp-consultant-tools/powerplatform-core": "28.0.0-beta.13",
49
49
  "@modelcontextprotocol/sdk": "^1.24.3",
50
+ "commander": "^14.0.3",
50
51
  "express": "^4.21.0",
51
52
  "zod": "^3.24.1"
52
53
  },
@@ -59,6 +60,7 @@
59
60
  "mcp-consultant-tools-powerplatform": "build/index.js",
60
61
  "powerplatform": "build/index.js",
61
62
  "mcp-pp": "build/index.js",
62
- "mcp-pp-http": "build/http-server.js"
63
+ "mcp-pp-http": "build/http-server.js",
64
+ "mcp-pp-cli": "build/cli.js"
63
65
  }
64
66
  }