@brutalist/mcp 0.1.3 → 0.4.3

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 CHANGED
@@ -1,83 +1,240 @@
1
- # Brutalist MCP
1
+ # Brutalist MCP 💀
2
2
 
3
- Your architecture will fail. Your startup will burn money. Your code has three unpatched CVEs.
3
+ Your startup will fail. Your architecture will collapse. Your code is a security nightmare.
4
4
 
5
- All AIs are sycophants. This one doesn't lie.
5
+ But this time, you'll know *why* before users do.
6
6
 
7
- ## brutalist workflows
7
+ ## Deploy AI Critics That Don't Lie
8
+
9
+ Every AI tells you what you want to hear. This one tells you what you need to know.
10
+
11
+ Three brutal CLI agents. Zero sugar-coating. Maximum carnage.
12
+
13
+ Three brutal CLI agents that can analyze anything. Each agent brings different perspectives to demolish your work from every angle.
14
+
15
+ Real file-system analysis. Actual brutal prompts. No participation trophies.
16
+
17
+ ## Brutalist Workflows
18
+
19
+ ### 🔍 **Codebase Destruction**
20
+
21
+ > Analyze actual files in your repository for security holes, performance disasters, and architectural nightmares.
22
+
23
+ ```bash
24
+ # Demolish your entire codebase
25
+ roast_codebase "/path/to/your/project"
26
+
27
+ # Target specific modules for focused brutality
28
+ roast_codebase "/src/auth" # Authentication vulnerabilities
29
+ roast_codebase "/src/api/handlers" # API endpoint disasters
30
+ roast_codebase "/components" # React component chaos
31
+ ```
32
+
33
+ ---
34
+
35
+ ### ðŸ’Ą **Idea Obliteration**
36
+
37
+ > Reality-check your startup dreams, product concepts, and technical decisions.
38
+
39
+ ```bash
40
+ # Startup idea destruction
41
+ roast_idea "A social network for developers to share code snippets"
42
+
43
+ # Technical decision analysis
44
+ roast_idea "Migrating our monolith to microservices with Kubernetes"
45
+
46
+ # Product feature validation
47
+ roast_idea "Adding AI-powered code suggestions to our IDE"
48
+ ```
49
+
50
+ ---
51
+
52
+ ### 🏗ïļ **Architecture Annihilation**
53
+
54
+ > Find every scaling bottleneck, cost explosion, and operational nightmare in your system design.
55
+
56
+ ```bash
57
+ # System architecture review
58
+ roast_architecture "Microservices with event sourcing and CQRS"
59
+
60
+ # Infrastructure design analysis
61
+ roast_architecture """
62
+ API Gateway → Load Balancer → 3 Node.js services → PostgreSQL
63
+ Redis for caching, Docker containers on AWS ECS
64
+ """
65
+ ```
66
+
67
+ ---
68
+
69
+ ### 🔒 **Security Demolition**
70
+
71
+ > Expose authentication bypasses, injection vulnerabilities, and data leak opportunities.
8
72
 
9
73
  ```bash
10
- # Destroy your architecture before users do
11
- roast_architecture "This microservices design for our startup..."
74
+ # Authentication system analysis
75
+ roast_security "JWT tokens with user roles in localStorage"
76
+
77
+ # API security review
78
+ roast_security "GraphQL API with dynamic queries and no rate limiting"
79
+ ```
80
+
81
+ ---
12
82
 
13
- # Demolish your code quality with specific models
14
- roast_code(code="authentication.py", models=["google/gemini-2.5-pro", "anthropic/claude-3.5-sonnet"])
83
+ ### ðŸĪš **Multi-Agent Warfare**
15
84
 
16
- # Reality check your ideas with 325+ AI models
17
- roast_idea "We're building a marketplace for..."
85
+ > Deploy multiple CLI agents in adversarial combat for maximum destruction.
18
86
 
