@stacksfinder/mcp-server 1.0.2 → 1.2.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 (98) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +414 -262
  3. package/dist/compatibility/index.d.ts +11 -0
  4. package/dist/compatibility/index.d.ts.map +1 -0
  5. package/dist/compatibility/index.js +13 -0
  6. package/dist/compatibility/index.js.map +1 -0
  7. package/dist/compatibility/rules.d.ts +29 -0
  8. package/dist/compatibility/rules.d.ts.map +1 -0
  9. package/dist/compatibility/rules.js +419 -0
  10. package/dist/compatibility/rules.js.map +1 -0
  11. package/dist/compatibility/scoring.d.ts +54 -0
  12. package/dist/compatibility/scoring.d.ts.map +1 -0
  13. package/dist/compatibility/scoring.js +209 -0
  14. package/dist/compatibility/scoring.js.map +1 -0
  15. package/dist/compatibility/types.d.ts +176 -0
  16. package/dist/compatibility/types.d.ts.map +1 -0
  17. package/dist/compatibility/types.js +26 -0
  18. package/dist/compatibility/types.js.map +1 -0
  19. package/dist/compatibility/utils.d.ts +82 -0
  20. package/dist/compatibility/utils.d.ts.map +1 -0
  21. package/dist/compatibility/utils.js +269 -0
  22. package/dist/compatibility/utils.js.map +1 -0
  23. package/dist/data/357/200/242/357/200/212cp H:bac_/303/240_guigui_v2stack_finderpackagesmcp-serversrcdatacompatibility_matrix.json H:bac_/303/240_guigui_v2stack_finderpackagesmcp-serverdistdata/357/200/242" +226 -0
  24. package/dist/http.d.ts +7 -0
  25. package/dist/http.d.ts.map +1 -0
  26. package/dist/http.js +69 -0
  27. package/dist/http.js.map +1 -0
  28. package/dist/lib/mcp-compatibility/index.d.ts +33 -0
  29. package/dist/lib/mcp-compatibility/index.d.ts.map +1 -0
  30. package/dist/lib/mcp-compatibility/index.js +35 -0
  31. package/dist/lib/mcp-compatibility/index.js.map +1 -0
  32. package/dist/lib/mcp-compatibility/rules.d.ts +29 -0
  33. package/dist/lib/mcp-compatibility/rules.d.ts.map +1 -0
  34. package/dist/lib/mcp-compatibility/rules.js +419 -0
  35. package/dist/lib/mcp-compatibility/rules.js.map +1 -0
  36. package/dist/lib/mcp-compatibility/scoring.d.ts +54 -0
  37. package/dist/lib/mcp-compatibility/scoring.d.ts.map +1 -0
  38. package/dist/lib/mcp-compatibility/scoring.js +209 -0
  39. package/dist/lib/mcp-compatibility/scoring.js.map +1 -0
  40. package/dist/lib/mcp-compatibility/types.d.ts +176 -0
  41. package/dist/lib/mcp-compatibility/types.d.ts.map +1 -0
  42. package/dist/lib/mcp-compatibility/types.js +26 -0
  43. package/dist/lib/mcp-compatibility/types.js.map +1 -0
  44. package/dist/lib/mcp-compatibility/utils.d.ts +82 -0
  45. package/dist/lib/mcp-compatibility/utils.d.ts.map +1 -0
  46. package/dist/lib/mcp-compatibility/utils.js +269 -0
  47. package/dist/lib/mcp-compatibility/utils.js.map +1 -0
  48. package/dist/server.d.ts.map +1 -1
  49. package/dist/server.js +404 -1
  50. package/dist/server.js.map +1 -1
  51. package/dist/tools/audit.d.ts +246 -0
  52. package/dist/tools/audit.d.ts.map +1 -0
  53. package/dist/tools/audit.js +559 -0
  54. package/dist/tools/audit.js.map +1 -0
  55. package/dist/tools/check-compatibility.d.ts +43 -0
  56. package/dist/tools/check-compatibility.d.ts.map +1 -0
  57. package/dist/tools/check-compatibility.js +133 -0
  58. package/dist/tools/check-compatibility.js.map +1 -0
  59. package/dist/tools/project-kit/analyze-repo.d.ts +50 -0
  60. package/dist/tools/project-kit/analyze-repo.d.ts.map +1 -0
  61. package/dist/tools/project-kit/analyze-repo.js +456 -0
  62. package/dist/tools/project-kit/analyze-repo.js.map +1 -0
  63. package/dist/tools/project-kit/detect-stack.d.ts +16 -0
  64. package/dist/tools/project-kit/detect-stack.d.ts.map +1 -0
  65. package/dist/tools/project-kit/detect-stack.js +572 -0
  66. package/dist/tools/project-kit/detect-stack.js.map +1 -0
  67. package/dist/tools/project-kit/execute-installation.d.ts +50 -0
  68. package/dist/tools/project-kit/execute-installation.d.ts.map +1 -0
  69. package/dist/tools/project-kit/execute-installation.js +440 -0
  70. package/dist/tools/project-kit/execute-installation.js.map +1 -0
  71. package/dist/tools/project-kit/generate.d.ts +70 -0
  72. package/dist/tools/project-kit/generate.d.ts.map +1 -0
  73. package/dist/tools/project-kit/generate.js +455 -0
  74. package/dist/tools/project-kit/generate.js.map +1 -0
  75. package/dist/tools/project-kit/index.d.ts +18 -0
  76. package/dist/tools/project-kit/index.d.ts.map +1 -0
  77. package/dist/tools/project-kit/index.js +21 -0
  78. package/dist/tools/project-kit/index.js.map +1 -0
  79. package/dist/tools/project-kit/installation-types.d.ts +147 -0
  80. package/dist/tools/project-kit/installation-types.d.ts.map +1 -0
  81. package/dist/tools/project-kit/installation-types.js +491 -0
  82. package/dist/tools/project-kit/installation-types.js.map +1 -0
  83. package/dist/tools/project-kit/match-mcps.d.ts +67 -0
  84. package/dist/tools/project-kit/match-mcps.d.ts.map +1 -0
  85. package/dist/tools/project-kit/match-mcps.js +497 -0
  86. package/dist/tools/project-kit/match-mcps.js.map +1 -0
  87. package/dist/tools/project-kit/prepare-installation.d.ts +54 -0
  88. package/dist/tools/project-kit/prepare-installation.d.ts.map +1 -0
  89. package/dist/tools/project-kit/prepare-installation.js +382 -0
  90. package/dist/tools/project-kit/prepare-installation.js.map +1 -0
  91. package/dist/tools/project-kit/types.d.ts +200 -0
  92. package/dist/tools/project-kit/types.d.ts.map +1 -0
  93. package/dist/tools/project-kit/types.js +76 -0
  94. package/dist/tools/project-kit/types.js.map +1 -0
  95. package/dist/tools/recommend.d.ts.map +1 -1
  96. package/dist/tools/recommend.js +9 -4
  97. package/dist/tools/recommend.js.map +1 -1
  98. package/package.json +8 -3
