@brutalist/mcp 0.8.1 → 0.9.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 +22 -1
- package/dist/brutalist-server.d.ts +46 -16
- package/dist/brutalist-server.d.ts.map +1 -1
- package/dist/brutalist-server.js +223 -611
- package/dist/brutalist-server.js.map +1 -1
- package/dist/cli-agents.d.ts +8 -6
- package/dist/cli-agents.d.ts.map +1 -1
- package/dist/cli-agents.js +236 -156
- package/dist/cli-agents.js.map +1 -1
- package/dist/domains/argument-space.d.ts +9 -0
- package/dist/domains/argument-space.d.ts.map +1 -1
- package/dist/domains/argument-space.js +27 -20
- package/dist/domains/argument-space.js.map +1 -1
- package/dist/formatting/response-formatter.d.ts +43 -0
- package/dist/formatting/response-formatter.d.ts.map +1 -0
- package/dist/formatting/response-formatter.js +277 -0
- package/dist/formatting/response-formatter.js.map +1 -0
- package/dist/generators/tool-generator.d.ts.map +1 -1
- package/dist/generators/tool-generator.js +3 -1
- package/dist/generators/tool-generator.js.map +1 -1
- package/dist/handlers/tool-handler.d.ts +33 -0
- package/dist/handlers/tool-handler.d.ts.map +1 -0
- package/dist/handlers/tool-handler.js +299 -0
- package/dist/handlers/tool-handler.js.map +1 -0
- package/dist/registry/argument-spaces.js +17 -17
- package/dist/registry/argument-spaces.js.map +1 -1
- package/dist/transport/http-transport.d.ts +40 -0
- package/dist/transport/http-transport.d.ts.map +1 -0
- package/dist/transport/http-transport.js +182 -0
- package/dist/transport/http-transport.js.map +1 -0
- package/dist/utils.d.ts +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +13 -6
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,6 +41,27 @@ Choose your IDE:
|
|
|
41
41
|
claude mcp add brutalist --scope user -- npx -y @brutalist/mcp@latest
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
+
**Codex:**
|
|
45
|
+
```bash
|
|
46
|
+
# Install globally once to avoid npx startup chatter
|
|
47
|
+
npm i -g @brutalist/mcp
|
|
48
|
+
# Add MCP using the installed binary (clean stdio)
|
|
49
|
+
codex mcp add brutalist -- brutalist-mcp
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**Configuring `tool_timeout_sec` for Codex:**
|
|
53
|
+
The `tool_timeout_sec` parameter (defaulting to 60 seconds) for your Brutalist MCP server needs to be configured directly in your Codex configuration file at `~/.codex/config.toml`. It cannot be passed via the `codex mcp add` command directly.
|
|
54
|
+
|
|
55
|
+
To set a custom timeout (e.g., 5 minutes or 300 seconds), add or modify the `[mcp_servers.brutalist]` section in `~/.codex/config.toml` as follows:
|
|
56
|
+
|
|
57
|
+
```toml
|
|
58
|
+
[mcp_servers.brutalist]
|
|
59
|
+
command = "brutalist-mcp" # Ensure this matches your installation command
|
|
60
|
+
args = [] # Depending on your setup, this might be empty or contain arguments
|
|
61
|
+
tool_timeout_sec = 300 # Set your desired timeout in seconds
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
|
|
44
65
|
**Cursor:**
|
|
45
66
|
Add to `~/.cursor/mcp.json`:
|
|
46
67
|
```json
|
|
@@ -232,4 +253,4 @@ Getting multiple viewpoints helps identify issues that a single perspective migh
|
|
|
232
253
|
---
|
|
233
254
|
|
|
234
255
|
**License:** MIT
|
|
235
|
-
**Issues:** https://github.com/ejmockler/brutalist-mcp/issues
|
|
256
|
+
**Issues:** https://github.com/ejmockler/brutalist-mcp/issues
|
|
@@ -1,40 +1,70 @@
|
|
|
1
1
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
2
|
import { BrutalistServerConfig } from './types/brutalist.js';
|
|
3
|
+
/**
|
|
4
|
+
* BrutalistServer - Composition root for the Brutalist MCP Server
|
|
5
|
+
*
|
|
6
|
+
* This class has been refactored to follow the Single Responsibility Principle.
|
|
7
|
+
* Responsibilities are now delegated to specialized modules:
|
|
8
|
+
* - ResponseFormatter: Handles all response formatting and pagination
|
|
9
|
+
* - HttpTransport: Manages HTTP server and CORS
|
|
10
|
+
* - ToolHandler: Handles roast tool execution, caching, and conversation continuation
|
|
11
|
+
*/
|
|
3
12
|
export declare class BrutalistServer {
|
|
4
13
|
server: McpServer;
|
|
5
14
|
config: BrutalistServerConfig;
|
|
6
15
|
private cliOrchestrator;
|
|
7
|
-
private httpTransport?;
|
|
8
16
|
private responseCache;
|
|
9
|
-
private
|
|
10
|
-
private
|
|
11
|
-
private
|
|
17
|
+
private formatter;
|
|
18
|
+
private toolHandler;
|
|
19
|
+
private httpTransport?;
|
|
12
20
|
private activeSessions;
|
|
21
|
+
private readonly MAX_SESSIONS;
|
|
22
|
+
private readonly SESSION_TTL_MS;
|
|
23
|
+
private sessionCleanupTimer?;
|
|
13
24
|
constructor(config?: BrutalistServerConfig);
|
|
14
|
-
private handleStreamingEvent;
|
|
15
|
-
private handleProgressUpdate;
|
|
16
25
|
start(): Promise<void>;
|
|
17
26
|
private startStdioServer;
|
|
18
27
|
private startHttpServer;
|
|
19
28
|
getActualPort(): number | undefined;
|
|
20
29
|
stop(): Promise<void>;
|
|
30
|
+
/**
|
|
31
|
+
* Clean up stale sessions that exceed TTL
|
|
32
|
+
*/
|
|
33
|
+
private cleanupStaleSessions;
|
|
34
|
+
/**
|
|
35
|
+
* Ensure session capacity doesn't exceed MAX_SESSIONS
|
|
36
|
+
* Evicts oldest sessions when capacity is reached
|
|
37
|
+
*/
|
|
38
|
+
ensureSessionCapacity(): void;
|
|
21
39
|
cleanup(): void;
|
|
40
|
+
/**
|
|
41
|
+
* Handle streaming events from CLI agents
|
|
42
|
+
*/
|
|
43
|
+
private handleStreamingEvent;
|
|
44
|
+
/**
|
|
45
|
+
* Handle progress updates from CLI agents
|
|
46
|
+
*/
|
|
47
|
+
private handleProgressUpdate;
|
|
48
|
+
/**
|
|
49
|
+
* Register all MCP tools
|
|
50
|
+
*/
|
|
22
51
|
private registerTools;
|
|
52
|
+
/**
|
|
53
|
+
* Register special tools (debate, roster)
|
|
54
|
+
*/
|
|
23
55
|
private registerSpecialTools;
|
|
24
56
|
/**
|
|
25
|
-
*
|
|
57
|
+
* Handle debate tool execution with caching, pagination, and conversation continuation
|
|
58
|
+
* Delegated mostly to ToolHandler but kept here for CLI debate-specific logic
|
|
59
|
+
*/
|
|
60
|
+
private handleDebateToolExecution;
|
|
61
|
+
/**
|
|
62
|
+
* Execute CLI debate (kept in server for debate-specific logic)
|
|
26
63
|
*/
|
|
27
|
-
private handleRoastTool;
|
|
28
64
|
private executeCLIDebate;
|
|
29
|
-
private synthesizeDebate;
|
|
30
|
-
private executeBrutalistAnalysis;
|
|
31
65
|
/**
|
|
32
|
-
*
|
|
66
|
+
* Synthesize debate results into formatted output
|
|
33
67
|
*/
|
|
34
|
-
private
|
|
35
|
-
private formatToolResponse;
|
|
36
|
-
private formatPaginatedResponse;
|
|
37
|
-
private formatErrorResponse;
|
|
38
|
-
private handleToolExecution;
|
|
68
|
+
private synthesizeDebate;
|
|
39
69
|
}
|
|
40
70
|
//# sourceMappingURL=brutalist-server.d.ts.map
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"brutalist-server.d.ts","sourceRoot":"","sources":["../src/brutalist-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOpE,OAAO,EACL,qBAAqB,EAGtB,MAAM,sBAAsB,CAAC;AAc9B;;;;;;;;GAQG;AACH,qBAAa,eAAe;IACnB,MAAM,EAAE,SAAS,CAAC;IAClB,MAAM,EAAE,qBAAqB,CAAC;IAGrC,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,aAAa,CAAgB;IAGrC,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAC,CAAgB;IAGtC,OAAO,CAAC,cAAc,CAIjB;IAGL,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,mBAAmB,CAAC,CAAiB;gBAEjC,MAAM,GAAE,qBAA0B;IA2DxC,KAAK;YAeG,gBAAgB;YAMhB,eAAe;IActB,aAAa,IAAI,MAAM,GAAG,SAAS;IAK7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAMlC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAc5B;;;OAGG;IACI,qBAAqB,IAAI,IAAI;IAc7B,OAAO,IAAI,IAAI;IAUtB;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAgE1B;IAEF;;OAEG;IACH,OAAO,CAAC,oBAAoB,CAsC1B;IAEF;;OAEG;IACH,OAAO,CAAC,aAAa;IAoBrB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuG5B;;;OAGG;YACW,yBAAyB;IAmLvC;;OAEG;YACW,gBAAgB;IA0J9B;;OAEG;IACH,OAAO,CAAC,gBAAgB;CA8FzB"}
|