19
- # Discover available models (325+ and growing)
20
- model_roster() # Shows all available models
21
- model_roster(search="gemini") # Find specific models
87
+ ```bash
88
+ # Technical decision debate
89
+ roast_cli_debate "Should we use TypeScript or Go for this API?"
22
90
 
23
- # Multi-model adversarial debate
24
- roast_debate "Should we use TypeScript or Go for this API?"
91
+ # Architecture comparison battle
92
+ roast_cli_debate "Microservices vs Monolith for our e-commerce platform"
25
93
  ```
26
94
 
27
- ## setup
95
+ ---
96
+
97
+ ### 🛠ïļ **Meta Commands**
98
+
99
+ ```bash
100
+ # Check which CLI agents are available
101
+ cli_agent_roster()
102
+ ```
103
+
104
+ ## How It Works
105
+
106
+ This MCP server orchestrates brutal feedback from locally installed CLI agents:
107
+ - **Claude Code CLI** - Anthropic's code assistant with brutal system prompts
108
+ - **Codex CLI** - OpenAI's code-focused model for technical criticism
109
+ - **Gemini CLI** - Google's model for architectural and system analysis
110
+
111
+ Each agent runs locally on your machine with custom brutal prompts to find real problems before production fails.
112
+
113
+ **⏱ïļ Analysis Timeout:** 25 minutes default - thorough analysis takes time to find real issues. Complex codebases and architectural reviews need deep analysis to catch subtle problems that quick scans miss.
114
+
115
+ ## Setup
116
+
117
+ ### Prerequisites
118
+
119
+ Install at least one CLI agent:
120
+ - **Claude Code**: `npm install -g claude` (or via Claude desktop app)
121
+ - **Codex**: Install from [OpenAI Codex](https://github.com/openai/codex-cli)
122
+ - **Gemini**: `npm install -g @google/gemini-cli` or authenticate via `gemini auth`
123
+
124
+ <details>
125
+ <summary><strong>Claude Code</strong> — One-liner</summary>
28
126
 
29
127
  ```bash
30
- # VS Code/Cline one-liner
31
- code --add-mcp '{"name":"brutalist","command":"npx","args":["-y","@brutalist/mcp"],"env":{"OPENROUTER_API_KEY":"YOUR_KEY"}}'
128
+ claude mcp add brutalist --scope user -- npx -y @brutalist/mcp
129
+ ```
130
+ </details>
131
+
132
+ <details>
133
+ <summary><strong>VS Code / Cline</strong> — Manual config</summary>
32
134
 
33
- # Claude Code
34
- claude mcp add brutalist --scope user -e OPENROUTER_API_KEY=YOUR_KEY -- npx -y @brutalist/mcp
135
+ ```bash
136
+ code --add-mcp '{"name":"brutalist","command":"npx","args":["-y","@brutalist/mcp"]}'
137
+ ```
138
+ </details>
35
139
 
36
- # Gemini CLI
37
- gemini mcp add brutalist -e OPENROUTER_API_KEY=YOUR_KEY -- npx -y @brutalist/mcp
140
+ <details>
141
+ <summary><strong>Gemini CLI</strong> — One-liner</summary>
38
142
 
39
- # Cursor: Add to ~/.cursor/mcp.json or use Settings > MCP & Integrations
40
- # Windsurf: Add to ~/.codeium/windsurf/mcp_config.json or use Plugin Store
143
+ ```bash
144
+ gemini mcp add brutalist -- npx -y @brutalist/mcp
41
145
  ```
146
+ </details>
147
+
148
+ <details>
149
+ <summary><strong>Cursor</strong> — Manual config</summary>
42
150
 
43
- **Get key**: https://openrouter.ai/keys
44
- **Models**: 325+ models dynamically fetched from OpenRouter. Always current.
151
+ Add to `~/.cursor/mcp.json` or use **Settings → MCP & Integrations**
45
152
 
46
- ## why
153
+ ```json
154
+ {
155
+ "brutalist": {
156
+ "command": "npx",
157
+ "args": ["-y", "@brutalist/mcp"]
158
+ }
159
+ }
160
+ ```
161
+ </details>
47
162
 
48
- Every LLM defaults to "great idea!" because conflict doesn't pay. This deploys 325+ models to fight over your assumptions.
163
+ <details>
164
+ <summary><strong>Windsurf</strong> — Manual config</summary>
49
165
 
50
- ## model selection
166
+ Add to `~/.codeium/windsurf/mcp_config.json` or use **Plugin Store**
167
+
168
+ ```json
169
+ {
170
+ "brutalist": {
171
+ "command": "npx",
172
+ "args": ["-y", "@brutalist/mcp"]
173
+ }
174
+ }
175
+ ```
176
+ </details>
177
+
178
+ ## Tools
179
+
180
+ ### Code & Architecture Analysis
181
+ | Tool | What gets destroyed | CLI Agents Used |
182
+ |------|-------------------|-----------------|
183
+ | `roast_codebase` | Security holes, performance disasters, maintainability nightmares in actual files | All available |
184
+ | `roast_file_structure` | Directory chaos, naming disasters, structural nightmares | All available |
185
+ | `roast_dependencies` | Version conflicts, security vulns, dependency hell | All available |
186
+ | `roast_git_history` | Commit disasters, branching chaos, collaboration failures | All available |
187
+ | `roast_test_coverage` | Testing gaps, quality blind spots, coverage lies | All available |
188
+
189
+ ### Conceptual Analysis
190
+ | Tool | What gets destroyed | CLI Agents Used |
191
+ |------|-------------------|-----------------|
192
+ | `roast_idea` | Why imagination fails to become reality | All available |
193
+ | `roast_architecture` | Scaling failures, cost explosions, operational complexity | All available |
194
+ | `roast_research` | Methodological flaws, irreproducible results, statistical crimes | All available |
195
+ | `roast_security` | Attack vectors, authentication bypasses, data leaks | All available |
196
+ | `roast_product` | UX disasters, adoption barriers, user abandonment | All available |
197
+ | `roast_infrastructure` | Single points of failure, hidden costs, 3AM outages | All available |
198
+
199
+ ### Meta Tools
200
+ | Tool | What it does |
201
+ |------|--------------|
202
+ | `roast_cli_debate` | Multiple CLI agents argue until truth emerges |
203
+ | `cli_agent_roster` | Shows which CLI agents are available on your system |
204
+
205
+ ## CLI Agent Selection
206
+
207
+ The system automatically detects and uses available CLI agents:
51
208
 
52
209
  ```bash
53
- # Specific models
54
- roast_code(code="...", models=["google/gemini-2.5-pro", "openai/gpt-4o"])
210
+ # Use specific CLI agent
211
+ roast_codebase(targetPath="/src", preferredCLI="claude")
212
+
213
+ # Let system choose based on analysis type
214
+ roast_security "/auth/module" # Prefers Codex for security
55
215
 
56
- # Random from 325+ models
57
- roast_idea "..." # Chaos mode
216
+ # Force multi-agent analysis (default)
217
+ roast_idea "..." # All available agents analyze in parallel
58
218
  ```
59
219
 
60
- ## tools
220
+ ### Smart Selection Rules
61
221
 
62
- - **`roast_idea`** — Why imagination fails to become reality
63
- - **`roast_code`** — Security holes, performance disasters, maintainability nightmares
64
- - **`roast_architecture`** — Scaling failures, cost explosions, operational complexity
65
- - **`roast_research`** — Methodological flaws, irreproducible results, statistical crimes
66
- - **`roast_data`** — Overfitting, bias, correlation fallacies
67
- - **`roast_security`** — Attack vectors, authentication bypasses, data leaks
68
- - **`roast_product`** — UX disasters, adoption barriers, user abandonment
69
- - **`roast_infrastructure`** — Single points of failure, hidden costs, 3AM outages
70
- - **`roast_debate`** — Multiple models argue until truth emerges
71
- - **`model_roster`** — Browse and search 325+ available critics
222
+ Different CLI agents excel at different analysis types:
223
+ - **Code review**: Claude > Codex > Gemini
224
+ - **Architecture**: Gemini > Claude > Codex
225
+ - **Security**: Codex > Claude > Gemini
226
+ - **Research**: Claude > Gemini > Codex
72
227
 
73
- ## why this works
228
+ ## Why This Works
74
229
 
75
230
  **Problem:** AI optimizes for engagement, not truth.
76
- **Solution:** Deploy multiple models with conflicting incentives.
77
- **Result:** Brutal honesty before expensive failures.
231
+ **Solution:** Deploy multiple local CLI agents with adversarial perspectives.
232
+ **Result:** Brutal honesty through systematic destruction before expensive failures.
233
+
234
+ Your code will fail. Your startup will struggle. Better to learn this from brutal CLI agents than from production outages at 3AM.
78
235
 
79
- Your code will fail. Your startup will struggle. Better to learn this from AI critics than users.
236
+ The only AI that prevents disasters instead of causing them.
80
237
 
81
238
  ---
82
239
 
83
- OpenRouter API → 325+ models → Parallel execution → Adversarial synthesis
240
+ Local CLI agents → Brutal system prompts → Parallel execution → Adversarial synthesis → Production survival
@@ -3,13 +3,13 @@ import { BrutalistServerConfig } from './types/brutalist.js';
3
3
  export declare class BrutalistServer {
4
4
  server: McpServer;
5
5
  config: BrutalistServerConfig;
6
- private openrouter;
6
+ private cliOrchestrator;
7
7
  constructor(config?: BrutalistServerConfig);
8
8
  start(): Promise<void>;
9
9
  private registerTools;
10
- private executeRoast;
11
- private executeDebate;
10
+ private executeCLIDebate;
12
11
  private synthesizeDebate;
12
+ private executeBrutalistAnalysis;
13
13
  private formatToolResponse;
14
14
  private formatErrorResponse;
15
15
  private handleToolExecution;
@@ -1 +1 @@
1
- {"version":3,"file":"brutalist-server.d.ts","sourceRoot":"","sources":["../src/brutalist-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,OAAO,EACL,qBAAqB,EAItB,MAAM,sBAAsB,CAAC;AAG9B,qBAAa,eAAe;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,qBAAqB,CAAC;IACrC,OAAO,CAAC,UAAU,CAAmB;gBAEzB,MAAM,GAAE,qBAA0B;IA0BxC,KAAK;IAWX,OAAO,CAAC,aAAa;YAkTP,YAAY;YAiCZ,aAAa;IAkC3B,OAAO,CAAC,gBAAgB;IA0BxB,OAAO,CAAC,kBAAkB;IAS1B,OAAO,CAAC,mBAAmB;YAUb,mBAAmB;CAUlC"}
1
+ {"version":3,"file":"brutalist-server.d.ts","sourceRoot":"","sources":["../src/brutalist-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,OAAO,EACL,qBAAqB,EAItB,MAAM,sBAAsB,CAAC;AAI9B,qBAAa,eAAe;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,qBAAqB,CAAC;IACrC,OAAO,CAAC,eAAe,CAAuB;gBAElC,MAAM,GAAE,qBAA0B;IAsBxC,KAAK;IAWX,OAAO,CAAC,aAAa;YA6cP,gBAAgB;IAsE9B,OAAO,CAAC,gBAAgB;YA4CV,wBAAwB;IAyEtC,OAAO,CAAC,kBAAkB;IAgD1B,OAAO,CAAC,mBAAmB;YA8Bb,mBAAmB;CAUlC"}