start-vibing 2.0.6 → 2.0.7
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/dist/cli.js +242 -1
- package/package.json +1 -1
- package/template/.claude/config/mcp-config.json +330 -0
- package/template/.claude/scripts/mcp-quick-install.ts +151 -0
- package/template/.claude/scripts/setup-mcps.ts +628 -0
- package/template/.claude/settings.json +3 -1
- package/template/.claude/skills/codebase-knowledge/domains/mcp-integration.md +281 -0
package/dist/cli.js
CHANGED
|
@@ -416,6 +416,233 @@ function launchClaude(cwd) {
|
|
|
416
416
|
});
|
|
417
417
|
}
|
|
418
418
|
|
|
419
|
+
// src/mcp.ts
|
|
420
|
+
import { spawnSync as spawnSync2, spawn as spawn2 } from "child_process";
|
|
421
|
+
var CORE_MCPS = [
|
|
422
|
+
{
|
|
423
|
+
name: "context7",
|
|
424
|
+
description: "Real-time library documentation",
|
|
425
|
+
command: "npx",
|
|
426
|
+
args: ["-y", "@upstash/context7-mcp@latest"]
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
name: "sequential-thinking",
|
|
430
|
+
description: "Structured reasoning for complex problems",
|
|
431
|
+
command: "npx",
|
|
432
|
+
args: ["-y", "@modelcontextprotocol/server-sequential-thinking"]
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
name: "memory",
|
|
436
|
+
description: "Persistent context across sessions",
|
|
437
|
+
command: "npx",
|
|
438
|
+
args: ["-y", "@modelcontextprotocol/server-memory"]
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
name: "playwright",
|
|
442
|
+
description: "Browser automation and E2E testing",
|
|
443
|
+
command: "npx",
|
|
444
|
+
args: ["-y", "@playwright/mcp@latest"]
|
|
445
|
+
}
|
|
446
|
+
];
|
|
447
|
+
var OPTIONAL_MCPS = [
|
|
448
|
+
{
|
|
449
|
+
name: "nextjs-devtools",
|
|
450
|
+
description: "Next.js development tools (requires Next.js project)",
|
|
451
|
+
command: "npx",
|
|
452
|
+
args: ["-y", "next-devtools-mcp@latest"],
|
|
453
|
+
optional: true
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
name: "mongodb",
|
|
457
|
+
description: "MongoDB database operations",
|
|
458
|
+
command: "npx",
|
|
459
|
+
args: ["-y", "@mongodb-js/mongodb-mcp-server"],
|
|
460
|
+
envVars: ["MONGODB_URI"],
|
|
461
|
+
optional: true
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
name: "github",
|
|
465
|
+
description: "GitHub repository management",
|
|
466
|
+
command: "claude",
|
|
467
|
+
args: ["mcp", "add", "--transport", "http", "-s", "user", "github", "https://api.githubcopilot.com/mcp/"],
|
|
468
|
+
transport: "http",
|
|
469
|
+
url: "https://api.githubcopilot.com/mcp/",
|
|
470
|
+
envVars: ["GITHUB_PERSONAL_ACCESS_TOKEN"],
|
|
471
|
+
optional: true
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
name: "sentry",
|
|
475
|
+
description: "Error tracking and monitoring",
|
|
476
|
+
command: "claude",
|
|
477
|
+
args: ["mcp", "add", "--transport", "http", "-s", "user", "sentry", "https://mcp.sentry.dev/mcp"],
|
|
478
|
+
transport: "http",
|
|
479
|
+
url: "https://mcp.sentry.dev/mcp",
|
|
480
|
+
optional: true
|
|
481
|
+
},
|
|
482
|
+
{
|
|
483
|
+
name: "brave-search",
|
|
484
|
+
description: "Web search for research",
|
|
485
|
+
command: "npx",
|
|
486
|
+
args: ["-y", "@modelcontextprotocol/server-brave-search"],
|
|
487
|
+
envVars: ["BRAVE_API_KEY"],
|
|
488
|
+
optional: true
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
name: "figma",
|
|
492
|
+
description: "Design to code workflows",
|
|
493
|
+
command: "claude",
|
|
494
|
+
args: ["mcp", "add", "--transport", "http", "-s", "user", "figma", "https://mcp.figma.com/mcp"],
|
|
495
|
+
transport: "http",
|
|
496
|
+
url: "https://mcp.figma.com/mcp",
|
|
497
|
+
optional: true
|
|
498
|
+
}
|
|
499
|
+
];
|
|
500
|
+
var c = {
|
|
501
|
+
reset: "\x1B[0m",
|
|
502
|
+
bright: "\x1B[1m",
|
|
503
|
+
dim: "\x1B[2m",
|
|
504
|
+
green: "\x1B[32m",
|
|
505
|
+
yellow: "\x1B[33m",
|
|
506
|
+
blue: "\x1B[34m",
|
|
507
|
+
cyan: "\x1B[36m",
|
|
508
|
+
red: "\x1B[31m",
|
|
509
|
+
magenta: "\x1B[35m"
|
|
510
|
+
};
|
|
511
|
+
function isClaudeMcpReady() {
|
|
512
|
+
return commandExists("claude");
|
|
513
|
+
}
|
|
514
|
+
function isMcpInstalled(name) {
|
|
515
|
+
try {
|
|
516
|
+
const result = spawnSync2("claude", ["mcp", "get", name], {
|
|
517
|
+
encoding: "utf-8",
|
|
518
|
+
stdio: ["pipe", "pipe", "pipe"],
|
|
519
|
+
shell: true,
|
|
520
|
+
timeout: 1e4
|
|
521
|
+
});
|
|
522
|
+
return result.status === 0;
|
|
523
|
+
} catch {
|
|
524
|
+
return false;
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
async function installMcp(server) {
|
|
528
|
+
if (isMcpInstalled(server.name)) {
|
|
529
|
+
return {
|
|
530
|
+
server: server.name,
|
|
531
|
+
success: true,
|
|
532
|
+
message: "Already installed",
|
|
533
|
+
skipped: true
|
|
534
|
+
};
|
|
535
|
+
}
|
|
536
|
+
return new Promise((resolve) => {
|
|
537
|
+
let args;
|
|
538
|
+
if (server.transport === "http" && server.url) {
|
|
539
|
+
args = server.args;
|
|
540
|
+
} else {
|
|
541
|
+
args = ["mcp", "add", "-s", "user", server.name, "--", server.command, ...server.args];
|
|
542
|
+
}
|
|
543
|
+
const cmd = server.transport === "http" ? "claude" : "claude";
|
|
544
|
+
const proc = spawn2(cmd, args, {
|
|
545
|
+
shell: true,
|
|
546
|
+
stdio: ["pipe", "pipe", "pipe"]
|
|
547
|
+
});
|
|
548
|
+
let stdout = "";
|
|
549
|
+
let stderr = "";
|
|
550
|
+
proc.stdout?.on("data", (data) => {
|
|
551
|
+
stdout += data.toString();
|
|
552
|
+
});
|
|
553
|
+
proc.stderr?.on("data", (data) => {
|
|
554
|
+
stderr += data.toString();
|
|
555
|
+
});
|
|
556
|
+
proc.on("close", (code) => {
|
|
557
|
+
if (code === 0) {
|
|
558
|
+
resolve({
|
|
559
|
+
server: server.name,
|
|
560
|
+
success: true,
|
|
561
|
+
message: "Installed"
|
|
562
|
+
});
|
|
563
|
+
} else {
|
|
564
|
+
resolve({
|
|
565
|
+
server: server.name,
|
|
566
|
+
success: false,
|
|
567
|
+
message: stderr || stdout || `Exit code: ${code}`
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
});
|
|
571
|
+
proc.on("error", (err) => {
|
|
572
|
+
resolve({
|
|
573
|
+
server: server.name,
|
|
574
|
+
success: false,
|
|
575
|
+
message: err.message
|
|
576
|
+
});
|
|
577
|
+
});
|
|
578
|
+
setTimeout(() => {
|
|
579
|
+
proc.kill();
|
|
580
|
+
resolve({
|
|
581
|
+
server: server.name,
|
|
582
|
+
success: false,
|
|
583
|
+
message: "Installation timed out"
|
|
584
|
+
});
|
|
585
|
+
}, 60000);
|
|
586
|
+
});
|
|
587
|
+
}
|
|
588
|
+
async function installMcpsParallel(servers, concurrency = 3) {
|
|
589
|
+
const results = [];
|
|
590
|
+
for (let i = 0;i < servers.length; i += concurrency) {
|
|
591
|
+
const batch = servers.slice(i, i + concurrency);
|
|
592
|
+
const batchResults = await Promise.all(batch.map(async (server) => {
|
|
593
|
+
process.stdout.write(` ${c.dim}Installing ${server.name}...${c.reset}`);
|
|
594
|
+
const result = await installMcp(server);
|
|
595
|
+
process.stdout.clearLine?.(0);
|
|
596
|
+
process.stdout.cursorTo?.(0);
|
|
597
|
+
const icon = result.success ? `${c.green}\u2713${c.reset}` : `${c.red}\u2717${c.reset}`;
|
|
598
|
+
const status = result.skipped ? `${c.dim}(already installed)${c.reset}` : result.success ? `${c.green}OK${c.reset}` : `${c.red}${result.message}${c.reset}`;
|
|
599
|
+
console.log(` ${icon} ${c.cyan}${server.name}${c.reset}: ${server.description} ${status}`);
|
|
600
|
+
return result;
|
|
601
|
+
}));
|
|
602
|
+
results.push(...batchResults);
|
|
603
|
+
}
|
|
604
|
+
return results;
|
|
605
|
+
}
|
|
606
|
+
async function installMcps() {
|
|
607
|
+
console.log("");
|
|
608
|
+
console.log(` ${c.bright}${c.magenta}Installing MCP Servers...${c.reset}`);
|
|
609
|
+
console.log("");
|
|
610
|
+
if (!isClaudeMcpReady()) {
|
|
611
|
+
console.log(` ${c.yellow}Claude CLI not available. Skipping MCP installation.${c.reset}`);
|
|
612
|
+
console.log(` ${c.dim}MCPs will be installed on next run after Claude is ready.${c.reset}`);
|
|
613
|
+
return { installed: 0, failed: 0, skipped: CORE_MCPS.length };
|
|
614
|
+
}
|
|
615
|
+
console.log(` ${c.blue}Core MCPs (auto-installed):${c.reset}`);
|
|
616
|
+
console.log("");
|
|
617
|
+
const results = await installMcpsParallel(CORE_MCPS, 3);
|
|
618
|
+
const installed = results.filter((r) => r.success && !r.skipped).length;
|
|
619
|
+
const failed = results.filter((r) => !r.success).length;
|
|
620
|
+
const skipped = results.filter((r) => r.skipped).length;
|
|
621
|
+
console.log("");
|
|
622
|
+
console.log(` ${c.yellow}Optional MCPs (install manually if needed):${c.reset}`);
|
|
623
|
+
console.log("");
|
|
624
|
+
for (const mcp of OPTIONAL_MCPS) {
|
|
625
|
+
const envNote = mcp.envVars?.length ? `${c.dim}(requires: ${mcp.envVars.join(", ")})${c.reset}` : "";
|
|
626
|
+
console.log(` ${c.cyan}${mcp.name}${c.reset}: ${mcp.description} ${envNote}`);
|
|
627
|
+
if (mcp.transport === "http") {
|
|
628
|
+
console.log(` ${c.dim}claude mcp add --transport http -s user ${mcp.name} ${mcp.url}${c.reset}`);
|
|
629
|
+
} else {
|
|
630
|
+
console.log(` ${c.dim}claude mcp add -s user ${mcp.name} -- ${mcp.command} ${mcp.args.join(" ")}${c.reset}`);
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
console.log("");
|
|
634
|
+
console.log(` ${c.bright}MCP Summary:${c.reset}`);
|
|
635
|
+
console.log(` ${c.green}Installed: ${installed}${c.reset}`);
|
|
636
|
+
if (skipped > 0)
|
|
637
|
+
console.log(` ${c.dim}Already installed: ${skipped}${c.reset}`);
|
|
638
|
+
if (failed > 0)
|
|
639
|
+
console.log(` ${c.red}Failed: ${failed}${c.reset}`);
|
|
640
|
+
console.log("");
|
|
641
|
+
console.log(` ${c.dim}Verify with: claude mcp list${c.reset}`);
|
|
642
|
+
console.log(` ${c.dim}Or inside Claude Code: /mcp${c.reset}`);
|
|
643
|
+
return { installed, failed, skipped };
|
|
644
|
+
}
|
|
645
|
+
|
|
419
646
|
// src/cli.ts
|
|
420
647
|
var __filename3 = fileURLToPath2(import.meta.url);
|
|
421
648
|
var __dirname3 = dirname2(__filename3);
|
|
@@ -461,6 +688,7 @@ ${BANNER}
|
|
|
461
688
|
Options:
|
|
462
689
|
--force Overwrite all files (including custom domains)
|
|
463
690
|
--no-claude Skip Claude Code installation and launch
|
|
691
|
+
--no-mcp Skip MCP server installation
|
|
464
692
|
--no-update-check Skip checking for start-vibing updates
|
|
465
693
|
--help, -h Show this help message
|
|
466
694
|
--version, -v Show version
|
|
@@ -469,7 +697,8 @@ ${BANNER}
|
|
|
469
697
|
1. Checks for start-vibing updates (cached for 1 hour)
|
|
470
698
|
2. Creates .claude/ folder with agents, skills, hooks, config
|
|
471
699
|
3. Installs Claude Code if not found on system
|
|
472
|
-
4.
|
|
700
|
+
4. Installs recommended MCP servers (Context7, Playwright, etc.)
|
|
701
|
+
5. Launches Claude Code with --dangerously-skip-permissions
|
|
473
702
|
|
|
474
703
|
Smart Copy Behavior:
|
|
475
704
|
- ALWAYS overwrites: agents/*.md, hooks/*.py, settings.json
|
|
@@ -500,6 +729,7 @@ async function main() {
|
|
|
500
729
|
}
|
|
501
730
|
const force = args.includes("--force");
|
|
502
731
|
const skipClaude = args.includes("--no-claude");
|
|
732
|
+
const skipMcp = args.includes("--no-mcp");
|
|
503
733
|
const skipUpdateCheck = args.includes("--no-update-check");
|
|
504
734
|
const targetDir = process.cwd();
|
|
505
735
|
if (!skipUpdateCheck) {
|
|
@@ -573,6 +803,17 @@ async function main() {
|
|
|
573
803
|
} else {
|
|
574
804
|
console.log(" Claude Code is already installed.");
|
|
575
805
|
}
|
|
806
|
+
if (!skipMcp && isClaudeMcpReady()) {
|
|
807
|
+
console.log("");
|
|
808
|
+
console.log(" ========================================");
|
|
809
|
+
console.log(" MCP Servers Setup");
|
|
810
|
+
console.log(" ========================================");
|
|
811
|
+
await installMcps();
|
|
812
|
+
} else if (!skipMcp) {
|
|
813
|
+
console.log("");
|
|
814
|
+
console.log(" MCP installation skipped (Claude CLI not ready).");
|
|
815
|
+
console.log(' Run "claude mcp list" after restart to verify.');
|
|
816
|
+
}
|
|
576
817
|
console.log("");
|
|
577
818
|
launchClaude(targetDir);
|
|
578
819
|
} else {
|
package/package.json
CHANGED
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$comment": "MCP Server Configuration - Recommended servers based on project stack and security review",
|
|
4
|
+
|
|
5
|
+
"metadata": {
|
|
6
|
+
"version": "1.0.0",
|
|
7
|
+
"lastUpdated": "2025-01-04",
|
|
8
|
+
"researchSources": [
|
|
9
|
+
"https://modelcontextprotocol.io/specification/2025-11-25",
|
|
10
|
+
"https://registry.modelcontextprotocol.io",
|
|
11
|
+
"https://github.com/modelcontextprotocol/servers",
|
|
12
|
+
"https://github.com/punkpeye/awesome-mcp-servers",
|
|
13
|
+
"https://docs.docker.com/ai/mcp-catalog-and-toolkit/catalog/"
|
|
14
|
+
]
|
|
15
|
+
},
|
|
16
|
+
|
|
17
|
+
"tiers": {
|
|
18
|
+
"core": {
|
|
19
|
+
"description": "Essential MCPs for daily development - Must install",
|
|
20
|
+
"servers": ["github", "nextjs-devtools", "mongodb", "playwright", "context7", "sequential-thinking"]
|
|
21
|
+
},
|
|
22
|
+
"productivity": {
|
|
23
|
+
"description": "Enhanced productivity and monitoring",
|
|
24
|
+
"servers": ["sentry", "figma", "brave-search", "memory", "time"]
|
|
25
|
+
},
|
|
26
|
+
"infrastructure": {
|
|
27
|
+
"description": "DevOps and infrastructure tools",
|
|
28
|
+
"servers": ["docker-hub", "upstash", "fetch"]
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
"servers": {
|
|
33
|
+
"github": {
|
|
34
|
+
"name": "GitHub MCP Server",
|
|
35
|
+
"description": "Official GitHub server for repository management, issues, PRs, and CI/CD",
|
|
36
|
+
"tier": "core",
|
|
37
|
+
"verified": true,
|
|
38
|
+
"publisher": "github",
|
|
39
|
+
"repository": "https://github.com/github/github-mcp-server",
|
|
40
|
+
"transport": "http",
|
|
41
|
+
"config": {
|
|
42
|
+
"remote": {
|
|
43
|
+
"url": "https://api.githubcopilot.com/mcp/"
|
|
44
|
+
},
|
|
45
|
+
"local": {
|
|
46
|
+
"command": "docker",
|
|
47
|
+
"args": ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"]
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"envVars": ["GITHUB_PERSONAL_ACCESS_TOKEN"],
|
|
51
|
+
"requiredPermissions": ["repo", "read:org", "read:user"],
|
|
52
|
+
"agentMappings": ["commit-manager", "code-reviewer", "quality-checker"],
|
|
53
|
+
"securityNotes": "Use fine-grained PAT with minimal scopes. Never commit tokens."
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
"nextjs-devtools": {
|
|
57
|
+
"name": "Next.js DevTools MCP",
|
|
58
|
+
"description": "Official Vercel server for Next.js 16+ development with error detection and live state",
|
|
59
|
+
"tier": "core",
|
|
60
|
+
"verified": true,
|
|
61
|
+
"publisher": "vercel",
|
|
62
|
+
"repository": "https://github.com/vercel/next-devtools-mcp",
|
|
63
|
+
"transport": "stdio",
|
|
64
|
+
"config": {
|
|
65
|
+
"command": "npx",
|
|
66
|
+
"args": ["-y", "next-devtools-mcp@latest"]
|
|
67
|
+
},
|
|
68
|
+
"envVars": [],
|
|
69
|
+
"requiredPermissions": [],
|
|
70
|
+
"agentMappings": ["debugger", "performance", "quality-checker"],
|
|
71
|
+
"securityNotes": "Safe - connects to local dev server only"
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
"mongodb": {
|
|
75
|
+
"name": "MongoDB MCP Server",
|
|
76
|
+
"description": "Official MongoDB server for database operations on Atlas and local MongoDB",
|
|
77
|
+
"tier": "core",
|
|
78
|
+
"verified": true,
|
|
79
|
+
"publisher": "mongodb-js",
|
|
80
|
+
"repository": "https://github.com/mongodb-js/mongodb-mcp-server",
|
|
81
|
+
"transport": "stdio",
|
|
82
|
+
"config": {
|
|
83
|
+
"command": "npx",
|
|
84
|
+
"args": ["-y", "@mongodb-js/mongodb-mcp-server"],
|
|
85
|
+
"options": {
|
|
86
|
+
"readOnly": false,
|
|
87
|
+
"connectionString": "${MONGODB_URI}"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
"envVars": ["MONGODB_URI"],
|
|
91
|
+
"requiredPermissions": ["database read/write"],
|
|
92
|
+
"agentMappings": ["analyzer", "debugger", "performance"],
|
|
93
|
+
"securityNotes": "Enable readOnly mode for production. Use connection strings with minimal privileges."
|
|
94
|
+
},
|
|
95
|
+
|
|
96
|
+
"playwright": {
|
|
97
|
+
"name": "Playwright MCP Server",
|
|
98
|
+
"description": "Official Microsoft server for browser automation and E2E testing",
|
|
99
|
+
"tier": "core",
|
|
100
|
+
"verified": true,
|
|
101
|
+
"publisher": "microsoft",
|
|
102
|
+
"repository": "https://github.com/microsoft/playwright-mcp",
|
|
103
|
+
"transport": "stdio",
|
|
104
|
+
"config": {
|
|
105
|
+
"command": "npx",
|
|
106
|
+
"args": ["-y", "@playwright/mcp@latest"]
|
|
107
|
+
},
|
|
108
|
+
"envVars": [],
|
|
109
|
+
"requiredPermissions": [],
|
|
110
|
+
"agentMappings": ["tester", "ui-ux-reviewer", "quality-checker"],
|
|
111
|
+
"securityNotes": "Safe - runs in isolated browser context"
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
"context7": {
|
|
115
|
+
"name": "Context7 MCP",
|
|
116
|
+
"description": "Real-time, version-specific documentation for libraries and frameworks",
|
|
117
|
+
"tier": "core",
|
|
118
|
+
"verified": true,
|
|
119
|
+
"publisher": "upstash",
|
|
120
|
+
"repository": "https://github.com/upstash/context7",
|
|
121
|
+
"transport": "stdio",
|
|
122
|
+
"config": {
|
|
123
|
+
"command": "npx",
|
|
124
|
+
"args": ["-y", "@upstash/context7-mcp@latest"]
|
|
125
|
+
},
|
|
126
|
+
"envVars": [],
|
|
127
|
+
"requiredPermissions": [],
|
|
128
|
+
"agentMappings": ["research", "analyzer", "documenter"],
|
|
129
|
+
"securityNotes": "Safe - read-only documentation fetching"
|
|
130
|
+
},
|
|
131
|
+
|
|
132
|
+
"sequential-thinking": {
|
|
133
|
+
"name": "Sequential Thinking MCP",
|
|
134
|
+
"description": "Structured reasoning for complex problem-solving and planning",
|
|
135
|
+
"tier": "core",
|
|
136
|
+
"verified": true,
|
|
137
|
+
"publisher": "modelcontextprotocol",
|
|
138
|
+
"repository": "https://github.com/modelcontextprotocol/servers/tree/main/src/sequentialthinking",
|
|
139
|
+
"transport": "stdio",
|
|
140
|
+
"config": {
|
|
141
|
+
"command": "npx",
|
|
142
|
+
"args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
|
|
143
|
+
},
|
|
144
|
+
"envVars": [],
|
|
145
|
+
"requiredPermissions": [],
|
|
146
|
+
"agentMappings": ["orchestrator", "analyzer", "debugger"],
|
|
147
|
+
"securityNotes": "Safe - no external connections"
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
"sentry": {
|
|
151
|
+
"name": "Sentry MCP Server",
|
|
152
|
+
"description": "Error tracking, monitoring, and AI-powered debugging with Seer",
|
|
153
|
+
"tier": "productivity",
|
|
154
|
+
"verified": true,
|
|
155
|
+
"publisher": "getsentry",
|
|
156
|
+
"repository": "https://github.com/getsentry/sentry-mcp-stdio",
|
|
157
|
+
"transport": "http",
|
|
158
|
+
"config": {
|
|
159
|
+
"url": "https://mcp.sentry.dev/mcp"
|
|
160
|
+
},
|
|
161
|
+
"envVars": [],
|
|
162
|
+
"requiredPermissions": ["Sentry OAuth"],
|
|
163
|
+
"agentMappings": ["debugger", "quality-checker", "performance"],
|
|
164
|
+
"securityNotes": "Requires OAuth authentication to Sentry"
|
|
165
|
+
},
|
|
166
|
+
|
|
167
|
+
"figma": {
|
|
168
|
+
"name": "Figma MCP Server",
|
|
169
|
+
"description": "Design-to-code workflows with direct Figma integration",
|
|
170
|
+
"tier": "productivity",
|
|
171
|
+
"verified": true,
|
|
172
|
+
"publisher": "figma",
|
|
173
|
+
"repository": "https://github.com/figma/mcp-server-guide",
|
|
174
|
+
"transport": "http",
|
|
175
|
+
"config": {
|
|
176
|
+
"url": "https://mcp.figma.com/mcp"
|
|
177
|
+
},
|
|
178
|
+
"envVars": [],
|
|
179
|
+
"requiredPermissions": ["Figma OAuth"],
|
|
180
|
+
"agentMappings": ["ui-ux-reviewer", "documenter"],
|
|
181
|
+
"securityNotes": "Requires Figma account. Rate limited based on plan."
|
|
182
|
+
},
|
|
183
|
+
|
|
184
|
+
"brave-search": {
|
|
185
|
+
"name": "Brave Search MCP",
|
|
186
|
+
"description": "Privacy-first web search for research and current information",
|
|
187
|
+
"tier": "productivity",
|
|
188
|
+
"verified": true,
|
|
189
|
+
"publisher": "modelcontextprotocol",
|
|
190
|
+
"repository": "https://github.com/modelcontextprotocol/servers/tree/main/src/brave-search",
|
|
191
|
+
"transport": "stdio",
|
|
192
|
+
"config": {
|
|
193
|
+
"command": "npx",
|
|
194
|
+
"args": ["-y", "@modelcontextprotocol/server-brave-search"]
|
|
195
|
+
},
|
|
196
|
+
"envVars": ["BRAVE_API_KEY"],
|
|
197
|
+
"requiredPermissions": [],
|
|
198
|
+
"agentMappings": ["research", "ui-ux-reviewer"],
|
|
199
|
+
"securityNotes": "Requires Brave Search API key. Free tier available."
|
|
200
|
+
},
|
|
201
|
+
|
|
202
|
+
"memory": {
|
|
203
|
+
"name": "Memory MCP Server",
|
|
204
|
+
"description": "Persistent context retention across sessions using knowledge graph",
|
|
205
|
+
"tier": "productivity",
|
|
206
|
+
"verified": true,
|
|
207
|
+
"publisher": "modelcontextprotocol",
|
|
208
|
+
"repository": "https://github.com/modelcontextprotocol/servers/tree/main/src/memory",
|
|
209
|
+
"transport": "stdio",
|
|
210
|
+
"config": {
|
|
211
|
+
"command": "npx",
|
|
212
|
+
"args": ["-y", "@modelcontextprotocol/server-memory"]
|
|
213
|
+
},
|
|
214
|
+
"envVars": [],
|
|
215
|
+
"requiredPermissions": [],
|
|
216
|
+
"agentMappings": ["orchestrator", "domain-updater", "commit-manager"],
|
|
217
|
+
"securityNotes": "Stores data locally. Review stored data periodically."
|
|
218
|
+
},
|
|
219
|
+
|
|
220
|
+
"time": {
|
|
221
|
+
"name": "Time MCP Server",
|
|
222
|
+
"description": "Timezone conversion and scheduling capabilities",
|
|
223
|
+
"tier": "productivity",
|
|
224
|
+
"verified": true,
|
|
225
|
+
"publisher": "modelcontextprotocol",
|
|
226
|
+
"repository": "https://github.com/modelcontextprotocol/servers/tree/main/src/time",
|
|
227
|
+
"transport": "stdio",
|
|
228
|
+
"config": {
|
|
229
|
+
"command": "uvx",
|
|
230
|
+
"args": ["mcp-server-time"]
|
|
231
|
+
},
|
|
232
|
+
"envVars": [],
|
|
233
|
+
"requiredPermissions": [],
|
|
234
|
+
"agentMappings": ["commit-manager", "documenter"],
|
|
235
|
+
"securityNotes": "Safe - no external connections"
|
|
236
|
+
},
|
|
237
|
+
|
|
238
|
+
"docker-hub": {
|
|
239
|
+
"name": "Docker Hub MCP Server",
|
|
240
|
+
"description": "Container image discovery and management from Docker Hub",
|
|
241
|
+
"tier": "infrastructure",
|
|
242
|
+
"verified": true,
|
|
243
|
+
"publisher": "docker",
|
|
244
|
+
"repository": "https://www.docker.com/blog/introducing-docker-hub-mcp-server/",
|
|
245
|
+
"transport": "stdio",
|
|
246
|
+
"config": {
|
|
247
|
+
"command": "docker",
|
|
248
|
+
"args": ["run", "-i", "--rm", "mcp/docker-hub"]
|
|
249
|
+
},
|
|
250
|
+
"envVars": ["DOCKER_HUB_PAT"],
|
|
251
|
+
"requiredPermissions": ["Docker Hub account"],
|
|
252
|
+
"agentMappings": ["quality-checker"],
|
|
253
|
+
"securityNotes": "Use read-only tokens when possible"
|
|
254
|
+
},
|
|
255
|
+
|
|
256
|
+
"upstash": {
|
|
257
|
+
"name": "Upstash MCP Server",
|
|
258
|
+
"description": "Redis and rate limiting management for serverless applications",
|
|
259
|
+
"tier": "infrastructure",
|
|
260
|
+
"verified": true,
|
|
261
|
+
"publisher": "upstash",
|
|
262
|
+
"repository": "https://github.com/upstash/mcp-server",
|
|
263
|
+
"transport": "stdio",
|
|
264
|
+
"config": {
|
|
265
|
+
"command": "npx",
|
|
266
|
+
"args": ["-y", "@upstash/mcp-server@latest"]
|
|
267
|
+
},
|
|
268
|
+
"envVars": ["UPSTASH_EMAIL", "UPSTASH_API_KEY"],
|
|
269
|
+
"requiredPermissions": ["Upstash account"],
|
|
270
|
+
"agentMappings": ["performance", "security-auditor"],
|
|
271
|
+
"securityNotes": "Use API keys with minimal permissions"
|
|
272
|
+
},
|
|
273
|
+
|
|
274
|
+
"fetch": {
|
|
275
|
+
"name": "Fetch MCP Server",
|
|
276
|
+
"description": "HTTP API requests and web content retrieval",
|
|
277
|
+
"tier": "infrastructure",
|
|
278
|
+
"verified": true,
|
|
279
|
+
"publisher": "modelcontextprotocol",
|
|
280
|
+
"repository": "https://github.com/modelcontextprotocol/servers/tree/main/src/fetch",
|
|
281
|
+
"transport": "stdio",
|
|
282
|
+
"config": {
|
|
283
|
+
"command": "uvx",
|
|
284
|
+
"args": ["mcp-server-fetch"]
|
|
285
|
+
},
|
|
286
|
+
"envVars": [],
|
|
287
|
+
"requiredPermissions": [],
|
|
288
|
+
"agentMappings": ["research", "analyzer"],
|
|
289
|
+
"securityNotes": "Be cautious with untrusted URLs - prompt injection risk"
|
|
290
|
+
}
|
|
291
|
+
},
|
|
292
|
+
|
|
293
|
+
"security": {
|
|
294
|
+
"guidelines": [
|
|
295
|
+
"Only install verified MCPs from official publishers",
|
|
296
|
+
"Use fine-grained tokens with minimal permissions",
|
|
297
|
+
"Never commit API keys or tokens to version control",
|
|
298
|
+
"Enable readOnly mode for production databases",
|
|
299
|
+
"Review MCP source code before installation",
|
|
300
|
+
"Use containerized MCPs when available for isolation",
|
|
301
|
+
"Monitor MCP activity logs for unusual behavior"
|
|
302
|
+
],
|
|
303
|
+
"redFlags": [
|
|
304
|
+
"MCPs requesting excessive permissions",
|
|
305
|
+
"Unverified publishers or missing repository",
|
|
306
|
+
"MCPs that execute arbitrary shell commands",
|
|
307
|
+
"MCPs with eval() or exec() in source code",
|
|
308
|
+
"MCPs with recent CVEs or security advisories"
|
|
309
|
+
],
|
|
310
|
+
"trustedPublishers": [
|
|
311
|
+
"modelcontextprotocol",
|
|
312
|
+
"anthropic",
|
|
313
|
+
"github",
|
|
314
|
+
"microsoft",
|
|
315
|
+
"vercel",
|
|
316
|
+
"mongodb-js",
|
|
317
|
+
"upstash",
|
|
318
|
+
"docker",
|
|
319
|
+
"figma",
|
|
320
|
+
"getsentry"
|
|
321
|
+
]
|
|
322
|
+
},
|
|
323
|
+
|
|
324
|
+
"installation": {
|
|
325
|
+
"parallelLimit": 5,
|
|
326
|
+
"timeout": 60000,
|
|
327
|
+
"retryAttempts": 3,
|
|
328
|
+
"scope": "project"
|
|
329
|
+
}
|
|
330
|
+
}
|