@stacksfinder/mcp-server 1.2.2 → 1.3.1
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 +126 -65
- package/dist/__tests__/mcp-tools.test.d.ts +8 -0
- package/dist/__tests__/mcp-tools.test.d.ts.map +1 -0
- package/dist/__tests__/mcp-tools.test.js +345 -0
- package/dist/__tests__/mcp-tools.test.js.map +1 -0
- package/dist/annotations.d.ts +4 -0
- package/dist/annotations.d.ts.map +1 -1
- package/dist/annotations.js +19 -0
- package/dist/annotations.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +51 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/audit.js +42 -42
- package/dist/tools/audit.js.map +1 -1
- package/dist/tools/check-compatibility.d.ts +1 -1
- package/dist/tools/check-compatibility.d.ts.map +1 -1
- package/dist/tools/check-compatibility.js +17 -17
- package/dist/tools/check-compatibility.js.map +1 -1
- package/dist/tools/estimator.d.ts +85 -0
- package/dist/tools/estimator.d.ts.map +1 -0
- package/dist/tools/estimator.js +326 -0
- package/dist/tools/estimator.js.map +1 -0
- package/dist/tools/project-kit/analyze-repo.js +12 -12
- package/dist/tools/project-kit/analyze-repo.js.map +1 -1
- package/package.json +3 -3
- package/dist/compatibility/index.d.ts +0 -11
- package/dist/compatibility/index.d.ts.map +0 -1
- package/dist/compatibility/index.js +0 -13
- package/dist/compatibility/index.js.map +0 -1
- package/dist/compatibility/rules.d.ts +0 -29
- package/dist/compatibility/rules.d.ts.map +0 -1
- package/dist/compatibility/rules.js +0 -419
- package/dist/compatibility/rules.js.map +0 -1
- package/dist/compatibility/scoring.d.ts +0 -54
- package/dist/compatibility/scoring.d.ts.map +0 -1
- package/dist/compatibility/scoring.js +0 -209
- package/dist/compatibility/scoring.js.map +0 -1
- package/dist/compatibility/types.d.ts +0 -176
- package/dist/compatibility/types.d.ts.map +0 -1
- package/dist/compatibility/types.js +0 -26
- package/dist/compatibility/types.js.map +0 -1
- package/dist/compatibility/utils.d.ts +0 -82
- package/dist/compatibility/utils.d.ts.map +0 -1
- package/dist/compatibility/utils.js +0 -269
- package/dist/compatibility/utils.js.map +0 -1
- 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" +0 -226
- package/dist/http.d.ts +0 -7
- package/dist/http.d.ts.map +0 -1
- package/dist/http.js +0 -69
- package/dist/http.js.map +0 -1
- package/dist/lib/mcp-compatibility/index.d.ts +0 -33
- package/dist/lib/mcp-compatibility/index.d.ts.map +0 -1
- package/dist/lib/mcp-compatibility/index.js +0 -35
- package/dist/lib/mcp-compatibility/index.js.map +0 -1
- package/dist/lib/mcp-compatibility/rules.d.ts +0 -29
- package/dist/lib/mcp-compatibility/rules.d.ts.map +0 -1
- package/dist/lib/mcp-compatibility/rules.js +0 -419
- package/dist/lib/mcp-compatibility/rules.js.map +0 -1
- package/dist/lib/mcp-compatibility/scoring.d.ts +0 -54
- package/dist/lib/mcp-compatibility/scoring.d.ts.map +0 -1
- package/dist/lib/mcp-compatibility/scoring.js +0 -209
- package/dist/lib/mcp-compatibility/scoring.js.map +0 -1
- package/dist/lib/mcp-compatibility/types.d.ts +0 -176
- package/dist/lib/mcp-compatibility/types.d.ts.map +0 -1
- package/dist/lib/mcp-compatibility/types.js +0 -26
- package/dist/lib/mcp-compatibility/types.js.map +0 -1
- package/dist/lib/mcp-compatibility/utils.d.ts +0 -82
- package/dist/lib/mcp-compatibility/utils.d.ts.map +0 -1
- package/dist/lib/mcp-compatibility/utils.js +0 -269
- package/dist/lib/mcp-compatibility/utils.js.map +0 -1
|
@@ -1,419 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Compatibility Rules
|
|
3
|
-
*
|
|
4
|
-
* 30 initial rules covering common conflicts, redundancies, and synergies.
|
|
5
|
-
* Rules are ordered alphabetically by pair key (mcpA < mcpB).
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* All compatibility rules.
|
|
9
|
-
* Each rule has mcpA < mcpB (alphabetically) for consistent indexing.
|
|
10
|
-
*/
|
|
11
|
-
export const COMPATIBILITY_RULES = [
|
|
12
|
-
// ============================================
|
|
13
|
-
// DATABASE CONFLICTS (4 rules)
|
|
14
|
-
// ============================================
|
|
15
|
-
{
|
|
16
|
-
id: 'db-001',
|
|
17
|
-
mcpA: 'neon-mcp',
|
|
18
|
-
mcpB: 'supabase-mcp',
|
|
19
|
-
status: 'conflict',
|
|
20
|
-
category: 'database',
|
|
21
|
-
severity: 'critical',
|
|
22
|
-
reason: 'Both provide managed PostgreSQL. Using multiple database providers increases complexity and cost.',
|
|
23
|
-
solution: 'Choose one database provider. Neon for serverless scale, Supabase for full BaaS features.',
|
|
24
|
-
recommendation: 'either',
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
id: 'db-002',
|
|
28
|
-
mcpA: 'planetscale-mcp',
|
|
29
|
-
mcpB: 'supabase-mcp',
|
|
30
|
-
status: 'conflict',
|
|
31
|
-
category: 'database',
|
|
32
|
-
severity: 'critical',
|
|
33
|
-
reason: 'PlanetScale (MySQL) and Supabase (PostgreSQL) are different database paradigms.',
|
|
34
|
-
solution: 'Choose one database. Consider query patterns and team expertise.',
|
|
35
|
-
recommendation: 'either',
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
id: 'db-003',
|
|
39
|
-
mcpA: 'neon-mcp',
|
|
40
|
-
mcpB: 'planetscale-mcp',
|
|
41
|
-
status: 'conflict',
|
|
42
|
-
category: 'database',
|
|
43
|
-
severity: 'critical',
|
|
44
|
-
reason: 'Neon (PostgreSQL) and PlanetScale (MySQL) are fundamentally different databases.',
|
|
45
|
-
solution: 'Pick one based on your ORM preference and team experience.',
|
|
46
|
-
recommendation: 'either',
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
id: 'db-004',
|
|
50
|
-
mcpA: 'neon-mcp',
|
|
51
|
-
mcpB: 'turso-mcp',
|
|
52
|
-
status: 'conflict',
|
|
53
|
-
category: 'database',
|
|
54
|
-
severity: 'warning',
|
|
55
|
-
reason: 'Both are serverless databases. Turso (SQLite) vs Neon (PostgreSQL) serve different use cases.',
|
|
56
|
-
solution: 'Use Turso for edge-first apps, Neon for traditional server workloads.',
|
|
57
|
-
recommendation: 'either',
|
|
58
|
-
},
|
|
59
|
-
// ============================================
|
|
60
|
-
// ORM REDUNDANCIES (3 rules)
|
|
61
|
-
// ============================================
|
|
62
|
-
{
|
|
63
|
-
id: 'orm-001',
|
|
64
|
-
mcpA: 'drizzle-mcp',
|
|
65
|
-
mcpB: 'prisma-mcp',
|
|
66
|
-
status: 'redundant',
|
|
67
|
-
category: 'orm',
|
|
68
|
-
severity: 'warning',
|
|
69
|
-
reason: 'Both are TypeScript ORMs. Having two ORMs creates inconsistent data access patterns.',
|
|
70
|
-
solution: 'Standardize on one ORM. Drizzle for SQL-first, Prisma for schema-first.',
|
|
71
|
-
recommendation: 'either',
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
id: 'orm-002',
|
|
75
|
-
mcpA: 'prisma-mcp',
|
|
76
|
-
mcpB: 'typeorm-mcp',
|
|
77
|
-
status: 'redundant',
|
|
78
|
-
category: 'orm',
|
|
79
|
-
severity: 'warning',
|
|
80
|
-
reason: 'Both are TypeScript ORMs with overlapping functionality.',
|
|
81
|
-
solution: 'Choose Prisma for better DX, TypeORM for decorator-based entities.',
|
|
82
|
-
recommendation: 'A',
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
id: 'orm-003',
|
|
86
|
-
mcpA: 'drizzle-mcp',
|
|
87
|
-
mcpB: 'typeorm-mcp',
|
|
88
|
-
status: 'redundant',
|
|
89
|
-
category: 'orm',
|
|
90
|
-
severity: 'warning',
|
|
91
|
-
reason: 'Multiple ORMs add complexity without clear benefit.',
|
|
92
|
-
solution: 'Standardize on Drizzle for modern SQL-like syntax.',
|
|
93
|
-
recommendation: 'A',
|
|
94
|
-
},
|
|
95
|
-
// ============================================
|
|
96
|
-
// AUTH CONFLICTS (3 rules)
|
|
97
|
-
// ============================================
|
|
98
|
-
{
|
|
99
|
-
id: 'auth-001',
|
|
100
|
-
mcpA: 'auth0-mcp',
|
|
101
|
-
mcpB: 'clerk-mcp',
|
|
102
|
-
status: 'conflict',
|
|
103
|
-
category: 'auth',
|
|
104
|
-
severity: 'warning',
|
|
105
|
-
reason: 'Both are full auth providers. Using multiple auth systems is confusing for users.',
|
|
106
|
-
solution: 'Choose Clerk for faster setup, Auth0 for enterprise compliance.',
|
|
107
|
-
recommendation: 'either',
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
id: 'auth-002',
|
|
111
|
-
mcpA: 'clerk-mcp',
|
|
112
|
-
mcpB: 'supabase-auth-mcp',
|
|
113
|
-
status: 'redundant',
|
|
114
|
-
category: 'auth',
|
|
115
|
-
severity: 'info',
|
|
116
|
-
reason: 'Both provide auth. Supabase Auth is included with Supabase, Clerk is standalone.',
|
|
117
|
-
solution: 'Use Supabase Auth if using Supabase DB, Clerk if you need more auth features.',
|
|
118
|
-
recommendation: 'either',
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
id: 'auth-003',
|
|
122
|
-
mcpA: 'auth0-mcp',
|
|
123
|
-
mcpB: 'lucia-mcp',
|
|
124
|
-
status: 'conflict',
|
|
125
|
-
category: 'auth',
|
|
126
|
-
severity: 'warning',
|
|
127
|
-
reason: 'Auth0 is hosted auth, Lucia is self-hosted. Different paradigms.',
|
|
128
|
-
solution: 'Use Auth0 for managed auth, Lucia for full control.',
|
|
129
|
-
recommendation: 'either',
|
|
130
|
-
},
|
|
131
|
-
// ============================================
|
|
132
|
-
// DATABASE + ORM SYNERGIES (4 rules)
|
|
133
|
-
// ============================================
|
|
134
|
-
{
|
|
135
|
-
id: 'syn-001',
|
|
136
|
-
mcpA: 'drizzle-mcp',
|
|
137
|
-
mcpB: 'neon-mcp',
|
|
138
|
-
status: 'synergy',
|
|
139
|
-
category: 'database',
|
|
140
|
-
severity: 'info',
|
|
141
|
-
reason: 'Drizzle + Neon is a powerful serverless stack with excellent TypeScript support.',
|
|
142
|
-
recommendation: 'both',
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
id: 'syn-002',
|
|
146
|
-
mcpA: 'drizzle-mcp',
|
|
147
|
-
mcpB: 'turso-mcp',
|
|
148
|
-
status: 'synergy',
|
|
149
|
-
category: 'database',
|
|
150
|
-
severity: 'info',
|
|
151
|
-
reason: 'Drizzle has first-class Turso support for edge-first SQLite applications.',
|
|
152
|
-
recommendation: 'both',
|
|
153
|
-
},
|
|
154
|
-
{
|
|
155
|
-
id: 'syn-003',
|
|
156
|
-
mcpA: 'prisma-mcp',
|
|
157
|
-
mcpB: 'supabase-mcp',
|
|
158
|
-
status: 'conditional',
|
|
159
|
-
category: 'database',
|
|
160
|
-
severity: 'info',
|
|
161
|
-
reason: 'Prisma works with Supabase but requires proper connection pooling setup.',
|
|
162
|
-
solution: 'Use Supabase connection pooler URL in Prisma schema.',
|
|
163
|
-
recommendation: 'both',
|
|
164
|
-
},
|
|
165
|
-
{
|
|
166
|
-
id: 'syn-004',
|
|
167
|
-
mcpA: 'planetscale-mcp',
|
|
168
|
-
mcpB: 'prisma-mcp',
|
|
169
|
-
status: 'synergy',
|
|
170
|
-
category: 'database',
|
|
171
|
-
severity: 'info',
|
|
172
|
-
reason: 'Prisma + PlanetScale is a well-documented, production-ready combination.',
|
|
173
|
-
recommendation: 'both',
|
|
174
|
-
},
|
|
175
|
-
// ============================================
|
|
176
|
-
// PLATFORM SYNERGIES (5 rules)
|
|
177
|
-
// ============================================
|
|
178
|
-
{
|
|
179
|
-
id: 'syn-005',
|
|
180
|
-
mcpA: 'github-mcp',
|
|
181
|
-
mcpB: 'vercel-mcp',
|
|
182
|
-
status: 'synergy',
|
|
183
|
-
category: 'deployment',
|
|
184
|
-
severity: 'info',
|
|
185
|
-
reason: 'Vercel has native GitHub integration for automatic deployments.',
|
|
186
|
-
recommendation: 'both',
|
|
187
|
-
suggestWhenMissing: ['vercel-mcp'],
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
id: 'syn-006',
|
|
191
|
-
mcpA: 'cloudflare-mcp',
|
|
192
|
-
mcpB: 'r2-mcp',
|
|
193
|
-
status: 'synergy',
|
|
194
|
-
category: 'storage',
|
|
195
|
-
severity: 'info',
|
|
196
|
-
reason: 'R2 is Cloudflare\'s S3-compatible storage, tightly integrated with Workers.',
|
|
197
|
-
recommendation: 'both',
|
|
198
|
-
suggestWhenMissing: ['r2-mcp'],
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
id: 'syn-007',
|
|
202
|
-
mcpA: 'resend-mcp',
|
|
203
|
-
mcpB: 'stripe-mcp',
|
|
204
|
-
status: 'synergy',
|
|
205
|
-
category: 'payments',
|
|
206
|
-
severity: 'info',
|
|
207
|
-
reason: 'Stripe for payments + Resend for transactional emails (receipts, invoices).',
|
|
208
|
-
recommendation: 'both',
|
|
209
|
-
suggestWhenMissing: ['resend-mcp'],
|
|
210
|
-
},
|
|
211
|
-
{
|
|
212
|
-
id: 'syn-008',
|
|
213
|
-
mcpA: 'supabase-auth-mcp',
|
|
214
|
-
mcpB: 'supabase-mcp',
|
|
215
|
-
status: 'synergy',
|
|
216
|
-
category: 'auth',
|
|
217
|
-
severity: 'info',
|
|
218
|
-
reason: 'Supabase Auth is built into Supabase and shares the same user context.',
|
|
219
|
-
recommendation: 'both',
|
|
220
|
-
},
|
|
221
|
-
{
|
|
222
|
-
id: 'syn-009',
|
|
223
|
-
mcpA: 'github-mcp',
|
|
224
|
-
mcpB: 'netlify-mcp',
|
|
225
|
-
status: 'synergy',
|
|
226
|
-
category: 'deployment',
|
|
227
|
-
severity: 'info',
|
|
228
|
-
reason: 'Netlify has native GitHub integration for CI/CD.',
|
|
229
|
-
recommendation: 'both',
|
|
230
|
-
},
|
|
231
|
-
// ============================================
|
|
232
|
-
// DEPLOYMENT REDUNDANCIES (3 rules)
|
|
233
|
-
// ============================================
|
|
234
|
-
{
|
|
235
|
-
id: 'deploy-001',
|
|
236
|
-
mcpA: 'netlify-mcp',
|
|
237
|
-
mcpB: 'vercel-mcp',
|
|
238
|
-
status: 'redundant',
|
|
239
|
-
category: 'deployment',
|
|
240
|
-
severity: 'warning',
|
|
241
|
-
reason: 'Both are frontend deployment platforms with similar features.',
|
|
242
|
-
solution: 'Choose Vercel for Next.js, Netlify for static sites and forms.',
|
|
243
|
-
recommendation: 'either',
|
|
244
|
-
},
|
|
245
|
-
{
|
|
246
|
-
id: 'deploy-002',
|
|
247
|
-
mcpA: 'fly-mcp',
|
|
248
|
-
mcpB: 'railway-mcp',
|
|
249
|
-
status: 'redundant',
|
|
250
|
-
category: 'deployment',
|
|
251
|
-
severity: 'info',
|
|
252
|
-
reason: 'Both are container deployment platforms targeting similar use cases.',
|
|
253
|
-
solution: 'Choose Railway for simpler DX, Fly for more control.',
|
|
254
|
-
recommendation: 'either',
|
|
255
|
-
},
|
|
256
|
-
{
|
|
257
|
-
id: 'deploy-003',
|
|
258
|
-
mcpA: 'cloudflare-mcp',
|
|
259
|
-
mcpB: 'vercel-mcp',
|
|
260
|
-
status: 'redundant',
|
|
261
|
-
category: 'deployment',
|
|
262
|
-
severity: 'info',
|
|
263
|
-
reason: 'Both offer edge computing. Consider your framework support needs.',
|
|
264
|
-
solution: 'Vercel for Next.js, Cloudflare for Workers/Pages.',
|
|
265
|
-
recommendation: 'either',
|
|
266
|
-
},
|
|
267
|
-
// ============================================
|
|
268
|
-
// PAYMENTS (2 rules)
|
|
269
|
-
// ============================================
|
|
270
|
-
{
|
|
271
|
-
id: 'pay-001',
|
|
272
|
-
mcpA: 'paddle-mcp',
|
|
273
|
-
mcpB: 'stripe-mcp',
|
|
274
|
-
status: 'conflict',
|
|
275
|
-
category: 'payments',
|
|
276
|
-
severity: 'warning',
|
|
277
|
-
reason: 'Both are payment processors. Using multiple adds complexity.',
|
|
278
|
-
solution: 'Paddle for MoR (handles taxes), Stripe for more control.',
|
|
279
|
-
recommendation: 'either',
|
|
280
|
-
},
|
|
281
|
-
{
|
|
282
|
-
id: 'pay-002',
|
|
283
|
-
mcpA: 'lemonsqueezy-mcp',
|
|
284
|
-
mcpB: 'paddle-mcp',
|
|
285
|
-
status: 'redundant',
|
|
286
|
-
category: 'payments',
|
|
287
|
-
severity: 'info',
|
|
288
|
-
reason: 'Both are Merchant of Record solutions with similar features.',
|
|
289
|
-
solution: 'LemonSqueezy for creators, Paddle for SaaS.',
|
|
290
|
-
recommendation: 'either',
|
|
291
|
-
},
|
|
292
|
-
// ============================================
|
|
293
|
-
// AI MCPs (3 rules)
|
|
294
|
-
// ============================================
|
|
295
|
-
{
|
|
296
|
-
id: 'ai-001',
|
|
297
|
-
mcpA: 'anthropic-mcp',
|
|
298
|
-
mcpB: 'openai-mcp',
|
|
299
|
-
status: 'compatible',
|
|
300
|
-
category: 'ai',
|
|
301
|
-
severity: 'info',
|
|
302
|
-
reason: 'Can use multiple AI providers for fallback or model comparison.',
|
|
303
|
-
recommendation: 'both',
|
|
304
|
-
},
|
|
305
|
-
{
|
|
306
|
-
id: 'ai-002',
|
|
307
|
-
mcpA: 'context7-mcp',
|
|
308
|
-
mcpB: 'perplexity-mcp',
|
|
309
|
-
status: 'synergy',
|
|
310
|
-
category: 'ai',
|
|
311
|
-
severity: 'info',
|
|
312
|
-
reason: 'Context7 for docs, Perplexity for web search - complementary capabilities.',
|
|
313
|
-
recommendation: 'both',
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
id: 'ai-003',
|
|
317
|
-
mcpA: 'brave-search-mcp',
|
|
318
|
-
mcpB: 'perplexity-mcp',
|
|
319
|
-
status: 'redundant',
|
|
320
|
-
category: 'ai',
|
|
321
|
-
severity: 'info',
|
|
322
|
-
reason: 'Both provide web search capabilities. Perplexity includes AI synthesis.',
|
|
323
|
-
solution: 'Choose Perplexity for AI answers, Brave for raw search results.',
|
|
324
|
-
recommendation: 'either',
|
|
325
|
-
},
|
|
326
|
-
// ============================================
|
|
327
|
-
// VERSION CONTROL (1 rule)
|
|
328
|
-
// ============================================
|
|
329
|
-
{
|
|
330
|
-
id: 'vcs-001',
|
|
331
|
-
mcpA: 'github-mcp',
|
|
332
|
-
mcpB: 'gitlab-mcp',
|
|
333
|
-
status: 'conflict',
|
|
334
|
-
category: 'version-control',
|
|
335
|
-
severity: 'warning',
|
|
336
|
-
reason: 'Using multiple Git platforms for the same project creates confusion.',
|
|
337
|
-
solution: 'Standardize on one platform for your organization.',
|
|
338
|
-
recommendation: 'either',
|
|
339
|
-
},
|
|
340
|
-
// ============================================
|
|
341
|
-
// MONITORING (1 rule)
|
|
342
|
-
// ============================================
|
|
343
|
-
{
|
|
344
|
-
id: 'mon-001',
|
|
345
|
-
mcpA: 'datadog-mcp',
|
|
346
|
-
mcpB: 'sentry-mcp',
|
|
347
|
-
status: 'synergy',
|
|
348
|
-
category: 'monitoring',
|
|
349
|
-
severity: 'info',
|
|
350
|
-
reason: 'Sentry for errors, Datadog for APM/metrics - different focus areas.',
|
|
351
|
-
recommendation: 'both',
|
|
352
|
-
},
|
|
353
|
-
// ============================================
|
|
354
|
-
// EMAIL (1 rule)
|
|
355
|
-
// ============================================
|
|
356
|
-
{
|
|
357
|
-
id: 'email-001',
|
|
358
|
-
mcpA: 'resend-mcp',
|
|
359
|
-
mcpB: 'sendgrid-mcp',
|
|
360
|
-
status: 'redundant',
|
|
361
|
-
category: 'email',
|
|
362
|
-
severity: 'info',
|
|
363
|
-
reason: 'Both are transactional email services with similar capabilities.',
|
|
364
|
-
solution: 'Choose Resend for modern DX, SendGrid for enterprise scale.',
|
|
365
|
-
recommendation: 'A',
|
|
366
|
-
},
|
|
367
|
-
];
|
|
368
|
-
/**
|
|
369
|
-
* Get all rules (for initialization)
|
|
370
|
-
*/
|
|
371
|
-
export function getAllRules() {
|
|
372
|
-
return COMPATIBILITY_RULES;
|
|
373
|
-
}
|
|
374
|
-
/**
|
|
375
|
-
* Get rules by category
|
|
376
|
-
*/
|
|
377
|
-
export function getRulesByCategory(category) {
|
|
378
|
-
return COMPATIBILITY_RULES.filter((rule) => rule.category === category);
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* Get rules by status
|
|
382
|
-
*/
|
|
383
|
-
export function getRulesByStatus(status) {
|
|
384
|
-
return COMPATIBILITY_RULES.filter((rule) => rule.status === status);
|
|
385
|
-
}
|
|
386
|
-
/**
|
|
387
|
-
* List of curated popular MCPs for the matrix UI
|
|
388
|
-
*/
|
|
389
|
-
export const CURATED_MCPS = [
|
|
390
|
-
// Database
|
|
391
|
-
'supabase-mcp',
|
|
392
|
-
'neon-mcp',
|
|
393
|
-
'planetscale-mcp',
|
|
394
|
-
'turso-mcp',
|
|
395
|
-
// ORM
|
|
396
|
-
'prisma-mcp',
|
|
397
|
-
'drizzle-mcp',
|
|
398
|
-
// Auth
|
|
399
|
-
'clerk-mcp',
|
|
400
|
-
'auth0-mcp',
|
|
401
|
-
// Payments
|
|
402
|
-
'stripe-mcp',
|
|
403
|
-
'paddle-mcp',
|
|
404
|
-
// Deployment
|
|
405
|
-
'vercel-mcp',
|
|
406
|
-
'netlify-mcp',
|
|
407
|
-
'cloudflare-mcp',
|
|
408
|
-
// AI
|
|
409
|
-
'openai-mcp',
|
|
410
|
-
'anthropic-mcp',
|
|
411
|
-
'context7-mcp',
|
|
412
|
-
// Version Control
|
|
413
|
-
'github-mcp',
|
|
414
|
-
// Email
|
|
415
|
-
'resend-mcp',
|
|
416
|
-
// Monitoring
|
|
417
|
-
'sentry-mcp',
|
|
418
|
-
];
|
|
419
|
-
//# sourceMappingURL=rules.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../src/compatibility/rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP Compatibility Scoring
|
|
3
|
-
*
|
|
4
|
-
* Health score calculation based on conflicts, redundancies, and synergies.
|
|
5
|
-
*/
|
|
6
|
-
import type { CompatibilityReport, Grade, MatchedRule } from './types.js';
|
|
7
|
-
import type { CompatibilityRule } from './types.js';
|
|
8
|
-
/**
|
|
9
|
-
* Calculate the health score from matched rules.
|
|
10
|
-
*
|
|
11
|
-
* Formula:
|
|
12
|
-
* - Base: 100
|
|
13
|
-
* - -40 per conflict (critical)
|
|
14
|
-
* - -20 per conflict (warning)
|
|
15
|
-
* - -10 per redundant (warning)
|
|
16
|
-
* - -5 per redundant (info)
|
|
17
|
-
* - +5 per synergy (cap +15)
|
|
18
|
-
* - Clamp 0..100
|
|
19
|
-
*
|
|
20
|
-
* @param conflicts - Array of conflict rules
|
|
21
|
-
* @param redundancies - Array of redundancy rules
|
|
22
|
-
* @param synergies - Array of synergy rules
|
|
23
|
-
* @returns Score between 0 and 100
|
|
24
|
-
*/
|
|
25
|
-
export declare function calculateHealthScore(conflicts: MatchedRule[], redundancies: MatchedRule[], synergies: MatchedRule[]): number;
|
|
26
|
-
/**
|
|
27
|
-
* Get grade from score.
|
|
28
|
-
*
|
|
29
|
-
* - A: 90-100
|
|
30
|
-
* - B: 75-89
|
|
31
|
-
* - C: 55-74
|
|
32
|
-
* - D: < 55
|
|
33
|
-
*/
|
|
34
|
-
export declare function getGrade(score: number): Grade;
|
|
35
|
-
/**
|
|
36
|
-
* Generate a full compatibility report for a set of MCPs.
|
|
37
|
-
*
|
|
38
|
-
* @param mcps - Array of MCP IDs to analyze
|
|
39
|
-
* @param allRules - All compatibility rules (for suggestions)
|
|
40
|
-
* @returns Full compatibility report
|
|
41
|
-
*/
|
|
42
|
-
export declare function generateReport(mcps: string[], allRules: CompatibilityRule[]): CompatibilityReport;
|
|
43
|
-
/**
|
|
44
|
-
* Format a compatibility report as Markdown.
|
|
45
|
-
*
|
|
46
|
-
* @param report - The compatibility report to format
|
|
47
|
-
* @returns Markdown string
|
|
48
|
-
*/
|
|
49
|
-
export declare function formatReportAsMarkdown(report: CompatibilityReport): string;
|
|
50
|
-
/**
|
|
51
|
-
* Get a short summary line for the report.
|
|
52
|
-
*/
|
|
53
|
-
export declare function getReportSummaryLine(report: CompatibilityReport): string;
|
|
54
|
-
//# sourceMappingURL=scoring.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scoring.d.ts","sourceRoot":"","sources":["../../src/compatibility/scoring.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,mBAAmB,EAEnB,KAAK,EACL,WAAW,EAEZ,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA0BpD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,WAAW,EAAE,EACxB,YAAY,EAAE,WAAW,EAAE,EAC3B,SAAS,EAAE,WAAW,EAAE,GACvB,MAAM,CA8BR;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAK7C;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE,MAAM,EAAE,EACd,QAAQ,EAAE,iBAAiB,EAAE,GAC5B,mBAAmB,CAgCrB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CA8E1E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CASxE"}
|