@@ -0,0 +1,50 @@
1
+ /**
2
+ * execute_mcp_installation Tool
3
+ *
4
+ * Reads a .env-mcp file and generates installation commands for MCPs
5
+ * where the user has provided the required credentials.
6
+ */
7
+ import type { ExecuteMCPInstallationInput, ExecuteMCPInstallationOutput } from './installation-types.js';
8
+ /**
9
+ * Execute MCP installation by reading .env-mcp and generating commands.
10
+ */
11
+ export declare function executeMCPInstallation(input: ExecuteMCPInstallationInput): Promise<ExecuteMCPInstallationOutput>;
12
+ /**
13
+ * Tool definition for MCP server registration.
14
+ */
15
+ export declare const executeMCPInstallationTool: {
16
+ name: string;
17
+ description: string;
18
+ inputSchema: {
19
+ type: string;
20
+ properties: {
21
+ envMcpPath: {
22
+ type: string;
23
+ description: string;
24
+ };
25
+ targetClient: {
26
+ type: string;
27
+ enum: string[];
28
+ description: string;
29
+ };
30
+ dryRun: {
31
+ type: string;
32
+ description: string;
33
+ };
34
+ };
35
+ };
36
+ handler: (params: unknown) => Promise<{
37
+ content: {
38
+ type: string;
39
+ text: string;
40
+ }[];
41
+ isError?: undefined;
42
+ } | {
43
+ content: {
44
+ type: string;
45
+ text: string;
46
+ }[];
47
+ isError: boolean;
48
+ }>;
49
+ };
50
+ //# sourceMappingURL=execute-installation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-installation.d.ts","sourceRoot":"","sources":["../../../src/tools/project-kit/execute-installation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACX,2BAA2B,EAC3B,4BAA4B,EAG5B,MAAM,yBAAyB,CAAC;AAmLjC;;GAEG;AACH,wBAAsB,sBAAsB,CAC3C,KAAK,EAAE,2BAA2B,GAChC,OAAO,CAAC,4BAA4B,CAAC,CAiHvC;AAuID;;GAEG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;sBA+Cd,OAAO;;;;;;;;;;;;;CAiC/B,CAAC"}
@@ -0,0 +1,440 @@
1
+ /**
2
+ * execute_mcp_installation Tool
3
+ *
4
+ * Reads a .env-mcp file and generates installation commands for MCPs
5
+ * where the user has provided the required credentials.
6
+ */
7
+ import * as fs from 'fs/promises';
8
+ import * as path from 'path';
9
+ import { z } from 'zod';
10
+ import { ExecuteMCPInstallationInputSchema, getMCPRegistryEntry } from './installation-types.js';
11
+ import { info, error, debug } from '../../utils/logger.js';
12
+ /**
13
+ * Parse .env-mcp file content.
14
+ */
15
+ function parseEnvMcpContent(content) {
16
+ const installFlags = new Map();
17
+ const envVars = new Map();
18
+ const lines = content.split('\n');
19
+ for (const line of lines) {
20
+ const trimmed = line.trim();
21
+ // Skip comments and empty lines
22
+ if (!trimmed || trimmed.startsWith('#')) {
23
+ continue;
24
+ }
25
+ // Parse KEY=VALUE
26
+ const eqIndex = trimmed.indexOf('=');
27
+ if (eqIndex === -1)
28
+ continue;
29
+ const key = trimmed.substring(0, eqIndex).trim();
30
+ const value = trimmed.substring(eqIndex + 1).trim();
31
+ // Handle INSTALL_xxx flags
32
+ if (key.startsWith('INSTALL_')) {
33
+ const slug = key
34
+ .replace('INSTALL_', '')
35
+ .toLowerCase()
36
+ .replace(/_/g, '-');
37
+ installFlags.set(slug, value.toLowerCase() === 'true');
38
+ }
39
+ else if (value) {
40
+ // Store non-empty env vars
41
+ envVars.set(key, value);
42
+ }
43
+ }
44
+ return { installFlags, envVars };
45
+ }
46
+ /**
47
+ * Generate Claude Code CLI command for an MCP.
48
+ */
49
+ function generateClaudeCodeCommand(slug, npmPackage, envVars, requiredVars) {
50
+ // Build the JSON config
51
+ const config = {
52
+ command: 'npx',
53
+ args: ['-y', npmPackage]
54
+ };
55
+ // Add env vars if any
56
+ const envObj = {};
57
+ for (const varDef of requiredVars) {
58
+ const value = envVars.get(varDef.name);
59
+ if (value) {
60
+ envObj[varDef.name] = value;
61
+ }
62
+ }
63
+ if (Object.keys(envObj).length > 0) {
64
+ config.env = envObj;
65
+ }
66
+ const jsonStr = JSON.stringify(config).replace(/"/g, '\\"');
67
+ return `claude mcp add-json "${slug}" "${jsonStr}"`;
68
+ }
69
+ /**
70
+ * Generate JSON config for Claude Desktop / Cursor / VS Code.
71
+ */
72
+ function generateJsonConfig(_slug, npmPackage, envVars, requiredVars) {
73
+ const config = {
74
+ command: 'npx',
75
+ args: ['-y', npmPackage]
76
+ };
77
+ // Add env vars if any
78
+ const envObj = {};
79
+ for (const varDef of requiredVars) {
80
+ const value = envVars.get(varDef.name);
81
+ if (value) {
82
+ envObj[varDef.name] = value;
83
+ }
84
+ }
85
+ if (Object.keys(envObj).length > 0) {
86
+ config.env = envObj;
87
+ }
88
+ return config;
89
+ }
90
+ /**
91
+ * Get config file path for target client.
92
+ */
93
+ function getConfigPathForClient(client) {
94
+ switch (client) {
95
+ case 'claude-code':
96
+ return '~/.claude.json (managed by CLI)';
97
+ case 'claude-desktop':
98
+ return process.platform === 'win32'
99
+ ? '%APPDATA%\\Claude\\claude_desktop_config.json'
100
+ : process.platform === 'darwin'
101
+ ? '~/Library/Application Support/Claude/claude_desktop_config.json'
102
+ : '~/.config/claude/claude_desktop_config.json';
103
+ case 'cursor':
104
+ return process.platform === 'win32'
105
+ ? '%APPDATA%\\Cursor\\User\\globalStorage\\saoudrizwan.claude-dev\\settings\\cline_mcp_settings.json'
106
+ : '~/.cursor/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json';
107
+ case 'vscode':
108
+ return 'VS Code MCP extension settings';
109
+ case 'windsurf':
110
+ return '~/.windsurf/mcp.json';
111
+ }
112
+ }
113
+ // ============================================================================
114
+ // VALIDATION
115
+ // ============================================================================
116
+ /**
117
+ * Check if all required env vars are present for an MCP.
118
+ */
119
+ function validateEnvVars(requiredVars, envVars) {
120
+ const missingVars = [];
121
+ for (const varDef of requiredVars) {
122
+ if (varDef.requirement === 'required') {
123
+ const value = envVars.get(varDef.name);
124
+ if (!value || value.trim() === '') {
125
+ missingVars.push(varDef.name);
126
+ }
127
+ }
128
+ }
129
+ return {
130
+ ready: missingVars.length === 0,
131
+ missingVars
132
+ };
133
+ }
134
+ // ============================================================================
135
+ // TOOL IMPLEMENTATION
136
+ // ============================================================================
137
+ /**
138
+ * Execute MCP installation by reading .env-mcp and generating commands.
139
+ */
140
+ export async function executeMCPInstallation(input) {
141
+ const envMcpPath = input.envMcpPath || path.join(process.cwd(), '.env-mcp');
142
+ const targetClient = input.targetClient || 'claude-code';
143
+ const dryRun = input.dryRun ?? false;
144
+ info(`Executing MCP installation from: ${envMcpPath}`);
145
+ info(`Target client: ${targetClient}`);
146
+ // Step 1: Read and parse .env-mcp file
147
+ let content;
148
+ try {
149
+ content = await fs.readFile(envMcpPath, 'utf-8');
150
+ }
151
+ catch (err) {
152
+ error(`Failed to read .env-mcp: ${err}`);
153
+ throw new Error(`Could not read .env-mcp file at ${envMcpPath}. ` +
154
+ 'Run prepare_mcp_installation first to generate it.');
155
+ }
156
+ const parsed = parseEnvMcpContent(content);
157
+ debug(`Found ${parsed.installFlags.size} MCPs with install flags`);
158
+ debug(`Found ${parsed.envVars.size} env vars`);
159
+ // Step 2: Generate commands for each MCP
160
+ const commands = [];
161
+ const aggregateConfig = {};
162
+ for (const [slug, shouldInstall] of parsed.installFlags) {
163
+ if (!shouldInstall) {
164
+ commands.push({
165
+ slug,
166
+ name: formatMCPName(slug),
167
+ ready: false,
168
+ missingVars: [],
169
+ status: 'skipped'
170
+ });
171
+ continue;
172
+ }
173
+ const registryEntry = getMCPRegistryEntry(slug);
174
+ if (!registryEntry) {
175
+ debug(`MCP ${slug} not found in registry, skipping`);
176
+ continue;
177
+ }
178
+ // Validate env vars
179
+ const validation = validateEnvVars(registryEntry.envVars, parsed.envVars);
180
+ const command = {
181
+ slug,
182
+ name: registryEntry.name,
183
+ ready: validation.ready,
184
+ missingVars: validation.missingVars,
185
+ status: validation.ready ? 'ready' : 'missing_vars'
186
+ };
187
+ if (validation.ready) {
188
+ // Generate commands
189
+ command.claudeCodeCommand = generateClaudeCodeCommand(slug, registryEntry.npmPackage, parsed.envVars, registryEntry.envVars);
190
+ command.jsonConfig = generateJsonConfig(slug, registryEntry.npmPackage, parsed.envVars, registryEntry.envVars);
191
+ // Add to aggregate config
192
+ aggregateConfig[slug] = command.jsonConfig;
193
+ }
194
+ commands.push(command);
195
+ }
196
+ // Step 3: Calculate stats
197
+ const readyCount = commands.filter((c) => c.status === 'ready').length;
198
+ const pendingCount = commands.filter((c) => c.status === 'missing_vars').length;
199
+ // Step 4: Generate aggregate command for Claude Code
200
+ let aggregateCommand;
201
+ if (targetClient === 'claude-code' && readyCount > 0) {
202
+ const readyCommands = commands
203
+ .filter((c) => c.status === 'ready' && c.claudeCodeCommand)
204
+ .map((c) => c.claudeCodeCommand);
205
+ aggregateCommand = readyCommands.join(' && ');
206
+ }
207
+ // Step 5: Generate post-install instructions
208
+ const postInstallInstructions = generatePostInstallInstructions(targetClient, readyCount, pendingCount);
209
+ // Step 6: Generate summary message
210
+ const message = generateSummaryMessage(commands, targetClient, dryRun);
211
+ return {
212
+ commands,
213
+ readyCount,
214
+ pendingCount,
215
+ aggregateCommand,
216
+ aggregateConfig: Object.keys(aggregateConfig).length > 0 ? { mcpServers: aggregateConfig } : undefined,
217
+ postInstallInstructions,
218
+ message
219
+ };
220
+ }
221
+ // ============================================================================
222
+ // HELPERS
223
+ // ============================================================================
224
+ function formatMCPName(slug) {
225
+ return slug
226
+ .replace(/-mcp$/, '')
227
+ .split('-')
228
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
229
+ .join(' ')
230
+ .concat(' MCP');
231
+ }
232
+ function generatePostInstallInstructions(client, readyCount, pendingCount) {
233
+ const instructions = [];
234
+ if (readyCount === 0) {
235
+ instructions.push('No MCPs are ready to install. Please fill in the required credentials in .env-mcp');
236
+ return instructions;
237
+ }
238
+ switch (client) {
239
+ case 'claude-code':
240
+ instructions.push('After running the installation commands:');
241
+ instructions.push('1. Restart Claude Code to load the new MCP servers');
242
+ instructions.push('2. Verify with: claude mcp list');
243
+ break;
244
+ case 'claude-desktop':
245
+ instructions.push('To install:');
246
+ instructions.push(`1. Open ${getConfigPathForClient(client)}`);
247
+ instructions.push('2. Add the mcpServers config from aggregateConfig');
248
+ instructions.push('3. Restart Claude Desktop');
249
+ break;
250
+ case 'cursor':
251
+ instructions.push('To install:');
252
+ instructions.push('1. Open Cursor Settings > Extensions > Claude Dev');
253
+ instructions.push('2. Add each MCP server configuration');
254
+ instructions.push('3. Restart Cursor');
255
+ break;
256
+ case 'vscode':
257
+ instructions.push('To install:');
258
+ instructions.push('1. Open VS Code Settings');
259
+ instructions.push('2. Search for "MCP" and configure the servers');
260
+ instructions.push('3. Reload VS Code window');
261
+ break;
262
+ case 'windsurf':
263
+ instructions.push('To install:');
264
+ instructions.push(`1. Edit ${getConfigPathForClient(client)}`);
265
+ instructions.push('2. Add the mcpServers config from aggregateConfig');
266
+ instructions.push('3. Restart Windsurf');
267
+ break;
268
+ }
269
+ if (pendingCount > 0) {
270
+ instructions.push('');
271
+ instructions.push(`Note: ${pendingCount} MCP(s) are missing required credentials.`);
272
+ instructions.push('Fill in the missing values in .env-mcp and run execute_mcp_installation again.');
273
+ }
274
+ return instructions;
275
+ }
276
+ function generateSummaryMessage(commands, client, dryRun) {
277
+ const readyCount = commands.filter((c) => c.status === 'ready').length;
278
+ const pendingCount = commands.filter((c) => c.status === 'missing_vars').length;
279
+ const skippedCount = commands.filter((c) => c.status === 'skipped').length;
280
+ const lines = [];
281
+ if (dryRun) {
282
+ lines.push('🔍 DRY RUN - No changes will be made\n');
283
+ }
284
+ lines.push('# MCP Installation Summary\n');
285
+ // Stats
286
+ lines.push(`- ✅ Ready to install: ${readyCount}`);
287
+ lines.push(`- ⏳ Missing credentials: ${pendingCount}`);
288
+ lines.push(`- ⏭️ Skipped: ${skippedCount}`);
289
+ lines.push('');
290
+ // Ready MCPs
291
+ if (readyCount > 0) {
292
+ lines.push('## Ready to Install\n');
293
+ for (const cmd of commands.filter((c) => c.status === 'ready')) {
294
+ lines.push(`- ✅ **${cmd.name}** (\`${cmd.slug}\`)`);
295
+ }
296
+ lines.push('');
297
+ }
298
+ // Pending MCPs
299
+ if (pendingCount > 0) {
300
+ lines.push('## Missing Credentials\n');
301
+ for (const cmd of commands.filter((c) => c.status === 'missing_vars')) {
302
+ lines.push(`- ⏳ **${cmd.name}** - missing: ${cmd.missingVars.join(', ')}`);
303
+ }
304
+ lines.push('');
305
+ }
306
+ // Skipped MCPs
307
+ if (skippedCount > 0) {
308
+ lines.push('## Skipped (INSTALL_xxx=false)\n');
309
+ for (const cmd of commands.filter((c) => c.status === 'skipped')) {
310
+ lines.push(`- ⏭️ ${cmd.name}`);
311
+ }
312
+ lines.push('');
313
+ }
314
+ // Instructions
315
+ if (readyCount > 0 && client === 'claude-code') {
316
+ lines.push('## Installation Command\n');
317
+ lines.push('Run the aggregateCommand to install all ready MCPs, then restart Claude Code.');
318
+ }
319
+ return lines.join('\n');
320
+ }
321
+ // ============================================================================
322
+ // TOOL HANDLER
323
+ // ============================================================================
324
+ /**
325
+ * Tool definition for MCP server registration.
326
+ */
327
+ export const executeMCPInstallationTool = {
328
+ name: 'execute_mcp_installation',
329
+ description: `Read a .env-mcp configuration file and generate installation commands for the MCPs.
330
+
331
+ This tool:
332
+ 1. Reads the .env-mcp file generated by prepare_mcp_installation
333
+ 2. Validates that required environment variables are present
334
+ 3. Generates installation commands for the target IDE/client
335
+ 4. Returns post-installation instructions
336
+
337
+ Prerequisites:
338
+ - Run prepare_mcp_installation first to generate .env-mcp
339
+ - Fill in the required API keys and credentials in .env-mcp
340
+ - Set INSTALL_xxx=false for MCPs you want to skip
341
+
342
+ Supported targets:
343
+ - claude-code: Generates 'claude mcp add-json' commands
344
+ - claude-desktop: Generates JSON config for claude_desktop_config.json
345
+ - cursor: Generates JSON config for Cursor MCP settings
346
+ - vscode: Generates JSON config for VS Code MCP extension
347
+ - windsurf: Generates JSON config for Windsurf
348
+
349
+ Output:
350
+ - Individual commands/configs for each ready MCP
351
+ - Aggregate command (for Claude Code) or config (for others)
352
+ - List of MCPs missing required credentials
353
+ - Post-installation instructions`,
354
+ inputSchema: {
355
+ type: 'object',
356
+ properties: {
357
+ envMcpPath: {
358
+ type: 'string',
359
+ description: 'Path to .env-mcp file (default: .env-mcp in current directory)'
360
+ },
361
+ targetClient: {
362
+ type: 'string',
363
+ enum: ['claude-code', 'claude-desktop', 'cursor', 'vscode', 'windsurf'],
364
+ description: 'Target IDE/client for installation (default: claude-code)'
365
+ },
366
+ dryRun: {
367
+ type: 'boolean',
368
+ description: 'Only generate commands without marking ready to execute (default: false)'
369
+ }
370
+ }
371
+ },
372
+ handler: async (params) => {
373
+ try {
374
+ const input = ExecuteMCPInstallationInputSchema.parse(params);
375
+ const result = await executeMCPInstallation(input);
376
+ // Format output for display
377
+ const output = formatExecutionOutput(result);
378
+ return {
379
+ content: [
380
+ {
381
+ type: 'text',
382
+ text: output
383
+ }
384
+ ]
385
+ };
386
+ }
387
+ catch (err) {
388
+ if (err instanceof z.ZodError) {
389
+ error('Invalid input:', err.errors);
390
+ return {
391
+ content: [
392
+ {
393
+ type: 'text',
394
+ text: `Invalid input: ${err.errors.map((e) => e.message).join(', ')}`
395
+ }
396
+ ],
397
+ isError: true
398
+ };
399
+ }
400
+ error('execute_mcp_installation error:', err);
401
+ throw err;
402
+ }
403
+ }
404
+ };
405
+ // ============================================================================
406
+ // OUTPUT FORMATTING
407
+ // ============================================================================
408
+ function formatExecutionOutput(result) {
409
+ const lines = [];
410
+ lines.push(result.message);
411
+ lines.push('');
412
+ // Show aggregate command for Claude Code
413
+ if (result.aggregateCommand) {
414
+ lines.push('---\n');
415
+ lines.push('## Claude Code Installation\n');
416
+ lines.push('Run this command to install all ready MCPs:\n');
417
+ lines.push('```bash');
418
+ lines.push(result.aggregateCommand);
419
+ lines.push('```\n');
420
+ }
421
+ // Show JSON config for other clients
422
+ if (result.aggregateConfig && !result.aggregateCommand) {
423
+ lines.push('---\n');
424
+ lines.push('## JSON Configuration\n');
425
+ lines.push('Add this to your MCP configuration file:\n');
426
+ lines.push('```json');
427
+ lines.push(JSON.stringify(result.aggregateConfig, null, 2));
428
+ lines.push('```\n');
429
+ }
430
+ // Post-install instructions
431
+ if (result.postInstallInstructions.length > 0) {
432
+ lines.push('---\n');
433
+ lines.push('## Post-Installation\n');
434
+ for (const instruction of result.postInstallInstructions) {
435
+ lines.push(instruction);
436
+ }
437
+ }
438
+ return lines.join('\n');
439
+ }
440
+ //# sourceMappingURL=execute-installation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execute-installation.js","sourceRoot":"","sources":["../../../src/tools/project-kit/execute-installation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * generate_mcp_kit Tool
3
+ *
4
+ * Generates a complete project kit with optimal tech stack and MCP recommendations
5
+ * based on a project description.
6
+ */
7
+ import type { GenerateMCPKitInput, GenerateMCPKitOutput } from './types.js';
8
+ /**
9
+ * Generate complete project kit.
10
+ */
11
+ export declare function generateMCPKit(input: GenerateMCPKitInput): GenerateMCPKitOutput;
12
+ /**
13
+ * Tool definition for MCP server registration.
14
+ */
15
+ export declare const generateMCPKitTool: {
16
+ name: string;
17
+ description: string;
18
+ inputSchema: {
19
+ type: string;
20
+ properties: {
21
+ projectDescription: {
22
+ type: string;
23
+ description: string;
24
+ minLength: number;
25
+ maxLength: number;
26
+ };
27
+ priorities: {
28
+ type: string;
29
+ items: {
30
+ type: string;
31
+ enum: readonly ["time-to-market", "scalability", "developer-experience", "cost-efficiency", "performance", "security", "maintainability"];
32
+ };
33
+ maxItems: number;
34
+ description: string;
35
+ };
36
+ constraints: {
37
+ type: string;
38
+ items: {
39
+ type: string;
40
+ };
41
+ description: string;
42
+ };
43
+ projectType: {
44
+ type: string;
45
+ enum: readonly ["web-app", "mobile-app", "api", "saas", "e-commerce", "marketplace", "cli", "library"];
46
+ description: string;
47
+ };
48
+ scale: {
49
+ type: string;
50
+ enum: readonly ["mvp", "startup", "growth", "enterprise"];
51
+ description: string;
52
+ };
53
+ };
54
+ required: string[];
55
+ };
56
+ handler: (params: unknown) => Promise<{
57
+ content: {
58
+ type: string;
59
+ text: string;
60
+ }[];
61
+ isError?: undefined;
62
+ } | {
63
+ content: {
64
+ type: string;
65
+ text: string;
66
+ }[];
67
+ isError: boolean;
68
+ }>;
69
+ };
70
+ //# sourceMappingURL=generate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../../src/tools/project-kit/generate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EACX,mBAAmB,EACnB,oBAAoB,EAMpB,MAAM,YAAY,CAAC;AAiQpB;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB,CAiE/E;AA6CD;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sBAmDN,OAAO;;;;;;;;;;;;;CAiC/B,CAAC"}