@darkiceinteractive/mcp-conductor 1.0.0 → 2.0.0-alpha.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/README.md +263 -432
- package/dist/bridge/http-server.d.ts +39 -1
- package/dist/bridge/http-server.d.ts.map +1 -1
- package/dist/bridge/http-server.js +187 -10
- package/dist/bridge/http-server.js.map +1 -1
- package/dist/bridge/index.d.ts +4 -1
- package/dist/bridge/index.d.ts.map +1 -1
- package/dist/bridge/index.js +4 -1
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/session-registry.d.ts +64 -0
- package/dist/bridge/session-registry.d.ts.map +1 -0
- package/dist/bridge/session-registry.js +124 -0
- package/dist/bridge/session-registry.js.map +1 -0
- package/dist/config/defaults.d.ts +58 -2
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +61 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/index.d.ts +3 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +3 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/loader.d.ts +3 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +29 -6
- package/dist/config/loader.js.map +1 -1
- package/dist/config/schema.d.ts +2 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/hub/index.d.ts +3 -1
- package/dist/hub/index.d.ts.map +1 -1
- package/dist/hub/index.js +3 -1
- package/dist/hub/index.js.map +1 -1
- package/dist/hub/mcp-hub.d.ts +1 -0
- package/dist/hub/mcp-hub.d.ts.map +1 -1
- package/dist/hub/mcp-hub.js +47 -14
- package/dist/hub/mcp-hub.js.map +1 -1
- package/dist/index.d.ts +21 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +71 -7
- package/dist/index.js.map +1 -1
- package/dist/metrics/index.d.ts +3 -1
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +3 -1
- package/dist/metrics/index.js.map +1 -1
- package/dist/metrics/metrics-collector.d.ts.map +1 -1
- package/dist/metrics/metrics-collector.js +1 -1
- package/dist/metrics/metrics-collector.js.map +1 -1
- package/dist/modes/index.d.ts +3 -1
- package/dist/modes/index.d.ts.map +1 -1
- package/dist/modes/index.js +3 -1
- package/dist/modes/index.js.map +1 -1
- package/dist/runtime/executor.d.ts +36 -1
- package/dist/runtime/executor.d.ts.map +1 -1
- package/dist/runtime/executor.js +245 -16
- package/dist/runtime/executor.js.map +1 -1
- package/dist/runtime/index.d.ts +3 -1
- package/dist/runtime/index.d.ts.map +1 -1
- package/dist/runtime/index.js +3 -1
- package/dist/runtime/index.js.map +1 -1
- package/dist/server/index.d.ts +3 -1
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +3 -1
- package/dist/server/index.js.map +1 -1
- package/dist/server/mcp-server.d.ts +5 -0
- package/dist/server/mcp-server.d.ts.map +1 -1
- package/dist/server/mcp-server.js +243 -44
- package/dist/server/mcp-server.js.map +1 -1
- package/dist/skills/index.d.ts +3 -1
- package/dist/skills/index.d.ts.map +1 -1
- package/dist/skills/index.js +3 -1
- package/dist/skills/index.js.map +1 -1
- package/dist/streaming/execution-stream.d.ts.map +1 -1
- package/dist/streaming/execution-stream.js +22 -5
- package/dist/streaming/execution-stream.js.map +1 -1
- package/dist/streaming/index.d.ts +3 -1
- package/dist/streaming/index.d.ts.map +1 -1
- package/dist/streaming/index.js +3 -1
- package/dist/streaming/index.js.map +1 -1
- package/dist/utils/env.d.ts +20 -0
- package/dist/utils/env.d.ts.map +1 -0
- package/dist/utils/env.js +33 -0
- package/dist/utils/env.js.map +1 -0
- package/dist/utils/errors.d.ts +17 -1
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +16 -1
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/index.d.ts +6 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +6 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.d.ts +8 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +13 -2
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/orphan-watch.d.ts +34 -0
- package/dist/utils/orphan-watch.d.ts.map +1 -0
- package/dist/utils/orphan-watch.js +54 -0
- package/dist/utils/orphan-watch.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts.map +1 -1
- package/dist/utils/rate-limiter.js +6 -0
- package/dist/utils/rate-limiter.js.map +1 -1
- package/dist/utils/redact.d.ts +15 -0
- package/dist/utils/redact.d.ts.map +1 -0
- package/dist/utils/redact.js +48 -0
- package/dist/utils/redact.js.map +1 -0
- package/dist/version.d.ts +4 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +4 -0
- package/dist/version.js.map +1 -0
- package/dist/watcher/index.d.ts +3 -1
- package/dist/watcher/index.d.ts.map +1 -1
- package/dist/watcher/index.js +3 -1
- package/dist/watcher/index.js.map +1 -1
- package/package.json +4 -5
- package/dist/bin/cli.d.ts +0 -8
- package/dist/bin/cli.d.ts.map +0 -1
- package/dist/bin/cli.js +0 -940
- package/dist/bin/cli.js.map +0 -1
|
@@ -1,8 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Default configuration values for MCP
|
|
2
|
+
* Default configuration values for MCP Conductor.
|
|
3
|
+
*
|
|
4
|
+
* These defaults are applied when no user configuration file or environment
|
|
5
|
+
* variable overrides are present. The loading precedence is:
|
|
6
|
+
* defaults → `~/.mcp-conductor.json` → environment variables.
|
|
7
|
+
*
|
|
8
|
+
* @module config/defaults
|
|
3
9
|
*/
|
|
4
10
|
import type { MCPExecutorConfig } from './schema.js';
|
|
11
|
+
/**
|
|
12
|
+
* Built-in defaults for every configuration option.
|
|
13
|
+
*
|
|
14
|
+
* - `bridge.port: 0` — OS picks an available port dynamically
|
|
15
|
+
* - `execution.mode: 'execution'` — sandbox-first mode for maximum token savings
|
|
16
|
+
* - `sandbox.maxMemoryMb: 512` — Deno subprocess memory ceiling
|
|
17
|
+
* - `hotReload.enabled: true` — config file changes take effect in ~500 ms
|
|
18
|
+
*/
|
|
5
19
|
export declare const DEFAULT_CONFIG: MCPExecutorConfig;
|
|
20
|
+
/**
|
|
21
|
+
* Environment variable names recognised by MCP Conductor.
|
|
22
|
+
*
|
|
23
|
+
* Any of these can override the corresponding value from the config file.
|
|
24
|
+
* For example, `MCP_EXECUTOR_MODE=passthrough` forces passthrough mode
|
|
25
|
+
* regardless of what `~/.mcp-conductor.json` says.
|
|
26
|
+
*/
|
|
6
27
|
export declare const ENV_VARS: {
|
|
7
28
|
readonly PORT: "MCP_EXECUTOR_PORT";
|
|
8
29
|
readonly MODE: "MCP_EXECUTOR_MODE";
|
|
@@ -20,10 +41,45 @@ export declare const ENV_VARS: {
|
|
|
20
41
|
readonly MAX_MEMORY_MB: "MCP_EXECUTOR_MAX_MEMORY_MB";
|
|
21
42
|
};
|
|
22
43
|
/**
|
|
23
|
-
* Default conductor
|
|
44
|
+
* Default `~/.mcp-conductor.json` skeleton used when creating a new config.
|
|
45
|
+
*
|
|
46
|
+
* `exclusive: true` is the recommended setting — it routes all MCP traffic
|
|
47
|
+
* through the conductor so Claude cannot bypass it with direct tool calls.
|
|
24
48
|
*/
|
|
25
49
|
export declare const DEFAULT_CONDUCTOR_CONFIG: {
|
|
26
50
|
exclusive: boolean;
|
|
27
51
|
servers: {};
|
|
28
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Lifecycle timeouts (milliseconds).
|
|
55
|
+
*
|
|
56
|
+
* Grouped together so memory-leak diagnostics and load testing can adjust
|
|
57
|
+
* them centrally without hunting through the source tree. Consumers:
|
|
58
|
+
* - `SHUTDOWN_TIMEOUT_MS` — `src/index.ts` SIGINT/SIGTERM handler
|
|
59
|
+
* - `PROCESS_FORCE_KILL_MS` — `DenoExecutor.shutdown()` SIGTERM → SIGKILL grace
|
|
60
|
+
* - `STREAM_STALE_TTL_MS` — `StreamManager` normal cleanup (completed, no connections)
|
|
61
|
+
* - `STREAM_COMPLETED_TTL_MS` — `StreamManager` force cleanup (completed, any connections)
|
|
62
|
+
* - `STREAM_STUCK_TTL_MS` — `StreamManager` cleanup for hung running streams
|
|
63
|
+
* - `STREAM_CLEANUP_INTERVAL_MS` — `StreamManager` tick rate for the sweep
|
|
64
|
+
* - `MEMORY_LOG_INTERVAL_MS` — periodic heap/RSS log from the main entry point
|
|
65
|
+
* - `BRIDGE_SESSION_TTL_MS` — HTTP bridge session idle expiry (Mcp-Session-Id)
|
|
66
|
+
* - `BRIDGE_SESSION_CLEANUP_INTERVAL_MS` — sweep cadence for expired sessions
|
|
67
|
+
*/
|
|
68
|
+
export declare const LIFECYCLE_TIMEOUTS: {
|
|
69
|
+
readonly SHUTDOWN_TIMEOUT_MS: 10000;
|
|
70
|
+
readonly PROCESS_FORCE_KILL_MS: 3000;
|
|
71
|
+
readonly STREAM_STALE_TTL_MS: number;
|
|
72
|
+
readonly STREAM_COMPLETED_TTL_MS: number;
|
|
73
|
+
readonly STREAM_STUCK_TTL_MS: number;
|
|
74
|
+
readonly STREAM_CLEANUP_INTERVAL_MS: 60000;
|
|
75
|
+
readonly MEMORY_LOG_INTERVAL_MS: 60000;
|
|
76
|
+
readonly BRIDGE_SESSION_TTL_MS: number;
|
|
77
|
+
readonly BRIDGE_SESSION_CLEANUP_INTERVAL_MS: number;
|
|
78
|
+
readonly ORPHAN_CHECK_INTERVAL_MS: 10000;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Cap on simultaneously tracked bridge sessions. Bounded to prevent the
|
|
82
|
+
* session registry from growing unbounded if a client keeps rotating IDs.
|
|
83
|
+
*/
|
|
84
|
+
export declare const MAX_BRIDGE_SESSIONS = 1000;
|
|
29
85
|
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc,EAAE,iBAkC5B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;CAeX,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB;;;CAGpC,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;CAWrB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,mBAAmB,OAAO,CAAC"}
|
package/dist/config/defaults.js
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Default configuration values for MCP
|
|
2
|
+
* Default configuration values for MCP Conductor.
|
|
3
|
+
*
|
|
4
|
+
* These defaults are applied when no user configuration file or environment
|
|
5
|
+
* variable overrides are present. The loading precedence is:
|
|
6
|
+
* defaults → `~/.mcp-conductor.json` → environment variables.
|
|
7
|
+
*
|
|
8
|
+
* @module config/defaults
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Built-in defaults for every configuration option.
|
|
12
|
+
*
|
|
13
|
+
* - `bridge.port: 0` — OS picks an available port dynamically
|
|
14
|
+
* - `execution.mode: 'execution'` — sandbox-first mode for maximum token savings
|
|
15
|
+
* - `sandbox.maxMemoryMb: 512` — Deno subprocess memory ceiling
|
|
16
|
+
* - `hotReload.enabled: true` — config file changes take effect in ~500 ms
|
|
3
17
|
*/
|
|
4
18
|
export const DEFAULT_CONFIG = {
|
|
5
19
|
bridge: {
|
|
@@ -13,8 +27,10 @@ export const DEFAULT_CONFIG = {
|
|
|
13
27
|
streamingEnabled: true,
|
|
14
28
|
},
|
|
15
29
|
sandbox: {
|
|
16
|
-
maxMemoryMb:
|
|
30
|
+
maxMemoryMb: 128,
|
|
17
31
|
allowedNetHosts: ['localhost'],
|
|
32
|
+
maxConcurrentProcesses: 5,
|
|
33
|
+
maxOutputBytes: 10 * 1024 * 1024, // 10MB
|
|
18
34
|
},
|
|
19
35
|
skills: {
|
|
20
36
|
path: null,
|
|
@@ -34,6 +50,13 @@ export const DEFAULT_CONFIG = {
|
|
|
34
50
|
denyList: [],
|
|
35
51
|
},
|
|
36
52
|
};
|
|
53
|
+
/**
|
|
54
|
+
* Environment variable names recognised by MCP Conductor.
|
|
55
|
+
*
|
|
56
|
+
* Any of these can override the corresponding value from the config file.
|
|
57
|
+
* For example, `MCP_EXECUTOR_MODE=passthrough` forces passthrough mode
|
|
58
|
+
* regardless of what `~/.mcp-conductor.json` says.
|
|
59
|
+
*/
|
|
37
60
|
export const ENV_VARS = {
|
|
38
61
|
PORT: 'MCP_EXECUTOR_PORT',
|
|
39
62
|
MODE: 'MCP_EXECUTOR_MODE',
|
|
@@ -51,10 +74,45 @@ export const ENV_VARS = {
|
|
|
51
74
|
MAX_MEMORY_MB: 'MCP_EXECUTOR_MAX_MEMORY_MB',
|
|
52
75
|
};
|
|
53
76
|
/**
|
|
54
|
-
* Default conductor
|
|
77
|
+
* Default `~/.mcp-conductor.json` skeleton used when creating a new config.
|
|
78
|
+
*
|
|
79
|
+
* `exclusive: true` is the recommended setting — it routes all MCP traffic
|
|
80
|
+
* through the conductor so Claude cannot bypass it with direct tool calls.
|
|
55
81
|
*/
|
|
56
82
|
export const DEFAULT_CONDUCTOR_CONFIG = {
|
|
57
83
|
exclusive: true,
|
|
58
84
|
servers: {},
|
|
59
85
|
};
|
|
86
|
+
/**
|
|
87
|
+
* Lifecycle timeouts (milliseconds).
|
|
88
|
+
*
|
|
89
|
+
* Grouped together so memory-leak diagnostics and load testing can adjust
|
|
90
|
+
* them centrally without hunting through the source tree. Consumers:
|
|
91
|
+
* - `SHUTDOWN_TIMEOUT_MS` — `src/index.ts` SIGINT/SIGTERM handler
|
|
92
|
+
* - `PROCESS_FORCE_KILL_MS` — `DenoExecutor.shutdown()` SIGTERM → SIGKILL grace
|
|
93
|
+
* - `STREAM_STALE_TTL_MS` — `StreamManager` normal cleanup (completed, no connections)
|
|
94
|
+
* - `STREAM_COMPLETED_TTL_MS` — `StreamManager` force cleanup (completed, any connections)
|
|
95
|
+
* - `STREAM_STUCK_TTL_MS` — `StreamManager` cleanup for hung running streams
|
|
96
|
+
* - `STREAM_CLEANUP_INTERVAL_MS` — `StreamManager` tick rate for the sweep
|
|
97
|
+
* - `MEMORY_LOG_INTERVAL_MS` — periodic heap/RSS log from the main entry point
|
|
98
|
+
* - `BRIDGE_SESSION_TTL_MS` — HTTP bridge session idle expiry (Mcp-Session-Id)
|
|
99
|
+
* - `BRIDGE_SESSION_CLEANUP_INTERVAL_MS` — sweep cadence for expired sessions
|
|
100
|
+
*/
|
|
101
|
+
export const LIFECYCLE_TIMEOUTS = {
|
|
102
|
+
SHUTDOWN_TIMEOUT_MS: 10_000,
|
|
103
|
+
PROCESS_FORCE_KILL_MS: 3_000,
|
|
104
|
+
STREAM_STALE_TTL_MS: 5 * 60_000,
|
|
105
|
+
STREAM_COMPLETED_TTL_MS: 10 * 60_000,
|
|
106
|
+
STREAM_STUCK_TTL_MS: 15 * 60_000,
|
|
107
|
+
STREAM_CLEANUP_INTERVAL_MS: 60_000,
|
|
108
|
+
MEMORY_LOG_INTERVAL_MS: 60_000,
|
|
109
|
+
BRIDGE_SESSION_TTL_MS: 30 * 60_000,
|
|
110
|
+
BRIDGE_SESSION_CLEANUP_INTERVAL_MS: 5 * 60_000,
|
|
111
|
+
ORPHAN_CHECK_INTERVAL_MS: 10_000,
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Cap on simultaneously tracked bridge sessions. Bounded to prevent the
|
|
115
|
+
* session registry from growing unbounded if a client keeps rotating IDs.
|
|
116
|
+
*/
|
|
117
|
+
export const MAX_BRIDGE_SESSIONS = 1000;
|
|
60
118
|
//# sourceMappingURL=defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAsB;IAC/C,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,EAAE,2DAA2D;QACpE,IAAI,EAAE,WAAW;KAClB;IACD,SAAS,EAAE;QACT,IAAI,EAAE,WAAW;QACjB,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,MAAM;QACpB,gBAAgB,EAAE,IAAI;KACvB;IACD,OAAO,EAAE;QACP,WAAW,EAAE,GAAG;QAChB,eAAe,EAAE,CAAC,WAAW,CAAC;QAC9B,sBAAsB,EAAE,CAAC;QACzB,cAAc,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;KAC1C;IACD,MAAM,EAAE;QACN,IAAI,EAAE,IAAI;QACV,eAAe,EAAE,IAAI;KACtB;IACD,SAAS,EAAE;QACT,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,GAAG;KAChB;IACD,OAAO,EAAE;QACP,OAAO,EAAE,IAAI;QACb,SAAS,EAAE,KAAK;QAChB,OAAO,EAAE,IAAI;KACd;IACD,OAAO,EAAE;QACP,SAAS,EAAE,CAAC,GAAG,CAAC;QAChB,QAAQ,EAAE,EAAE;KACb;CACF,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,mBAAmB;IACzB,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,0BAA0B;IACvC,SAAS,EAAE,wBAAwB;IACnC,MAAM,EAAE,qBAAqB;IAC7B,aAAa,EAAE,4BAA4B;IAC3C,gBAAgB,EAAE,sBAAsB;IACxC,WAAW,EAAE,0BAA0B;IACvC,YAAY,EAAE,2BAA2B;IACzC,YAAY,EAAE,2BAA2B;IACzC,cAAc,EAAE,6BAA6B;IAC7C,eAAe,EAAE,8BAA8B;IAC/C,aAAa,EAAE,4BAA4B;CACnC,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,SAAS,EAAE,IAAI;IACf,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,mBAAmB,EAAE,MAAM;IAC3B,qBAAqB,EAAE,KAAK;IAC5B,mBAAmB,EAAE,CAAC,GAAG,MAAM;IAC/B,uBAAuB,EAAE,EAAE,GAAG,MAAM;IACpC,mBAAmB,EAAE,EAAE,GAAG,MAAM;IAChC,0BAA0B,EAAE,MAAM;IAClC,sBAAsB,EAAE,MAAM;IAC9B,qBAAqB,EAAE,EAAE,GAAG,MAAM;IAClC,kCAAkC,EAAE,CAAC,GAAG,MAAM;IAC9C,wBAAwB,EAAE,MAAM;CACxB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC"}
|
package/dist/config/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
package/dist/config/index.js
CHANGED
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC"}
|
package/dist/config/loader.d.ts
CHANGED
|
@@ -16,6 +16,9 @@ export declare function loadConfig(configPath?: string): MCPExecutorConfig;
|
|
|
16
16
|
export declare function getClaudeConfigPaths(): string[];
|
|
17
17
|
/**
|
|
18
18
|
* Find the Claude config file
|
|
19
|
+
*
|
|
20
|
+
* Prefers files that contain an `mcpServers` key. If none do, falls back
|
|
21
|
+
* to the first existing file in the search order.
|
|
19
22
|
*/
|
|
20
23
|
export declare function findClaudeConfig(): string | null;
|
|
21
24
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAiB,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA+GnG;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAgBjE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,iBAAiB,EAAiB,YAAY,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AA+GnG;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAgBjE;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,EAAE,CA0B/C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,GAAG,IAAI,CAkChD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAkBzE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAQlD;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,MAAM,CAEtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAgBnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAmB/E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,eAAe,EACvB,UAAU,CAAC,EAAE,MAAM,GAClB;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAyBpD"}
|
package/dist/config/loader.js
CHANGED
|
@@ -126,6 +126,8 @@ export function loadConfig(configPath) {
|
|
|
126
126
|
export function getClaudeConfigPaths() {
|
|
127
127
|
const home = homedir();
|
|
128
128
|
const paths = [
|
|
129
|
+
// Claude Code settings (primary for Claude Code CLI)
|
|
130
|
+
join(home, '.claude', 'settings.json'),
|
|
129
131
|
// Claude Code configs
|
|
130
132
|
join(home, '.claude.json'),
|
|
131
133
|
join(home, 'Library', 'Application Support', 'Claude Code', 'claude_code_config.json'),
|
|
@@ -133,6 +135,8 @@ export function getClaudeConfigPaths() {
|
|
|
133
135
|
// Claude Desktop configs
|
|
134
136
|
join(home, 'Library', 'Application Support', 'Claude', 'claude_desktop_config.json'),
|
|
135
137
|
join(home, '.config', 'claude', 'claude_desktop_config.json'),
|
|
138
|
+
// Linux XDG paths
|
|
139
|
+
join(home, '.config', 'Claude Code', 'claude_code_config.json'),
|
|
136
140
|
// Project local configs
|
|
137
141
|
join(process.cwd(), 'claude_code_config.json'),
|
|
138
142
|
join(process.cwd(), 'claude_desktop_config.json'),
|
|
@@ -146,6 +150,9 @@ export function getClaudeConfigPaths() {
|
|
|
146
150
|
}
|
|
147
151
|
/**
|
|
148
152
|
* Find the Claude config file
|
|
153
|
+
*
|
|
154
|
+
* Prefers files that contain an `mcpServers` key. If none do, falls back
|
|
155
|
+
* to the first existing file in the search order.
|
|
149
156
|
*/
|
|
150
157
|
export function findClaudeConfig() {
|
|
151
158
|
// Check environment variable first
|
|
@@ -153,14 +160,30 @@ export function findClaudeConfig() {
|
|
|
153
160
|
if (envPath && envPath !== 'auto' && existsSync(envPath)) {
|
|
154
161
|
return envPath;
|
|
155
162
|
}
|
|
156
|
-
// Search standard paths
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
163
|
+
// Search standard paths — prefer files with mcpServers
|
|
164
|
+
let firstExisting = null;
|
|
165
|
+
for (const configPath of getClaudeConfigPaths()) {
|
|
166
|
+
if (!existsSync(configPath))
|
|
167
|
+
continue;
|
|
168
|
+
if (!firstExisting) {
|
|
169
|
+
firstExisting = configPath;
|
|
170
|
+
}
|
|
171
|
+
try {
|
|
172
|
+
const content = readFileSync(configPath, 'utf-8');
|
|
173
|
+
const parsed = safeJsonParse(content, {});
|
|
174
|
+
if (parsed.mcpServers && Object.keys(parsed.mcpServers).length > 0) {
|
|
175
|
+
logger.debug(`Found Claude config with mcpServers at ${configPath}`);
|
|
176
|
+
return configPath;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
catch {
|
|
180
|
+
// Skip unreadable files
|
|
161
181
|
}
|
|
162
182
|
}
|
|
163
|
-
|
|
183
|
+
if (firstExisting) {
|
|
184
|
+
logger.debug(`Found Claude config at ${firstExisting} (no mcpServers found in any config)`);
|
|
185
|
+
}
|
|
186
|
+
return firstExisting;
|
|
164
187
|
}
|
|
165
188
|
/**
|
|
166
189
|
* Load Claude config and extract MCP servers
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/config/schema.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/config/schema.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEnE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,aAAa,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,YAAY,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;IAC3B,OAAO,EAAE,aAAa,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAC1B,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9B,CAAC,CAAC;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oFAAoF;IACpF,eAAe,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IACrC,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,yDAAyD;IACzD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,kDAAkD;IAClD,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,yEAAyE;IACzE,SAAS,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;CAChD"}
|
package/dist/hub/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MCP Hub
|
|
2
|
+
* MCP Hub — connection pool that spawns, manages, and routes calls to
|
|
3
|
+
* backend MCP server processes (github, filesystem, brave-search, etc.).
|
|
4
|
+
* @module hub
|
|
3
5
|
*/
|
|
4
6
|
export { MCPHub, type ServerConnection, type ServerStatus, type HubConfig, type HubEvents, } from './mcp-hub.js';
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/hub/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hub/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hub/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,MAAM,EACN,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,SAAS,GACf,MAAM,cAAc,CAAC"}
|
package/dist/hub/index.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* MCP Hub
|
|
2
|
+
* MCP Hub — connection pool that spawns, manages, and routes calls to
|
|
3
|
+
* backend MCP server processes (github, filesystem, brave-search, etc.).
|
|
4
|
+
* @module hub
|
|
3
5
|
*/
|
|
4
6
|
export { MCPHub, } from './mcp-hub.js';
|
|
5
7
|
//# sourceMappingURL=index.js.map
|
package/dist/hub/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hub/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hub/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,MAAM,GAKP,MAAM,cAAc,CAAC"}
|
package/dist/hub/mcp-hub.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-hub.d.ts","sourceRoot":"","sources":["../../src/hub/mcp-hub.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAU,WAAW,
|
|
1
|
+
{"version":3,"file":"mcp-hub.d.ts","sourceRoot":"","sources":["../../src/hub/mcp-hub.ts"],"names":[],"mappings":"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"}
|
package/dist/hub/mcp-hub.js
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
12
12
|
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
13
13
|
import { EventEmitter } from 'node:events';
|
|
14
|
-
import { logger, RateLimiter } from '../utils/index.js';
|
|
14
|
+
import { logger, RateLimiter, minimalChildEnv } from '../utils/index.js';
|
|
15
15
|
import { loadClaudeConfig, findClaudeConfig, loadConductorConfig, findConductorConfig, } from '../config/loader.js';
|
|
16
16
|
const DEFAULT_HUB_CONFIG = {
|
|
17
17
|
claudeConfigPath: '',
|
|
@@ -27,6 +27,7 @@ export class MCPHub extends EventEmitter {
|
|
|
27
27
|
connections = new Map();
|
|
28
28
|
toolCache = new Map();
|
|
29
29
|
reconnectAttempts = new Map();
|
|
30
|
+
reconnectTimers = new Map();
|
|
30
31
|
isShuttingDown = false;
|
|
31
32
|
constructor(config = {}) {
|
|
32
33
|
super();
|
|
@@ -134,6 +135,22 @@ export class MCPHub extends EventEmitter {
|
|
|
134
135
|
if (this.isShuttingDown) {
|
|
135
136
|
return false;
|
|
136
137
|
}
|
|
138
|
+
// Clean up existing connection before creating new one
|
|
139
|
+
const existing = this.connections.get(name);
|
|
140
|
+
if (existing && existing.status !== 'disconnected') {
|
|
141
|
+
try {
|
|
142
|
+
if (existing.transport) {
|
|
143
|
+
existing.transport.onerror = undefined;
|
|
144
|
+
existing.transport.onclose = undefined;
|
|
145
|
+
}
|
|
146
|
+
if (existing.rateLimiter)
|
|
147
|
+
existing.rateLimiter.destroy();
|
|
148
|
+
await existing.client.close();
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// Ignore cleanup errors during reconnect
|
|
152
|
+
}
|
|
153
|
+
}
|
|
137
154
|
try {
|
|
138
155
|
logger.debug(`Connecting to server: ${name}`, {
|
|
139
156
|
command: serverConfig.command,
|
|
@@ -144,18 +161,10 @@ export class MCPHub extends EventEmitter {
|
|
|
144
161
|
version: '1.0.0',
|
|
145
162
|
});
|
|
146
163
|
// Build env with defined values only
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
for (const [key, value] of Object.entries(process.env)) {
|
|
152
|
-
if (value !== undefined) {
|
|
153
|
-
transportEnv[key] = value;
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
// Override with server-specific env
|
|
157
|
-
Object.assign(transportEnv, serverConfig.env);
|
|
158
|
-
}
|
|
164
|
+
// Only pass PATH + HOME + server-specific env (not full process.env)
|
|
165
|
+
const transportEnv = serverConfig.env && Object.keys(serverConfig.env).length > 0
|
|
166
|
+
? minimalChildEnv(serverConfig.env)
|
|
167
|
+
: undefined;
|
|
159
168
|
const transport = new StdioClientTransport({
|
|
160
169
|
command: serverConfig.command,
|
|
161
170
|
args: serverConfig.args || [],
|
|
@@ -251,7 +260,12 @@ export class MCPHub extends EventEmitter {
|
|
|
251
260
|
maxAttempts: this.config.maxReconnectAttempts,
|
|
252
261
|
delayMs: this.config.reconnectDelayMs,
|
|
253
262
|
});
|
|
254
|
-
|
|
263
|
+
// Clear any existing timer for this server
|
|
264
|
+
const existingTimer = this.reconnectTimers.get(name);
|
|
265
|
+
if (existingTimer)
|
|
266
|
+
clearTimeout(existingTimer);
|
|
267
|
+
const timer = setTimeout(async () => {
|
|
268
|
+
this.reconnectTimers.delete(name);
|
|
255
269
|
if (this.isShuttingDown)
|
|
256
270
|
return;
|
|
257
271
|
logger.info(`Attempting reconnect for ${name}`, { attempt: attempts });
|
|
@@ -261,6 +275,7 @@ export class MCPHub extends EventEmitter {
|
|
|
261
275
|
env: connection.env,
|
|
262
276
|
});
|
|
263
277
|
}, this.config.reconnectDelayMs);
|
|
278
|
+
this.reconnectTimers.set(name, timer);
|
|
264
279
|
}
|
|
265
280
|
/**
|
|
266
281
|
* Cache tools from a connected server
|
|
@@ -287,10 +302,21 @@ export class MCPHub extends EventEmitter {
|
|
|
287
302
|
* Disconnect from a specific server
|
|
288
303
|
*/
|
|
289
304
|
async disconnectServer(name) {
|
|
305
|
+
// Clear any pending reconnect timer
|
|
306
|
+
const timer = this.reconnectTimers.get(name);
|
|
307
|
+
if (timer) {
|
|
308
|
+
clearTimeout(timer);
|
|
309
|
+
this.reconnectTimers.delete(name);
|
|
310
|
+
}
|
|
290
311
|
const connection = this.connections.get(name);
|
|
291
312
|
if (!connection) {
|
|
292
313
|
return;
|
|
293
314
|
}
|
|
315
|
+
// Clean up transport event handlers
|
|
316
|
+
if (connection.transport) {
|
|
317
|
+
connection.transport.onerror = undefined;
|
|
318
|
+
connection.transport.onclose = undefined;
|
|
319
|
+
}
|
|
294
320
|
// Clean up rate limiter
|
|
295
321
|
if (connection.rateLimiter) {
|
|
296
322
|
connection.rateLimiter.destroy();
|
|
@@ -367,10 +393,17 @@ export class MCPHub extends EventEmitter {
|
|
|
367
393
|
async shutdown() {
|
|
368
394
|
logger.info('Shutting down MCP Hub');
|
|
369
395
|
this.isShuttingDown = true;
|
|
396
|
+
// Clear all pending reconnection timers
|
|
397
|
+
for (const [_name, timer] of this.reconnectTimers) {
|
|
398
|
+
clearTimeout(timer);
|
|
399
|
+
}
|
|
400
|
+
this.reconnectTimers.clear();
|
|
370
401
|
const disconnectPromises = Array.from(this.connections.keys()).map((name) => this.disconnectServer(name));
|
|
371
402
|
await Promise.allSettled(disconnectPromises);
|
|
372
403
|
this.connections.clear();
|
|
373
404
|
this.toolCache.clear();
|
|
405
|
+
// Clean up EventEmitter listeners
|
|
406
|
+
this.removeAllListeners();
|
|
374
407
|
logger.info('MCP Hub shutdown complete');
|
|
375
408
|
}
|
|
376
409
|
// ============================================
|