@stacksfinder/mcp-server 1.1.0 → 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.
- package/LICENSE +16 -16
- package/README.md +92 -3
- package/dist/compatibility/index.d.ts +11 -0
- package/dist/compatibility/index.d.ts.map +1 -0
- package/dist/compatibility/index.js +13 -0
- package/dist/compatibility/index.js.map +1 -0
- package/dist/compatibility/rules.d.ts +29 -0
- package/dist/compatibility/rules.d.ts.map +1 -0
- package/dist/compatibility/rules.js +419 -0
- package/dist/compatibility/rules.js.map +1 -0
- package/dist/compatibility/scoring.d.ts +54 -0
- package/dist/compatibility/scoring.d.ts.map +1 -0
- package/dist/compatibility/scoring.js +209 -0
- package/dist/compatibility/scoring.js.map +1 -0
- package/dist/compatibility/types.d.ts +176 -0
- package/dist/compatibility/types.d.ts.map +1 -0
- package/dist/compatibility/types.js +26 -0
- package/dist/compatibility/types.js.map +1 -0
- package/dist/compatibility/utils.d.ts +82 -0
- package/dist/compatibility/utils.d.ts.map +1 -0
- package/dist/compatibility/utils.js +269 -0
- package/dist/compatibility/utils.js.map +1 -0
- 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
- package/dist/http.d.ts +7 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +69 -0
- package/dist/http.js.map +1 -0
- package/dist/lib/mcp-compatibility/index.d.ts +33 -0
- package/dist/lib/mcp-compatibility/index.d.ts.map +1 -0
- package/dist/lib/mcp-compatibility/index.js +35 -0
- package/dist/lib/mcp-compatibility/index.js.map +1 -0
- package/dist/lib/mcp-compatibility/rules.d.ts +29 -0
- package/dist/lib/mcp-compatibility/rules.d.ts.map +1 -0
- package/dist/lib/mcp-compatibility/rules.js +419 -0
- package/dist/lib/mcp-compatibility/rules.js.map +1 -0
- package/dist/lib/mcp-compatibility/scoring.d.ts +54 -0
- package/dist/lib/mcp-compatibility/scoring.d.ts.map +1 -0
- package/dist/lib/mcp-compatibility/scoring.js +209 -0
- package/dist/lib/mcp-compatibility/scoring.js.map +1 -0
- package/dist/lib/mcp-compatibility/types.d.ts +176 -0
- package/dist/lib/mcp-compatibility/types.d.ts.map +1 -0
- package/dist/lib/mcp-compatibility/types.js +26 -0
- package/dist/lib/mcp-compatibility/types.js.map +1 -0
- package/dist/lib/mcp-compatibility/utils.d.ts +82 -0
- package/dist/lib/mcp-compatibility/utils.d.ts.map +1 -0
- package/dist/lib/mcp-compatibility/utils.js +269 -0
- package/dist/lib/mcp-compatibility/utils.js.map +1 -0
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +296 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/check-compatibility.d.ts +43 -0
- package/dist/tools/check-compatibility.d.ts.map +1 -0
- package/dist/tools/check-compatibility.js +133 -0
- package/dist/tools/check-compatibility.js.map +1 -0
- package/dist/tools/project-kit/analyze-repo.d.ts +50 -0
- package/dist/tools/project-kit/analyze-repo.d.ts.map +1 -0
- package/dist/tools/project-kit/analyze-repo.js +456 -0
- package/dist/tools/project-kit/analyze-repo.js.map +1 -0
- package/dist/tools/project-kit/detect-stack.d.ts +16 -0
- package/dist/tools/project-kit/detect-stack.d.ts.map +1 -0
- package/dist/tools/project-kit/detect-stack.js +572 -0
- package/dist/tools/project-kit/detect-stack.js.map +1 -0
- package/dist/tools/project-kit/execute-installation.d.ts +50 -0
- package/dist/tools/project-kit/execute-installation.d.ts.map +1 -0
- package/dist/tools/project-kit/execute-installation.js +440 -0
- package/dist/tools/project-kit/execute-installation.js.map +1 -0
- package/dist/tools/project-kit/generate.d.ts +70 -0
- package/dist/tools/project-kit/generate.d.ts.map +1 -0
- package/dist/tools/project-kit/generate.js +455 -0
- package/dist/tools/project-kit/generate.js.map +1 -0
- package/dist/tools/project-kit/index.d.ts +18 -0
- package/dist/tools/project-kit/index.d.ts.map +1 -0
- package/dist/tools/project-kit/index.js +21 -0
- package/dist/tools/project-kit/index.js.map +1 -0
- package/dist/tools/project-kit/installation-types.d.ts +147 -0
- package/dist/tools/project-kit/installation-types.d.ts.map +1 -0
- package/dist/tools/project-kit/installation-types.js +491 -0
- package/dist/tools/project-kit/installation-types.js.map +1 -0
- package/dist/tools/project-kit/match-mcps.d.ts +67 -0
- package/dist/tools/project-kit/match-mcps.d.ts.map +1 -0
- package/dist/tools/project-kit/match-mcps.js +497 -0
- package/dist/tools/project-kit/match-mcps.js.map +1 -0
- package/dist/tools/project-kit/prepare-installation.d.ts +54 -0
- package/dist/tools/project-kit/prepare-installation.d.ts.map +1 -0
- package/dist/tools/project-kit/prepare-installation.js +382 -0
- package/dist/tools/project-kit/prepare-installation.js.map +1 -0
- package/dist/tools/project-kit/types.d.ts +200 -0
- package/dist/tools/project-kit/types.d.ts.map +1 -0
- package/dist/tools/project-kit/types.js +76 -0
- package/dist/tools/project-kit/types.js.map +1 -0
- package/dist/tools/recommend.d.ts.map +1 -1
- package/dist/tools/recommend.js +9 -4
- package/dist/tools/recommend.js.map +1 -1
- package/package.json +8 -3
|
@@ -0,0 +1,455 @@
|
|
|
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 { z } from 'zod';
|
|
8
|
+
import { GenerateMCPKitInputSchema, PROJECT_TYPES, SCALES, PRIORITIES } from './types.js';
|
|
9
|
+
import { matchMCPsForTechnologies, generateInstallConfig } from './match-mcps.js';
|
|
10
|
+
import { DATA_VERSION, calculateOverallScore, getScores, getTechnologiesByCategory, scoreToGrade } from '../../data/index.js';
|
|
11
|
+
import { debug, info, error } from '../../utils/logger.js';
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// PROJECT ANALYSIS
|
|
14
|
+
// ============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Keywords that help detect project type from description.
|
|
17
|
+
*/
|
|
18
|
+
const PROJECT_TYPE_KEYWORDS = {
|
|
19
|
+
'web-app': ['web app', 'website', 'web application', 'dashboard', 'portal', 'landing page'],
|
|
20
|
+
'mobile-app': ['mobile', 'ios', 'android', 'react native', 'flutter', 'native app'],
|
|
21
|
+
api: ['api', 'rest', 'graphql', 'backend service', 'microservice', 'serverless function'],
|
|
22
|
+
saas: ['saas', 'subscription', 'multi-tenant', 'b2b', 'platform', 'software as a service'],
|
|
23
|
+
'e-commerce': ['e-commerce', 'ecommerce', 'shop', 'store', 'cart', 'checkout', 'products'],
|
|
24
|
+
marketplace: ['marketplace', 'two-sided', 'buyers and sellers', 'listings', 'transactions'],
|
|
25
|
+
cli: ['cli', 'command line', 'terminal', 'console application'],
|
|
26
|
+
library: ['library', 'package', 'npm', 'module', 'sdk']
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* Keywords that help detect scale from description.
|
|
30
|
+
*/
|
|
31
|
+
const SCALE_KEYWORDS = {
|
|
32
|
+
mvp: ['mvp', 'prototype', 'proof of concept', 'poc', 'quick', 'simple', 'basic', 'minimal'],
|
|
33
|
+
startup: ['startup', 'early stage', 'small team', 'growing', 'seed', 'series a'],
|
|
34
|
+
growth: ['growth', 'scaling', 'high traffic', 'production', 'mature', 'series b', 'series c'],
|
|
35
|
+
enterprise: ['enterprise', 'large scale', 'fortune 500', 'corporate', 'compliance', 'soc2']
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Keywords that help detect priorities from description.
|
|
39
|
+
*/
|
|
40
|
+
const PRIORITY_KEYWORDS = {
|
|
41
|
+
'time-to-market': ['fast', 'quick', 'rapid', 'ship quickly', 'deadline', 'asap', 'mvp'],
|
|
42
|
+
scalability: ['scale', 'scalable', 'millions of users', 'high traffic', 'growth'],
|
|
43
|
+
'developer-experience': ['developer experience', 'dx', 'easy to use', 'good tooling'],
|
|
44
|
+
'cost-efficiency': ['budget', 'cheap', 'cost effective', 'affordable', 'low cost', 'free tier'],
|
|
45
|
+
performance: ['fast', 'performance', 'speed', 'low latency', 'optimized'],
|
|
46
|
+
security: ['security', 'secure', 'compliance', 'gdpr', 'hipaa', 'soc2', 'encryption'],
|
|
47
|
+
maintainability: ['maintainable', 'clean code', 'long term', 'easy to maintain', 'readable']
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* Detect project type from description.
|
|
51
|
+
*/
|
|
52
|
+
function detectProjectType(description) {
|
|
53
|
+
const lowerDesc = description.toLowerCase();
|
|
54
|
+
for (const [type, keywords] of Object.entries(PROJECT_TYPE_KEYWORDS)) {
|
|
55
|
+
for (const keyword of keywords) {
|
|
56
|
+
if (lowerDesc.includes(keyword)) {
|
|
57
|
+
return type;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
return 'web-app'; // Default
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Detect scale from description.
|
|
65
|
+
*/
|
|
66
|
+
function detectScale(description) {
|
|
67
|
+
const lowerDesc = description.toLowerCase();
|
|
68
|
+
for (const [scale, keywords] of Object.entries(SCALE_KEYWORDS)) {
|
|
69
|
+
for (const keyword of keywords) {
|
|
70
|
+
if (lowerDesc.includes(keyword)) {
|
|
71
|
+
return scale;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return 'mvp'; // Default
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Detect priorities from description.
|
|
79
|
+
*/
|
|
80
|
+
function detectPriorities(description) {
|
|
81
|
+
const lowerDesc = description.toLowerCase();
|
|
82
|
+
const detected = [];
|
|
83
|
+
for (const [priority, keywords] of Object.entries(PRIORITY_KEYWORDS)) {
|
|
84
|
+
for (const keyword of keywords) {
|
|
85
|
+
if (lowerDesc.includes(keyword)) {
|
|
86
|
+
detected.push(priority);
|
|
87
|
+
break;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Return top 3
|
|
92
|
+
return detected.slice(0, 3);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Extract technology constraints from description.
|
|
96
|
+
*/
|
|
97
|
+
function extractConstraints(description, explicitConstraints = []) {
|
|
98
|
+
const constraints = [...explicitConstraints];
|
|
99
|
+
const lowerDesc = description.toLowerCase();
|
|
100
|
+
// Common constraint patterns
|
|
101
|
+
const constraintPatterns = [
|
|
102
|
+
// Database constraints
|
|
103
|
+
{ pattern: /\b(postgres|postgresql)\b/i, constraint: 'must-use-postgresql' },
|
|
104
|
+
{ pattern: /\b(mysql)\b/i, constraint: 'must-use-mysql' },
|
|
105
|
+
{ pattern: /\b(mongodb|mongo)\b/i, constraint: 'must-use-mongodb' },
|
|
106
|
+
{ pattern: /\b(sqlite)\b/i, constraint: 'must-use-sqlite' },
|
|
107
|
+
// Framework constraints
|
|
108
|
+
{ pattern: /\b(react|next\.?js)\b/i, constraint: 'must-use-react' },
|
|
109
|
+
{ pattern: /\b(vue|nuxt)\b/i, constraint: 'must-use-vue' },
|
|
110
|
+
{ pattern: /\b(svelte|sveltekit)\b/i, constraint: 'must-use-svelte' },
|
|
111
|
+
{ pattern: /\b(angular)\b/i, constraint: 'must-use-angular' },
|
|
112
|
+
// Hosting constraints
|
|
113
|
+
{ pattern: /\b(vercel)\b/i, constraint: 'must-use-vercel' },
|
|
114
|
+
{ pattern: /\b(cloudflare)\b/i, constraint: 'must-use-cloudflare' },
|
|
115
|
+
{ pattern: /\b(aws)\b/i, constraint: 'must-use-aws' },
|
|
116
|
+
{ pattern: /\b(self[- ]?hosted)\b/i, constraint: 'self-hosted' },
|
|
117
|
+
// Auth constraints
|
|
118
|
+
{ pattern: /\b(clerk)\b/i, constraint: 'must-use-clerk' },
|
|
119
|
+
{ pattern: /\b(auth0)\b/i, constraint: 'must-use-auth0' },
|
|
120
|
+
{ pattern: /\b(supabase auth)\b/i, constraint: 'must-use-supabase-auth' },
|
|
121
|
+
// Payments
|
|
122
|
+
{ pattern: /\b(stripe)\b/i, constraint: 'must-use-stripe' },
|
|
123
|
+
{ pattern: /\b(paddle)\b/i, constraint: 'must-use-paddle' },
|
|
124
|
+
// Features
|
|
125
|
+
{ pattern: /\b(real[- ]?time)\b/i, constraint: 'needs-realtime' },
|
|
126
|
+
{ pattern: /\b(multi[- ]?tenant)\b/i, constraint: 'multi-tenant' },
|
|
127
|
+
{ pattern: /\b(ai|llm|machine learning)\b/i, constraint: 'ai-features' },
|
|
128
|
+
{ pattern: /\b(edge|low latency)\b/i, constraint: 'edge-deployment' }
|
|
129
|
+
];
|
|
130
|
+
for (const { pattern, constraint } of constraintPatterns) {
|
|
131
|
+
if (pattern.test(lowerDesc) && !constraints.includes(constraint)) {
|
|
132
|
+
constraints.push(constraint);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return constraints;
|
|
136
|
+
}
|
|
137
|
+
// ============================================================================
|
|
138
|
+
// STACK GENERATION
|
|
139
|
+
// ============================================================================
|
|
140
|
+
/**
|
|
141
|
+
* Category weights for different project types.
|
|
142
|
+
*/
|
|
143
|
+
const PROJECT_TYPE_WEIGHTS = {
|
|
144
|
+
'web-app': { 'meta-framework': 1.2, frontend: 1.1, database: 1.0 },
|
|
145
|
+
saas: { 'meta-framework': 1.2, database: 1.1, auth: 1.2, payments: 1.3 },
|
|
146
|
+
'e-commerce': { 'meta-framework': 1.1, database: 1.1, payments: 1.4 },
|
|
147
|
+
api: { backend: 1.3, database: 1.2, hosting: 1.1 },
|
|
148
|
+
'mobile-app': { backend: 1.2, database: 1.1, auth: 1.2 },
|
|
149
|
+
marketplace: { 'meta-framework': 1.1, database: 1.2, auth: 1.1, payments: 1.3 },
|
|
150
|
+
cli: { backend: 1.0 },
|
|
151
|
+
library: { backend: 1.0 },
|
|
152
|
+
desktop: { frontend: 1.1, backend: 1.1, database: 1.0 }
|
|
153
|
+
};
|
|
154
|
+
/**
|
|
155
|
+
* Categories to include based on project type.
|
|
156
|
+
*/
|
|
157
|
+
const PROJECT_TYPE_CATEGORIES = {
|
|
158
|
+
'web-app': ['meta-framework', 'database', 'orm', 'auth', 'hosting'],
|
|
159
|
+
saas: ['meta-framework', 'database', 'orm', 'auth', 'hosting', 'payments'],
|
|
160
|
+
'e-commerce': ['meta-framework', 'database', 'orm', 'auth', 'hosting', 'payments'],
|
|
161
|
+
api: ['backend', 'database', 'orm', 'auth', 'hosting'],
|
|
162
|
+
'mobile-app': ['backend', 'database', 'orm', 'auth', 'hosting'],
|
|
163
|
+
marketplace: ['meta-framework', 'database', 'orm', 'auth', 'hosting', 'payments'],
|
|
164
|
+
cli: ['backend'],
|
|
165
|
+
library: ['backend'],
|
|
166
|
+
desktop: ['frontend', 'backend', 'database', 'orm']
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Map scale to scoring context.
|
|
170
|
+
*/
|
|
171
|
+
function scaleToContext(scale) {
|
|
172
|
+
if (scale === 'enterprise' || scale === 'growth')
|
|
173
|
+
return 'enterprise';
|
|
174
|
+
if (scale === 'mvp' || scale === 'startup')
|
|
175
|
+
return 'mvp';
|
|
176
|
+
return 'default';
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Select best tech for each category.
|
|
180
|
+
*/
|
|
181
|
+
function selectBestTechPerCategory(categories, context, projectType) {
|
|
182
|
+
const results = new Map();
|
|
183
|
+
const weights = PROJECT_TYPE_WEIGHTS[projectType] || {};
|
|
184
|
+
for (const category of categories) {
|
|
185
|
+
const techs = getTechnologiesByCategory(category);
|
|
186
|
+
if (techs.length === 0)
|
|
187
|
+
continue;
|
|
188
|
+
let bestTech = techs[0];
|
|
189
|
+
let bestScore = 0;
|
|
190
|
+
for (const tech of techs) {
|
|
191
|
+
const scores = getScores(tech.id, context);
|
|
192
|
+
if (!scores)
|
|
193
|
+
continue;
|
|
194
|
+
let overall = calculateOverallScore(scores);
|
|
195
|
+
// Apply project-type specific weight
|
|
196
|
+
const weight = weights[category] || 1.0;
|
|
197
|
+
overall = Math.round(overall * weight);
|
|
198
|
+
if (overall > bestScore) {
|
|
199
|
+
bestScore = overall;
|
|
200
|
+
bestTech = tech;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
const finalScores = getScores(bestTech.id, context);
|
|
204
|
+
const finalScore = finalScores ? calculateOverallScore(finalScores) : 0;
|
|
205
|
+
results.set(category, {
|
|
206
|
+
id: bestTech.id,
|
|
207
|
+
name: bestTech.name,
|
|
208
|
+
score: finalScore,
|
|
209
|
+
grade: scoreToGrade(finalScore),
|
|
210
|
+
reason: `Best match for ${projectType} at ${context} scale`
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
return results;
|
|
214
|
+
}
|
|
215
|
+
// ============================================================================
|
|
216
|
+
// TOOL IMPLEMENTATION
|
|
217
|
+
// ============================================================================
|
|
218
|
+
/**
|
|
219
|
+
* Generate complete project kit.
|
|
220
|
+
*/
|
|
221
|
+
export function generateMCPKit(input) {
|
|
222
|
+
const { projectDescription, priorities: explicitPriorities, constraints: explicitConstraints } = input;
|
|
223
|
+
// Step 1: Analyze description
|
|
224
|
+
const projectType = input.projectType || detectProjectType(projectDescription);
|
|
225
|
+
const scale = input.scale || detectScale(projectDescription);
|
|
226
|
+
const priorities = explicitPriorities && explicitPriorities.length > 0
|
|
227
|
+
? explicitPriorities
|
|
228
|
+
: detectPriorities(projectDescription);
|
|
229
|
+
const constraints = extractConstraints(projectDescription, explicitConstraints);
|
|
230
|
+
info(`Generating kit for ${projectType} (${scale})`);
|
|
231
|
+
debug('Detected constraints:', constraints);
|
|
232
|
+
// Step 2: Get categories for this project type
|
|
233
|
+
const categories = PROJECT_TYPE_CATEGORIES[projectType] || PROJECT_TYPE_CATEGORIES['web-app'];
|
|
234
|
+
const context = scaleToContext(scale);
|
|
235
|
+
// Step 3: Select best tech per category
|
|
236
|
+
const techMap = selectBestTechPerCategory(categories, context, projectType);
|
|
237
|
+
// Step 4: Build stack output
|
|
238
|
+
const stack = {};
|
|
239
|
+
// Map categories to stack keys
|
|
240
|
+
const categoryToStackKey = {
|
|
241
|
+
frontend: 'frontend',
|
|
242
|
+
'meta-framework': 'frontend', // Meta-frameworks are frontend
|
|
243
|
+
backend: 'backend',
|
|
244
|
+
database: 'database',
|
|
245
|
+
orm: 'database', // ORM is part of database layer
|
|
246
|
+
auth: 'auth',
|
|
247
|
+
hosting: 'hosting',
|
|
248
|
+
payments: 'payments'
|
|
249
|
+
};
|
|
250
|
+
for (const [category, tech] of techMap.entries()) {
|
|
251
|
+
const stackKey = categoryToStackKey[category];
|
|
252
|
+
if (stackKey && !stack[stackKey]) {
|
|
253
|
+
stack[stackKey] = tech;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// Step 5: Match MCPs for the stack
|
|
257
|
+
const technologies = Array.from(techMap.values()).map((t) => t.name);
|
|
258
|
+
const mcps = matchMCPsForTechnologies(technologies);
|
|
259
|
+
// Step 6: Generate rationale
|
|
260
|
+
const rationale = generateRationale(projectType, scale, priorities, stack, mcps);
|
|
261
|
+
info(`Generated kit with ${Object.keys(stack).length} stack categories and ${mcps.length} MCPs`);
|
|
262
|
+
return {
|
|
263
|
+
stack,
|
|
264
|
+
mcps,
|
|
265
|
+
rationale,
|
|
266
|
+
detectedConstraints: constraints,
|
|
267
|
+
metadata: {
|
|
268
|
+
scoringVersion: DATA_VERSION,
|
|
269
|
+
generatedAt: new Date().toISOString()
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Generate human-readable rationale.
|
|
275
|
+
*/
|
|
276
|
+
function generateRationale(projectType, scale, priorities, stack, mcps) {
|
|
277
|
+
const projectLabel = projectType.replace(/-/g, ' ').replace(/\b\w/g, (c) => c.toUpperCase());
|
|
278
|
+
const techCount = Object.keys(stack).length;
|
|
279
|
+
const mcpCount = mcps.length;
|
|
280
|
+
let rationale = `For your ${projectLabel} at ${scale} scale`;
|
|
281
|
+
if (priorities.length > 0) {
|
|
282
|
+
rationale += ` with focus on ${priorities.join(', ')}`;
|
|
283
|
+
}
|
|
284
|
+
rationale += `, we recommend ${techCount} core technologies and ${mcpCount} MCP servers to enhance your development workflow.`;
|
|
285
|
+
// Add stack highlights
|
|
286
|
+
if (stack.frontend) {
|
|
287
|
+
rationale += ` ${stack.frontend.name} provides excellent developer experience and performance.`;
|
|
288
|
+
}
|
|
289
|
+
if (stack.database) {
|
|
290
|
+
rationale += ` ${stack.database.name} offers the right balance of scalability and ease of use.`;
|
|
291
|
+
}
|
|
292
|
+
// Add MCP highlights
|
|
293
|
+
const highPriorityMcps = mcps.filter((m) => m.priority === 'high');
|
|
294
|
+
if (highPriorityMcps.length > 0) {
|
|
295
|
+
rationale += ` Key MCPs like ${highPriorityMcps.map((m) => m.name).join(' and ')} will significantly improve your AI-assisted development.`;
|
|
296
|
+
}
|
|
297
|
+
return rationale;
|
|
298
|
+
}
|
|
299
|
+
// ============================================================================
|
|
300
|
+
// TOOL HANDLER
|
|
301
|
+
// ============================================================================
|
|
302
|
+
/**
|
|
303
|
+
* Tool definition for MCP server registration.
|
|
304
|
+
*/
|
|
305
|
+
export const generateMCPKitTool = {
|
|
306
|
+
name: 'generate_mcp_kit',
|
|
307
|
+
description: `Generate a complete project kit with optimal tech stack and MCP recommendations based on your project description.
|
|
308
|
+
|
|
309
|
+
Describe your project and get:
|
|
310
|
+
1. **Optimal Tech Stack**: Best technologies for each category (frontend, backend, database, auth, hosting, payments)
|
|
311
|
+
2. **MCP Recommendations**: AI-assistant tools tailored to your chosen technologies
|
|
312
|
+
3. **Install Configurations**: Ready-to-use configs for Claude Desktop, Cursor, and Windsurf
|
|
313
|
+
|
|
314
|
+
Example prompts:
|
|
315
|
+
- "I'm building a SaaS for project management with real-time collaboration"
|
|
316
|
+
- "Building an MVP for a marketplace connecting freelancers with clients"
|
|
317
|
+
- "Creating an e-commerce platform with Stripe payments and PostgreSQL"`,
|
|
318
|
+
inputSchema: {
|
|
319
|
+
type: 'object',
|
|
320
|
+
properties: {
|
|
321
|
+
projectDescription: {
|
|
322
|
+
type: 'string',
|
|
323
|
+
description: 'Describe your project (50-5000 chars). Include goals, features, and any preferences.',
|
|
324
|
+
minLength: 50,
|
|
325
|
+
maxLength: 5000
|
|
326
|
+
},
|
|
327
|
+
priorities: {
|
|
328
|
+
type: 'array',
|
|
329
|
+
items: {
|
|
330
|
+
type: 'string',
|
|
331
|
+
enum: PRIORITIES
|
|
332
|
+
},
|
|
333
|
+
maxItems: 3,
|
|
334
|
+
description: 'Top priorities (max 3): time-to-market, scalability, developer-experience, cost-efficiency, performance, security, maintainability'
|
|
335
|
+
},
|
|
336
|
+
constraints: {
|
|
337
|
+
type: 'array',
|
|
338
|
+
items: { type: 'string' },
|
|
339
|
+
description: 'Technology constraints (e.g., must-use-postgresql, self-hosted)'
|
|
340
|
+
},
|
|
341
|
+
projectType: {
|
|
342
|
+
type: 'string',
|
|
343
|
+
enum: PROJECT_TYPES,
|
|
344
|
+
description: 'Project type (auto-detected if not provided)'
|
|
345
|
+
},
|
|
346
|
+
scale: {
|
|
347
|
+
type: 'string',
|
|
348
|
+
enum: SCALES,
|
|
349
|
+
description: 'Project scale (auto-detected if not provided)'
|
|
350
|
+
}
|
|
351
|
+
},
|
|
352
|
+
required: ['projectDescription']
|
|
353
|
+
},
|
|
354
|
+
handler: async (params) => {
|
|
355
|
+
try {
|
|
356
|
+
const input = GenerateMCPKitInputSchema.parse(params);
|
|
357
|
+
const result = generateMCPKit(input);
|
|
358
|
+
// Format output for display
|
|
359
|
+
const output = formatKitOutput(result);
|
|
360
|
+
return {
|
|
361
|
+
content: [
|
|
362
|
+
{
|
|
363
|
+
type: 'text',
|
|
364
|
+
text: output
|
|
365
|
+
}
|
|
366
|
+
]
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
catch (err) {
|
|
370
|
+
if (err instanceof z.ZodError) {
|
|
371
|
+
error('Invalid input:', err.errors);
|
|
372
|
+
return {
|
|
373
|
+
content: [
|
|
374
|
+
{
|
|
375
|
+
type: 'text',
|
|
376
|
+
text: `Invalid input: ${err.errors.map((e) => `${e.path.join('.')}: ${e.message}`).join(', ')}`
|
|
377
|
+
}
|
|
378
|
+
],
|
|
379
|
+
isError: true
|
|
380
|
+
};
|
|
381
|
+
}
|
|
382
|
+
error('generate_mcp_kit error:', err);
|
|
383
|
+
throw err;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
};
|
|
387
|
+
// ============================================================================
|
|
388
|
+
// OUTPUT FORMATTING
|
|
389
|
+
// ============================================================================
|
|
390
|
+
/**
|
|
391
|
+
* Format kit output for display.
|
|
392
|
+
*/
|
|
393
|
+
function formatKitOutput(result) {
|
|
394
|
+
const lines = [];
|
|
395
|
+
lines.push('# Your Project Kit\n');
|
|
396
|
+
lines.push(result.rationale);
|
|
397
|
+
lines.push('');
|
|
398
|
+
// Stack Table
|
|
399
|
+
lines.push('## Recommended Tech Stack\n');
|
|
400
|
+
lines.push('| Category | Technology | Score | Grade |');
|
|
401
|
+
lines.push('|----------|------------|-------|-------|');
|
|
402
|
+
const stackEntries = Object.entries(result.stack);
|
|
403
|
+
for (const [category, tech] of stackEntries) {
|
|
404
|
+
lines.push(`| ${category} | ${tech.name} | ${tech.score} | ${tech.grade} |`);
|
|
405
|
+
}
|
|
406
|
+
lines.push('');
|
|
407
|
+
// MCPs
|
|
408
|
+
lines.push('## Recommended MCPs\n');
|
|
409
|
+
const highPriority = result.mcps.filter((m) => m.priority === 'high');
|
|
410
|
+
const mediumPriority = result.mcps.filter((m) => m.priority === 'medium');
|
|
411
|
+
const lowPriority = result.mcps.filter((m) => m.priority === 'low');
|
|
412
|
+
if (highPriority.length > 0) {
|
|
413
|
+
lines.push('### Must-Have (High Priority)\n');
|
|
414
|
+
for (const mcp of highPriority) {
|
|
415
|
+
lines.push(`**${mcp.name}** (\`${mcp.slug}\`)`);
|
|
416
|
+
lines.push(`- ${mcp.description}`);
|
|
417
|
+
lines.push(`- _Matched: ${mcp.matchedTech}_`);
|
|
418
|
+
lines.push('');
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
if (mediumPriority.length > 0) {
|
|
422
|
+
lines.push('### Recommended (Medium Priority)\n');
|
|
423
|
+
for (const mcp of mediumPriority) {
|
|
424
|
+
lines.push(`**${mcp.name}** (\`${mcp.slug}\`)`);
|
|
425
|
+
lines.push(`- ${mcp.description}`);
|
|
426
|
+
lines.push('');
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
if (lowPriority.length > 0) {
|
|
430
|
+
lines.push('### Nice-to-Have (Low Priority)\n');
|
|
431
|
+
for (const mcp of lowPriority) {
|
|
432
|
+
lines.push(`- **${mcp.name}**: ${mcp.description}`);
|
|
433
|
+
}
|
|
434
|
+
lines.push('');
|
|
435
|
+
}
|
|
436
|
+
// Detected Constraints
|
|
437
|
+
if (result.detectedConstraints.length > 0) {
|
|
438
|
+
lines.push('## Detected Constraints\n');
|
|
439
|
+
lines.push(result.detectedConstraints.map((c) => `- ${c}`).join('\n'));
|
|
440
|
+
lines.push('');
|
|
441
|
+
}
|
|
442
|
+
// Install Config
|
|
443
|
+
lines.push('## Quick Install\n');
|
|
444
|
+
const installConfig = generateInstallConfig(result.mcps);
|
|
445
|
+
lines.push('Add to your Claude Desktop config (`claude_desktop_config.json`):\n');
|
|
446
|
+
lines.push('```json');
|
|
447
|
+
lines.push(JSON.stringify(installConfig.claudeDesktop, null, 2));
|
|
448
|
+
lines.push('```\n');
|
|
449
|
+
// Metadata
|
|
450
|
+
lines.push(`---`);
|
|
451
|
+
lines.push(`*Scoring version: ${result.metadata.scoringVersion}*`);
|
|
452
|
+
lines.push(`*Generated: ${result.metadata.generatedAt}*`);
|
|
453
|
+
return lines.join('\n');
|
|
454
|
+
}
|
|
455
|
+
//# sourceMappingURL=generate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../../src/tools/project-kit/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCPFinder Project Kit Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all project-kit tools for MCP server registration:
|
|
5
|
+
* - generate_mcp_kit: Project description -> optimal stack + recommended MCPs
|
|
6
|
+
* - analyze_repo_mcps: Repository analysis -> detected stack -> recommended MCPs
|
|
7
|
+
* - prepare_mcp_installation: Analyze repo -> Generate .env-mcp template
|
|
8
|
+
* - execute_mcp_installation: Read .env-mcp -> Generate install commands
|
|
9
|
+
*/
|
|
10
|
+
export { generateMCPKitTool, generateMCPKit } from './generate.js';
|
|
11
|
+
export { analyzeRepoMcpsTool, analyzeRepo } from './analyze-repo.js';
|
|
12
|
+
export { prepareMCPInstallationTool, prepareMCPInstallation } from './prepare-installation.js';
|
|
13
|
+
export { executeMCPInstallationTool, executeMCPInstallation } from './execute-installation.js';
|
|
14
|
+
export * from './types.js';
|
|
15
|
+
export * from './installation-types.js';
|
|
16
|
+
export { detectStackFromFiles } from './detect-stack.js';
|
|
17
|
+
export { matchMCPsForStack, matchMCPsForTechnologies, generateInstallConfig, TECH_MCP_MAPPINGS } from './match-mcps.js';
|
|
18
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tools/project-kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAG/F,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AAGxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACN,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCPFinder Project Kit Module
|
|
3
|
+
*
|
|
4
|
+
* Exports all project-kit tools for MCP server registration:
|
|
5
|
+
* - generate_mcp_kit: Project description -> optimal stack + recommended MCPs
|
|
6
|
+
* - analyze_repo_mcps: Repository analysis -> detected stack -> recommended MCPs
|
|
7
|
+
* - prepare_mcp_installation: Analyze repo -> Generate .env-mcp template
|
|
8
|
+
* - execute_mcp_installation: Read .env-mcp -> Generate install commands
|
|
9
|
+
*/
|
|
10
|
+
// Tool handlers
|
|
11
|
+
export { generateMCPKitTool, generateMCPKit } from './generate.js';
|
|
12
|
+
export { analyzeRepoMcpsTool, analyzeRepo } from './analyze-repo.js';
|
|
13
|
+
export { prepareMCPInstallationTool, prepareMCPInstallation } from './prepare-installation.js';
|
|
14
|
+
export { executeMCPInstallationTool, executeMCPInstallation } from './execute-installation.js';
|
|
15
|
+
// Types
|
|
16
|
+
export * from './types.js';
|
|
17
|
+
export * from './installation-types.js';
|
|
18
|
+
// Detection utilities (for testing/advanced use)
|
|
19
|
+
export { detectStackFromFiles } from './detect-stack.js';
|
|
20
|
+
export { matchMCPsForStack, matchMCPsForTechnologies, generateInstallConfig, TECH_MCP_MAPPINGS } from './match-mcps.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tools/project-kit/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,gBAAgB;AAChB,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAC/F,OAAO,EAAE,0BAA0B,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAE/F,QAAQ;AACR,cAAc,YAAY,CAAC;AAC3B,cAAc,yBAAyB,CAAC;AAExC,iDAAiD;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EACN,iBAAiB,EACjB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,EACjB,MAAM,iBAAiB,CAAC"}
|