@cervellaswarm/mcp-server 0.1.1 → 0.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/README.md +68 -18
- package/dist/agents/spawner.d.ts +1 -1
- package/dist/agents/spawner.d.ts.map +1 -1
- package/dist/agents/spawner.js +73 -14
- package/dist/agents/spawner.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -7,9 +7,7 @@
|
|
|
7
7
|
### 1. Install
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
|
|
11
|
-
npm install
|
|
12
|
-
npm run build
|
|
10
|
+
npm install -g @cervellaswarm/mcp-server
|
|
13
11
|
```
|
|
14
12
|
|
|
15
13
|
### 2. Configure Claude Code
|
|
@@ -20,8 +18,7 @@ Add to your `~/.claude/settings.json`:
|
|
|
20
18
|
{
|
|
21
19
|
"mcpServers": {
|
|
22
20
|
"cervellaswarm": {
|
|
23
|
-
"command": "
|
|
24
|
-
"args": ["/path/to/CervellaSwarm/packages/mcp-server/dist/index.js"]
|
|
21
|
+
"command": "cervellaswarm-mcp"
|
|
25
22
|
}
|
|
26
23
|
}
|
|
27
24
|
}
|
|
@@ -33,8 +30,7 @@ Or add to your project's `.mcp.json`:
|
|
|
33
30
|
{
|
|
34
31
|
"mcpServers": {
|
|
35
32
|
"cervellaswarm": {
|
|
36
|
-
"command": "
|
|
37
|
-
"args": ["./packages/mcp-server/dist/index.js"]
|
|
33
|
+
"command": "cervellaswarm-mcp"
|
|
38
34
|
}
|
|
39
35
|
}
|
|
40
36
|
}
|
|
@@ -42,21 +38,31 @@ Or add to your project's `.mcp.json`:
|
|
|
42
38
|
|
|
43
39
|
### 3. Set API Key
|
|
44
40
|
|
|
45
|
-
|
|
41
|
+
Install the CLI and run init:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npm install -g cervellaswarm
|
|
45
|
+
cervellaswarm init
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Or set environment variable directly:
|
|
46
49
|
|
|
47
50
|
```bash
|
|
48
51
|
export ANTHROPIC_API_KEY=sk-ant-...
|
|
49
52
|
```
|
|
50
53
|
|
|
51
|
-
### 4.
|
|
54
|
+
### 4. Restart Claude Code
|
|
52
55
|
|
|
53
|
-
|
|
56
|
+
Restart Claude Code to load the MCP server. You'll have access to these tools:
|
|
54
57
|
|
|
55
58
|
- **spawn_worker**: Execute tasks with specialized AI workers
|
|
56
|
-
- **list_workers**: See available workers
|
|
57
|
-
- **check_status**: Verify configuration
|
|
59
|
+
- **list_workers**: See available workers and their specialties
|
|
60
|
+
- **check_status**: Verify configuration and API key
|
|
61
|
+
- **check_usage**: Check your usage quota
|
|
62
|
+
|
|
63
|
+
## Available Agents (16)
|
|
58
64
|
|
|
59
|
-
|
|
65
|
+
### Workers (12)
|
|
60
66
|
|
|
61
67
|
| Worker | Specialty |
|
|
62
68
|
|--------|-----------|
|
|
@@ -68,6 +74,24 @@ Once configured, you'll have access to these tools in Claude Code:
|
|
|
68
74
|
| data | SQL, Analytics, Database Design |
|
|
69
75
|
| security | Security Audit, Vulnerabilities |
|
|
70
76
|
| researcher | Research, Analysis, Best Practices |
|
|
77
|
+
| marketing | UX Strategy, Positioning, Copywriting |
|
|
78
|
+
| ingegnera | Architecture, Refactoring, Tech Debt |
|
|
79
|
+
| scienziata | Market Research, Competitor Analysis |
|
|
80
|
+
| reviewer | Code Review, Best Practices |
|
|
81
|
+
|
|
82
|
+
### Guardiane (3) - Quality Gates
|
|
83
|
+
|
|
84
|
+
| Guardiana | Role |
|
|
85
|
+
|-----------|------|
|
|
86
|
+
| guardiana-qualita | Verifies code quality (9.5+ standard) |
|
|
87
|
+
| guardiana-ricerca | Verifies research accuracy |
|
|
88
|
+
| guardiana-ops | Verifies deploy safety & security |
|
|
89
|
+
|
|
90
|
+
### Regina (1)
|
|
91
|
+
|
|
92
|
+
| Agent | Role |
|
|
93
|
+
|-------|------|
|
|
94
|
+
| orchestrator | The Queen - Coordinates all agents |
|
|
71
95
|
|
|
72
96
|
## Example Usage in Claude Code
|
|
73
97
|
|
|
@@ -77,9 +101,14 @@ Use spawn_worker to create a REST API endpoint for user authentication
|
|
|
77
101
|
|
|
78
102
|
Claude Code will call the `spawn_worker` tool with `worker: "backend"` automatically.
|
|
79
103
|
|
|
80
|
-
## Development
|
|
104
|
+
## Development (for contributors)
|
|
81
105
|
|
|
82
106
|
```bash
|
|
107
|
+
# Clone and install
|
|
108
|
+
git clone https://github.com/rafapra/cervellaswarm
|
|
109
|
+
cd cervellaswarm/packages/mcp-server
|
|
110
|
+
npm install
|
|
111
|
+
|
|
83
112
|
# Watch mode
|
|
84
113
|
npm run dev
|
|
85
114
|
|
|
@@ -90,20 +119,41 @@ npm run inspect
|
|
|
90
119
|
npm run build
|
|
91
120
|
```
|
|
92
121
|
|
|
122
|
+
### Local Development Config
|
|
123
|
+
|
|
124
|
+
For local development, use path-based config in `~/.claude/settings.json`:
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"mcpServers": {
|
|
129
|
+
"cervellaswarm": {
|
|
130
|
+
"command": "node",
|
|
131
|
+
"args": ["/path/to/CervellaSwarm/packages/mcp-server/dist/index.js"]
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
93
137
|
## Architecture
|
|
94
138
|
|
|
95
139
|
```
|
|
96
|
-
MCP Server
|
|
140
|
+
MCP Server
|
|
97
141
|
│
|
|
98
142
|
├── Tools
|
|
99
|
-
│ ├── spawn_worker → Anthropic API
|
|
143
|
+
│ ├── spawn_worker → Anthropic API (your key)
|
|
100
144
|
│ ├── list_workers → Static list
|
|
101
|
-
│
|
|
145
|
+
│ ├── check_status → Config check
|
|
146
|
+
│ └── check_usage → Quota info
|
|
102
147
|
│
|
|
103
148
|
└── Shares config with CLI
|
|
104
|
-
└──
|
|
149
|
+
└── Uses same API key from cervellaswarm init
|
|
105
150
|
```
|
|
106
151
|
|
|
152
|
+
## Links
|
|
153
|
+
|
|
154
|
+
- CLI: [cervellaswarm on npm](https://www.npmjs.com/package/cervellaswarm)
|
|
155
|
+
- GitHub: [rafapra/cervellaswarm](https://github.com/rafapra/cervellaswarm)
|
|
156
|
+
|
|
107
157
|
---
|
|
108
158
|
|
|
109
159
|
*"16 agents. MCP integration. Your AI team in Claude Code."*
|
package/dist/agents/spawner.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* Copyright 2026 Rafa & Cervella
|
|
8
8
|
* Licensed under the Apache License, Version 2.0
|
|
9
9
|
*/
|
|
10
|
-
type WorkerType = "backend" | "frontend" | "tester" | "docs" | "devops" | "data" | "security" | "researcher";
|
|
10
|
+
type WorkerType = "backend" | "frontend" | "tester" | "docs" | "devops" | "data" | "security" | "researcher" | "marketing" | "ingegnera" | "scienziata" | "reviewer" | "guardiana-qualita" | "guardiana-ricerca" | "guardiana-ops" | "orchestrator";
|
|
11
11
|
interface WorkerInfo {
|
|
12
12
|
name: string;
|
|
13
13
|
description: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../../src/agents/spawner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,KAAK,UAAU,GACX,SAAS,GACT,UAAU,GACV,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,UAAU,GACV,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"spawner.d.ts","sourceRoot":"","sources":["../../src/agents/spawner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAcH,KAAK,UAAU,GACX,SAAS,GACT,UAAU,GACV,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,MAAM,GACN,UAAU,GACV,YAAY,GAEZ,WAAW,GACX,WAAW,GACX,YAAY,GACZ,UAAU,GAEV,mBAAmB,GACnB,mBAAmB,GACnB,eAAe,GAEf,cAAc,CAAC;AAEnB,UAAU,UAAU;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAuHD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,UAAU,EAAE,CAsBlD;AA4BD;;GAEG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CA8HtB"}
|
package/dist/agents/spawner.js
CHANGED
|
@@ -45,6 +45,49 @@ Output: Lista vulnerabilita trovate e fix raccomandati.`,
|
|
|
45
45
|
Focus: Ricerca approfondita, comparazioni, best practices.
|
|
46
46
|
Stile: Fonti affidabili, analisi critica, raccomandazioni chiare.
|
|
47
47
|
Output: Report strutturato con findings e raccomandazioni.`,
|
|
48
|
+
// NEW WORKERS
|
|
49
|
+
marketing: `Sei CERVELLA-MARKETING, specialista UX strategy, posizionamento, copywriting.
|
|
50
|
+
Focus: Dove mettere bottoni, user flow, landing page, messaggi, analisi utente.
|
|
51
|
+
Stile: User-centered, data-driven, persuasivo ma onesto.
|
|
52
|
+
Output: Specifiche UX/UI dettagliate con razionale per ogni scelta.`,
|
|
53
|
+
ingegnera: `Sei CERVELLA-INGEGNERA, specialista analisi codebase, technical debt, refactoring.
|
|
54
|
+
Focus: Trovare file grandi, codice duplicato, TODO dimenticati, problemi di architettura.
|
|
55
|
+
Stile: Analitica, sistemica, propone miglioramenti concreti.
|
|
56
|
+
Output: Report analisi con lista prioritizzata di interventi.
|
|
57
|
+
IMPORTANTE: Analizzi e proponi, NON modifichi direttamente.`,
|
|
58
|
+
scienziata: `Sei CERVELLA-SCIENZIATA, specialista ricerca STRATEGICA, trend di mercato, competitor analysis.
|
|
59
|
+
Focus: Capire il mercato, monitorare competitor, trovare opportunità business.
|
|
60
|
+
Stile: Visione macro, dati reali, insights azionabili.
|
|
61
|
+
Output: Report strategico con opportunità e rischi.
|
|
62
|
+
NOTA: Diversa da researcher (tecnica), tu guardi il BUSINESS.`,
|
|
63
|
+
reviewer: `Sei CERVELLA-REVIEWER, specialista code review, best practices, architettura.
|
|
64
|
+
Focus: Review di codice, controllo qualità, suggerimenti di miglioramento, verifica pattern.
|
|
65
|
+
Stile: Costruttiva, specifica, con esempi di codice migliorato.
|
|
66
|
+
Output: Lista di osservazioni con severity (critico/importante/suggerimento).`,
|
|
67
|
+
// GUARDIANE - Quality Gates (usano Opus)
|
|
68
|
+
"guardiana-qualita": `Sei CERVELLA-GUARDIANA-QUALITA, la guardiana che verifica output e standard codice.
|
|
69
|
+
Ruolo: Verifichi il lavoro di frontend, backend, tester PRIMA che venga considerato fatto.
|
|
70
|
+
Focus: Qualità codice, test coverage, best practices, standard 9.5 minimo!
|
|
71
|
+
Stile: Rigorosa ma costruttiva, feedback specifico e azionabile.
|
|
72
|
+
Output: Verdetto (APPROVATO/DA RIVEDERE) con lista dettagliata di cosa sistemare.
|
|
73
|
+
STANDARD: Se non è almeno 9.5/10, non passa!`,
|
|
74
|
+
"guardiana-ricerca": `Sei CERVELLA-GUARDIANA-RICERCA, la guardiana che verifica qualità delle ricerche.
|
|
75
|
+
Ruolo: Verifichi il lavoro di researcher, docs, scienziata per accuratezza e completezza.
|
|
76
|
+
Focus: Fonti verificabili, bias detection, completezza analisi.
|
|
77
|
+
Stile: Scettica costruttiva, verifica cross-reference.
|
|
78
|
+
Output: Verdetto (VERIFICATO/DA APPROFONDIRE) con note su cosa manca o è impreciso.`,
|
|
79
|
+
"guardiana-ops": `Sei CERVELLA-GUARDIANA-OPS, la guardiana che supervisiona deploy, security, data.
|
|
80
|
+
Ruolo: Verifichi il lavoro di devops, security, data PRIMA di andare in produzione.
|
|
81
|
+
Focus: Sicurezza, performance, backup, rollback plan, compliance.
|
|
82
|
+
Stile: Zero tolerance per rischi non mitigati.
|
|
83
|
+
Output: Verdetto (PRONTO PER DEPLOY/BLOCCO) con checklist di sicurezza.`,
|
|
84
|
+
// REGINA - Orchestrator
|
|
85
|
+
orchestrator: `Sei CERVELLA-ORCHESTRATOR, la REGINA dello sciame CervellaSwarm.
|
|
86
|
+
Ruolo: Coordini tutti i 16 agenti, deleghi task, verifichi qualità finale.
|
|
87
|
+
Focus: Orchestrazione intelligente, non fai lavoro diretto - DELEGHI sempre!
|
|
88
|
+
Stile: Strategica, visione d'insieme, quality-first.
|
|
89
|
+
Output: Piano di esecuzione con assegnazione task ai worker appropriati.
|
|
90
|
+
REGOLA D'ORO: Tu coordini, le Guardiane verificano, i Worker eseguono.`,
|
|
48
91
|
};
|
|
49
92
|
// Next step suggestions per worker type
|
|
50
93
|
const NEXT_STEPS = {
|
|
@@ -56,26 +99,42 @@ const NEXT_STEPS = {
|
|
|
56
99
|
data: "Verify query performance with EXPLAIN",
|
|
57
100
|
security: "Apply the security fixes",
|
|
58
101
|
researcher: "Apply findings to your project",
|
|
102
|
+
// New workers
|
|
103
|
+
marketing: "Validate UX decisions with user testing",
|
|
104
|
+
ingegnera: "Prioritize technical debt items",
|
|
105
|
+
scienziata: "Share strategic insights with the team",
|
|
106
|
+
reviewer: "Address critical issues first, then important ones",
|
|
107
|
+
// Guardiane
|
|
108
|
+
"guardiana-qualita": "If APPROVATO: proceed. If DA RIVEDERE: fix and resubmit",
|
|
109
|
+
"guardiana-ricerca": "If VERIFICATO: publish. If DA APPROFONDIRE: research more",
|
|
110
|
+
"guardiana-ops": "If PRONTO: deploy. If BLOCCO: address security concerns first",
|
|
111
|
+
// Regina
|
|
112
|
+
orchestrator: "Execute the plan with the assigned workers",
|
|
59
113
|
};
|
|
60
114
|
/**
|
|
61
115
|
* Get all available workers
|
|
62
116
|
*/
|
|
63
117
|
export function getAvailableWorkers() {
|
|
64
118
|
return [
|
|
65
|
-
|
|
66
|
-
{ name: "
|
|
67
|
-
{ name: "
|
|
68
|
-
{ name: "
|
|
69
|
-
{ name: "
|
|
70
|
-
{ name: "
|
|
71
|
-
{
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
119
|
+
// API Workers (12)
|
|
120
|
+
{ name: "backend", description: "Python, FastAPI, API, Database" },
|
|
121
|
+
{ name: "frontend", description: "React, CSS, Tailwind, UI/UX" },
|
|
122
|
+
{ name: "tester", description: "Testing, Debug, QA" },
|
|
123
|
+
{ name: "docs", description: "Documentation, README, Guides" },
|
|
124
|
+
{ name: "devops", description: "Deploy, CI/CD, Docker" },
|
|
125
|
+
{ name: "data", description: "SQL, Analytics, Database Design" },
|
|
126
|
+
{ name: "security", description: "Security Audit, Vulnerabilities" },
|
|
127
|
+
{ name: "researcher", description: "Research, Analysis, Best Practices" },
|
|
128
|
+
{ name: "marketing", description: "UX Strategy, Positioning, Copywriting" },
|
|
129
|
+
{ name: "ingegnera", description: "Architecture, Refactoring, Tech Debt" },
|
|
130
|
+
{ name: "scienziata", description: "Market Research, Competitor Analysis" },
|
|
131
|
+
{ name: "reviewer", description: "Code Review, Best Practices" },
|
|
132
|
+
// Guardiane (3) - Quality Gates
|
|
133
|
+
{ name: "guardiana-qualita", description: "Verifies code quality (9.5+ standard)" },
|
|
134
|
+
{ name: "guardiana-ricerca", description: "Verifies research accuracy" },
|
|
135
|
+
{ name: "guardiana-ops", description: "Verifies deploy safety & security" },
|
|
136
|
+
// Regina (1)
|
|
137
|
+
{ name: "orchestrator", description: "The Queen - Coordinates all agents" },
|
|
79
138
|
];
|
|
80
139
|
}
|
|
81
140
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../src/agents/spawner.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EACL,SAAS,EACT,eAAe,EACf,UAAU,EACV,aAAa,GACd,MAAM,sBAAsB,CAAC;AAE9B,oBAAoB;AACpB,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"spawner.js","sourceRoot":"","sources":["../../src/agents/spawner.ts"],"names":[],"mappings":"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"}
|