@darkiceinteractive/mcp-conductor 1.1.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/dist/bridge/http-server.d.ts +39 -1
- package/dist/bridge/http-server.d.ts.map +1 -1
- package/dist/bridge/http-server.js +162 -5
- package/dist/bridge/http-server.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 +10 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +10 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/runtime/executor.d.ts +12 -0
- package/dist/runtime/executor.d.ts.map +1 -1
- package/dist/runtime/executor.js +70 -3
- package/dist/runtime/executor.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 +187 -43
- package/dist/server/mcp-server.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +5 -1
- 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/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 +3 -3
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +3 -3
- package/dist/version.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -26,6 +26,7 @@ import { MCPExecutorServer } from './server/index.js';
|
|
|
26
26
|
import { loadConfig } from './config/index.js';
|
|
27
27
|
import { LIFECYCLE_TIMEOUTS } from './config/defaults.js';
|
|
28
28
|
import { logger } from './utils/index.js';
|
|
29
|
+
import { startOrphanWatch } from './utils/orphan-watch.js';
|
|
29
30
|
import { BUILD_STRING } from './version.js';
|
|
30
31
|
/**
|
|
31
32
|
* Main entry point
|
|
@@ -42,10 +43,15 @@ async function main() {
|
|
|
42
43
|
const server = new MCPExecutorServer(config);
|
|
43
44
|
// Handle shutdown gracefully with timeout guard
|
|
44
45
|
let isShuttingDown = false;
|
|
46
|
+
let orphanWatch = null;
|
|
45
47
|
const shutdown = async () => {
|
|
46
48
|
if (isShuttingDown)
|
|
47
49
|
return; // Prevent double-shutdown
|
|
48
50
|
isShuttingDown = true;
|
|
51
|
+
// Stop the orphan watchdog first so normal SIGTERM cleanup doesn't
|
|
52
|
+
// race with an "oh no, parent is gone" false positive.
|
|
53
|
+
orphanWatch?.stop();
|
|
54
|
+
orphanWatch = null;
|
|
49
55
|
logger.info('Shutting down...');
|
|
50
56
|
// Safety: force exit if shutdown hangs
|
|
51
57
|
const shutdownTimeout = setTimeout(() => {
|
|
@@ -74,6 +80,12 @@ async function main() {
|
|
|
74
80
|
});
|
|
75
81
|
try {
|
|
76
82
|
await server.start();
|
|
83
|
+
// Orphan watchdog: if the MCP client that spawned us dies, our
|
|
84
|
+
// parent PID changes (usually to 1 on POSIX). Poll for that and
|
|
85
|
+
// trigger shutdown so Deno children / bridge timers don't leak.
|
|
86
|
+
orphanWatch = startOrphanWatch({
|
|
87
|
+
onOrphaned: () => shutdown(),
|
|
88
|
+
});
|
|
77
89
|
// Periodic memory logging for diagnostics
|
|
78
90
|
const memLog = setInterval(() => {
|
|
79
91
|
const m = process.memoryUsage();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C;;GAEG;AACH,KAAK,UAAU,IAAI;IACjB,qBAAqB;IACrB,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAE5B,MAAM,CAAC,IAAI,CAAC,0BAA0B,YAAY,EAAE,EAAE;QACpD,IAAI,EAAE,MAAM,CAAC,SAAS,CAAC,IAAI;QAC3B,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QAC9B,OAAO,EAAE,MAAM,CAAC,SAAS,CAAC,gBAAgB;KAC3C,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE7C,gDAAgD;IAChD,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,IAAI,cAAc;YAAE,OAAO,CAAC,0BAA0B;QACtD,cAAc,GAAG,IAAI,CAAC;QAEtB,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEhC,uCAAuC;QACvC,MAAM,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;YACtC,MAAM,CAAC,KAAK,CAAC,4BAA4B,kBAAkB,CAAC,mBAAmB,kBAAkB,CAAC,CAAC;YACnG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,EAAE,kBAAkB,CAAC,mBAAmB,CAAC,CAAC;QAC3C,eAAe,CAAC,KAAK,EAAE,CAAC,CAAC,+CAA+C;QAExE,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAClE,CAAC;QAED,YAAY,CAAC,eAAe,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAEhC,iDAAiD;IACjD,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;QACxC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QACjF,QAAQ,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,EAAE;QAC1C,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QAErB,0CAA0C;QAC1C,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;YAC9B,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAChC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE;gBACpB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG,IAAI,GAAG,IAAI,CAAC;gBAC5C,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;aACvC,CAAC,CAAC;QACL,CAAC,EAAE,kBAAkB,CAAC,sBAAsB,CAAC,CAAC;QAC9C,MAAM,CAAC,KAAK,EAAE,CAAC;IACjB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,MAAM;AACN,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -29,6 +29,18 @@ export interface ExecutionOptions {
|
|
|
29
29
|
servers: string[];
|
|
30
30
|
/** Enable streaming mode for real-time progress updates */
|
|
31
31
|
stream?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* AbortSignal tied to the caller's request. When the signal fires we
|
|
34
|
+
* terminate the Deno process via the same SIGTERM→SIGKILL path used for
|
|
35
|
+
* shutdown. Surfaces MCP cancellation from the client side.
|
|
36
|
+
*/
|
|
37
|
+
signal?: AbortSignal;
|
|
38
|
+
/**
|
|
39
|
+
* Caller-provided execution id. Lets the MCP server preallocate the id
|
|
40
|
+
* and subscribe to the matching ExecutionStream *before* Deno spawns, so
|
|
41
|
+
* we never miss the first progress event.
|
|
42
|
+
*/
|
|
43
|
+
executionId?: string;
|
|
32
44
|
}
|
|
33
45
|
/**
|
|
34
46
|
* Deno Sandbox Executor
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;QACpD,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE;QACP,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,MAAM,WAAW,eAAe;IAC9B,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;QACpD,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE;QACP,eAAe,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+aD;;GAEG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,sBAAsB,CAAS;IACvC,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAAwB;gBAEjC,MAAM,EAAE,aAAa;IAejC;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAgBnC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAwC/B;;OAEG;IACH,qBAAqB,IAAI,MAAM;IAI/B;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IA8EhF;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAI7B;;OAEG;IACH,OAAO,CAAC,OAAO;CAkUhB"}
|
package/dist/runtime/executor.js
CHANGED
|
@@ -558,9 +558,19 @@ export class DenoExecutor {
|
|
|
558
558
|
* Execute code in the Deno sandbox
|
|
559
559
|
*/
|
|
560
560
|
async execute(code, options) {
|
|
561
|
-
const executionId = generateExecutionId();
|
|
561
|
+
const executionId = options.executionId ?? generateExecutionId();
|
|
562
562
|
const startTime = Date.now();
|
|
563
563
|
const streamEnabled = options.stream ?? false;
|
|
564
|
+
// Short-circuit if the caller already cancelled before we started.
|
|
565
|
+
if (options.signal?.aborted) {
|
|
566
|
+
return {
|
|
567
|
+
executionId,
|
|
568
|
+
success: false,
|
|
569
|
+
error: { type: 'runtime', message: 'Execution cancelled before start' },
|
|
570
|
+
logs: [],
|
|
571
|
+
metrics: { executionTimeMs: 0, toolCalls: 0, dataProcessedBytes: 0, resultSizeBytes: 0 },
|
|
572
|
+
};
|
|
573
|
+
}
|
|
564
574
|
logger.debug('Starting execution', { executionId, streamEnabled });
|
|
565
575
|
// Validate Deno is available
|
|
566
576
|
const hasDenoAvailable = await this.checkDeno();
|
|
@@ -587,7 +597,7 @@ export class DenoExecutor {
|
|
|
587
597
|
const tempFile = join(this.tempDir, `exec_${executionId}.ts`);
|
|
588
598
|
writeFileSync(tempFile, sandboxCode);
|
|
589
599
|
try {
|
|
590
|
-
const result = await this.runDeno(tempFile, options.timeoutMs, executionId, options.bridgeUrl);
|
|
600
|
+
const result = await this.runDeno(tempFile, options.timeoutMs, executionId, options.bridgeUrl, options.signal);
|
|
591
601
|
return {
|
|
592
602
|
...result,
|
|
593
603
|
executionId,
|
|
@@ -617,7 +627,7 @@ export class DenoExecutor {
|
|
|
617
627
|
/**
|
|
618
628
|
* Run Deno subprocess
|
|
619
629
|
*/
|
|
620
|
-
runDeno(filePath, timeoutMs, executionId, bridgeUrl) {
|
|
630
|
+
runDeno(filePath, timeoutMs, executionId, bridgeUrl, signal) {
|
|
621
631
|
return new Promise((resolve) => {
|
|
622
632
|
// Reject if shutting down
|
|
623
633
|
if (this.isShuttingDown) {
|
|
@@ -693,6 +703,35 @@ export class DenoExecutor {
|
|
|
693
703
|
killed = true;
|
|
694
704
|
proc.kill('SIGKILL');
|
|
695
705
|
}, timeoutMs);
|
|
706
|
+
// Honour MCP cancellation (RequestHandlerExtra.signal). We kill the
|
|
707
|
+
// process and flag cancellation so the close handler returns the
|
|
708
|
+
// dedicated error type instead of a timeout / runtime error.
|
|
709
|
+
let cancelled = false;
|
|
710
|
+
const onAbort = () => {
|
|
711
|
+
cancelled = true;
|
|
712
|
+
killed = true;
|
|
713
|
+
logger.info('Execution cancelled by client', { executionId });
|
|
714
|
+
try {
|
|
715
|
+
proc.kill('SIGTERM');
|
|
716
|
+
// Escalate to SIGKILL if the process doesn't exit in the grace window.
|
|
717
|
+
setTimeout(() => {
|
|
718
|
+
if (this.activeProcesses.has(executionId)) {
|
|
719
|
+
proc.kill('SIGKILL');
|
|
720
|
+
}
|
|
721
|
+
}, LIFECYCLE_TIMEOUTS.PROCESS_FORCE_KILL_MS).unref?.();
|
|
722
|
+
}
|
|
723
|
+
catch {
|
|
724
|
+
// Process may already be gone.
|
|
725
|
+
}
|
|
726
|
+
};
|
|
727
|
+
if (signal) {
|
|
728
|
+
if (signal.aborted) {
|
|
729
|
+
onAbort();
|
|
730
|
+
}
|
|
731
|
+
else {
|
|
732
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
733
|
+
}
|
|
734
|
+
}
|
|
696
735
|
// Bounded stdout/stderr buffering
|
|
697
736
|
const stdoutChunks = [];
|
|
698
737
|
let stdoutLen = 0;
|
|
@@ -731,8 +770,29 @@ export class DenoExecutor {
|
|
|
731
770
|
proc.on('close', (code) => {
|
|
732
771
|
clearTimeout(timer);
|
|
733
772
|
this.activeProcesses.delete(executionId);
|
|
773
|
+
if (signal) {
|
|
774
|
+
signal.removeEventListener('abort', onAbort);
|
|
775
|
+
}
|
|
734
776
|
const stdout = Buffer.concat(stdoutChunks).toString('utf-8');
|
|
735
777
|
const stderr = Buffer.concat(stderrChunks).toString('utf-8');
|
|
778
|
+
if (cancelled) {
|
|
779
|
+
resolve({
|
|
780
|
+
executionId,
|
|
781
|
+
success: false,
|
|
782
|
+
error: {
|
|
783
|
+
type: 'runtime',
|
|
784
|
+
message: 'Execution cancelled by client',
|
|
785
|
+
},
|
|
786
|
+
logs: [],
|
|
787
|
+
metrics: {
|
|
788
|
+
executionTimeMs: 0,
|
|
789
|
+
toolCalls: 0,
|
|
790
|
+
dataProcessedBytes: 0,
|
|
791
|
+
resultSizeBytes: 0,
|
|
792
|
+
},
|
|
793
|
+
});
|
|
794
|
+
return;
|
|
795
|
+
}
|
|
736
796
|
if (killed) {
|
|
737
797
|
resolve({
|
|
738
798
|
executionId,
|
|
@@ -836,6 +896,13 @@ export class DenoExecutor {
|
|
|
836
896
|
proc.on('error', (error) => {
|
|
837
897
|
clearTimeout(timer);
|
|
838
898
|
this.activeProcesses.delete(executionId);
|
|
899
|
+
// Symmetric with the close handler — without this the abort
|
|
900
|
+
// listener stays attached to the AbortSignal until the SDK GCs
|
|
901
|
+
// the request, leaking closure refs across repeated spawn
|
|
902
|
+
// failures (EAGAIN/EMFILE/ENOENT).
|
|
903
|
+
if (signal) {
|
|
904
|
+
signal.removeEventListener('abort', onAbort);
|
|
905
|
+
}
|
|
839
906
|
// Reset deno check cache on spawn failure
|
|
840
907
|
if (error.message.includes('ENOENT')) {
|
|
841
908
|
this.denoAvailable = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/runtime/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,6 +30,11 @@ export declare class MCPExecutorServer {
|
|
|
30
30
|
/**
|
|
31
31
|
* Register all MCP tools
|
|
32
32
|
*/
|
|
33
|
+
/**
|
|
34
|
+
* Record metrics + shape the execute_code tool response. Extracted so the
|
|
35
|
+
* progress/cancel wiring in the handler stays readable.
|
|
36
|
+
*/
|
|
37
|
+
private finaliseExecuteCodeResult;
|
|
33
38
|
private registerTools;
|
|
34
39
|
/**
|
|
35
40
|
* Start the server
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAQzC,OAAO,KAAK,EAAE,iBAAiB,EAAkC,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../../src/server/mcp-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAQzC,OAAO,KAAK,EAAE,iBAAiB,EAAkC,MAAM,oBAAoB,CAAC;AAI5F;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,WAAW,CAAgB;IAGnC,OAAO,CAAC,WAAW,CAAmF;gBAE1F,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE;IAiE7E;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACH;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IA8CjC,OAAO,CAAC,aAAa;IA0wCrB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAqH5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B;;OAEG;IACH,MAAM,IAAI,MAAM;IAIhB;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAOtE;;;;OAIG;IACH,kBAAkB,IAAI,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;CActF"}
|
|
@@ -17,6 +17,7 @@ import { shutdownMetricsCollector } from '../metrics/index.js';
|
|
|
17
17
|
import { shutdownModeHandler } from '../modes/index.js';
|
|
18
18
|
import { shutdownSkillsEngine } from '../skills/index.js';
|
|
19
19
|
import { loadConductorConfig, saveConductorConfig, getDefaultConductorConfigPath } from '../config/index.js';
|
|
20
|
+
import { VERSION } from '../version.js';
|
|
20
21
|
/**
|
|
21
22
|
* MCP Executor Server
|
|
22
23
|
*/
|
|
@@ -49,7 +50,7 @@ export class MCPExecutorServer {
|
|
|
49
50
|
this.server = new McpServer({
|
|
50
51
|
name: 'mcp-conductor',
|
|
51
52
|
title: 'MCP Conductor',
|
|
52
|
-
version:
|
|
53
|
+
version: VERSION,
|
|
53
54
|
websiteUrl: 'https://github.com/darkiceinteractive/mcp-conductor',
|
|
54
55
|
icons: [
|
|
55
56
|
{
|
|
@@ -113,6 +114,46 @@ export class MCPExecutorServer {
|
|
|
113
114
|
/**
|
|
114
115
|
* Register all MCP tools
|
|
115
116
|
*/
|
|
117
|
+
/**
|
|
118
|
+
* Record metrics + shape the execute_code tool response. Extracted so the
|
|
119
|
+
* progress/cancel wiring in the handler stays readable.
|
|
120
|
+
*/
|
|
121
|
+
finaliseExecuteCodeResult(result, code, servers, verbose) {
|
|
122
|
+
const executionMetrics = this.metricsCollector.recordExecution({
|
|
123
|
+
executionId: result.executionId,
|
|
124
|
+
code,
|
|
125
|
+
result: result.result,
|
|
126
|
+
success: result.success,
|
|
127
|
+
durationMs: result.metrics.executionTimeMs,
|
|
128
|
+
toolCalls: result.metrics.toolCalls,
|
|
129
|
+
dataProcessedBytes: result.metrics.dataProcessedBytes,
|
|
130
|
+
resultSizeBytes: result.metrics.resultSizeBytes,
|
|
131
|
+
mode: 'execution',
|
|
132
|
+
serversUsed: servers || [],
|
|
133
|
+
errorType: result.error?.type,
|
|
134
|
+
});
|
|
135
|
+
this.modeHandler.recordExecutionCall(executionMetrics.estimatedTokensSaved);
|
|
136
|
+
const output = {
|
|
137
|
+
success: result.success,
|
|
138
|
+
result: result.result,
|
|
139
|
+
error: result.error,
|
|
140
|
+
};
|
|
141
|
+
if (verbose) {
|
|
142
|
+
output.metrics = {
|
|
143
|
+
execution_time_ms: result.metrics.executionTimeMs,
|
|
144
|
+
tool_calls: result.metrics.toolCalls,
|
|
145
|
+
data_processed_bytes: result.metrics.dataProcessedBytes,
|
|
146
|
+
result_size_bytes: result.metrics.resultSizeBytes,
|
|
147
|
+
estimated_tokens_saved: executionMetrics.estimatedTokensSaved,
|
|
148
|
+
savings_percent: executionMetrics.savingsPercent,
|
|
149
|
+
};
|
|
150
|
+
output.logs = result.logs;
|
|
151
|
+
}
|
|
152
|
+
return {
|
|
153
|
+
content: [{ type: 'text', text: JSON.stringify(output) }],
|
|
154
|
+
structuredContent: output,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
116
157
|
registerTools() {
|
|
117
158
|
// Register execute_code tool
|
|
118
159
|
this.server.registerTool('execute_code', {
|
|
@@ -126,6 +167,14 @@ export class MCPExecutorServer {
|
|
|
126
167
|
**Example:** \`const files = await mcp.filesystem.call('list_directory', { path: '/src' }); return files;\`
|
|
127
168
|
|
|
128
169
|
Use passthrough_call only for debugging - it has HIGH token cost.`,
|
|
170
|
+
annotations: {
|
|
171
|
+
// execute_code proxies arbitrary code that can call any backend MCP
|
|
172
|
+
// tool, so it inherits the most permissive capability surface.
|
|
173
|
+
readOnlyHint: false,
|
|
174
|
+
destructiveHint: true,
|
|
175
|
+
idempotentHint: false,
|
|
176
|
+
openWorldHint: true,
|
|
177
|
+
},
|
|
129
178
|
inputSchema: {
|
|
130
179
|
code: z.string().describe('TypeScript/JavaScript code to execute. Must include a return statement.'),
|
|
131
180
|
servers: z.array(z.string()).optional().describe('Optional: List of MCP server names to load.'),
|
|
@@ -151,60 +200,87 @@ Use passthrough_call only for debugging - it has HIGH token cost.`,
|
|
|
151
200
|
}).optional(),
|
|
152
201
|
logs: z.array(z.string()).optional(),
|
|
153
202
|
},
|
|
154
|
-
}, async ({ code, servers, timeout_ms, stream, verbose }) => {
|
|
203
|
+
}, async ({ code, servers, timeout_ms, stream, verbose }, extra) => {
|
|
155
204
|
const timeoutMs = Math.min(timeout_ms || this.config.execution.defaultTimeoutMs, this.config.execution.maxTimeoutMs);
|
|
156
205
|
logger.info('Executing code', {
|
|
157
206
|
codeLength: code.length,
|
|
158
207
|
timeout: timeoutMs,
|
|
159
208
|
servers: servers || 'all',
|
|
160
209
|
});
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
const
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
error: result.error,
|
|
210
|
+
// If the client supplied a progressToken in _meta, forward sandbox
|
|
211
|
+
// progress() calls as MCP notifications/progress. We preallocate the
|
|
212
|
+
// execution id + stream so we never miss the first event.
|
|
213
|
+
const progressToken = extra?._meta?.progressToken;
|
|
214
|
+
const wantProgress = progressToken !== undefined;
|
|
215
|
+
const wantStream = stream || wantProgress;
|
|
216
|
+
const executionId = wantStream ? this.executor.generateExecutionId() : undefined;
|
|
217
|
+
const execStream = executionId ? this.bridge.createStream(executionId) : undefined;
|
|
218
|
+
const forwardProgress = (percent, message) => {
|
|
219
|
+
if (!wantProgress || !extra?.sendNotification)
|
|
220
|
+
return;
|
|
221
|
+
void extra
|
|
222
|
+
.sendNotification({
|
|
223
|
+
method: 'notifications/progress',
|
|
224
|
+
params: {
|
|
225
|
+
progressToken,
|
|
226
|
+
progress: percent,
|
|
227
|
+
total: 100,
|
|
228
|
+
...(message ? { message } : {}),
|
|
229
|
+
},
|
|
230
|
+
})
|
|
231
|
+
.catch((err) => {
|
|
232
|
+
logger.debug('Failed to forward progress notification', { error: String(err) });
|
|
233
|
+
});
|
|
186
234
|
};
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
235
|
+
if (execStream && wantProgress) {
|
|
236
|
+
execStream.on('progress', (ev) => {
|
|
237
|
+
forwardProgress(ev.data.percent, ev.data.message);
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
let result;
|
|
241
|
+
try {
|
|
242
|
+
result = await this.executor.execute(code, {
|
|
243
|
+
timeoutMs,
|
|
244
|
+
bridgeUrl: this.bridge.getUrl(),
|
|
245
|
+
servers: servers || [],
|
|
246
|
+
stream: wantStream,
|
|
247
|
+
signal: extra?.signal,
|
|
248
|
+
executionId,
|
|
249
|
+
});
|
|
250
|
+
return this.finaliseExecuteCodeResult(result, code, servers, verbose);
|
|
251
|
+
}
|
|
252
|
+
finally {
|
|
253
|
+
if (execStream) {
|
|
254
|
+
// Flip the stream out of `running` so StreamManager's normal
|
|
255
|
+
// 5/10-min cleanup applies instead of the 15-min stuck-stream
|
|
256
|
+
// sweep. Only fire complete() if we actually got a result —
|
|
257
|
+
// if execute() threw, the stream will time out via the stuck
|
|
258
|
+
// path which is the right safety net.
|
|
259
|
+
if (result) {
|
|
260
|
+
execStream.complete({
|
|
261
|
+
success: result.success,
|
|
262
|
+
result: result.result,
|
|
263
|
+
error: result.error,
|
|
264
|
+
metrics: {
|
|
265
|
+
executionTimeMs: result.metrics.executionTimeMs,
|
|
266
|
+
toolCalls: result.metrics.toolCalls,
|
|
267
|
+
dataProcessedBytes: result.metrics.dataProcessedBytes,
|
|
268
|
+
},
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
execStream.removeAllListeners('progress');
|
|
272
|
+
}
|
|
198
273
|
}
|
|
199
|
-
return {
|
|
200
|
-
content: [{ type: 'text', text: JSON.stringify(output) }],
|
|
201
|
-
structuredContent: output,
|
|
202
|
-
};
|
|
203
274
|
});
|
|
204
275
|
// Register list_servers tool
|
|
205
276
|
this.server.registerTool('list_servers', {
|
|
206
277
|
title: 'List Servers',
|
|
207
278
|
description: 'List all MCP servers connected through MCP Executor.',
|
|
279
|
+
annotations: {
|
|
280
|
+
readOnlyHint: true,
|
|
281
|
+
idempotentHint: true,
|
|
282
|
+
openWorldHint: false,
|
|
283
|
+
},
|
|
208
284
|
inputSchema: {
|
|
209
285
|
include_tools: z.boolean().optional().describe('If true, include list of tool names.'),
|
|
210
286
|
},
|
|
@@ -253,6 +329,11 @@ Use passthrough_call only for debugging - it has HIGH token cost.`,
|
|
|
253
329
|
this.server.registerTool('discover_tools', {
|
|
254
330
|
title: 'Discover Tools',
|
|
255
331
|
description: 'Search for available tools across all connected MCP servers.',
|
|
332
|
+
annotations: {
|
|
333
|
+
readOnlyHint: true,
|
|
334
|
+
idempotentHint: true,
|
|
335
|
+
openWorldHint: false,
|
|
336
|
+
},
|
|
256
337
|
inputSchema: {
|
|
257
338
|
query: z.string().optional().describe('Search query. Matches against tool names and descriptions.'),
|
|
258
339
|
server: z.string().optional().describe('Optional: limit search to a specific server.'),
|
|
@@ -334,6 +415,11 @@ Use passthrough_call only for debugging - it has HIGH token cost.`,
|
|
|
334
415
|
this.server.registerTool('get_metrics', {
|
|
335
416
|
title: 'Get Metrics',
|
|
336
417
|
description: 'Get detailed aggregated metrics for the current session including token savings, performance, and usage patterns.',
|
|
418
|
+
annotations: {
|
|
419
|
+
readOnlyHint: true,
|
|
420
|
+
idempotentHint: true,
|
|
421
|
+
openWorldHint: false,
|
|
422
|
+
},
|
|
337
423
|
inputSchema: {
|
|
338
424
|
reset: z.boolean().optional().describe('Reset metrics after returning.'),
|
|
339
425
|
include_details: z.boolean().optional().describe('Include detailed breakdowns (servers, tools, recent executions).'),
|
|
@@ -443,6 +529,13 @@ Use passthrough_call only for debugging - it has HIGH token cost.`,
|
|
|
443
529
|
- execution: All requests go through the code executor (default, maximum token savings)
|
|
444
530
|
- passthrough: Direct tool calls without code execution (for debugging/comparison)
|
|
445
531
|
- hybrid: Automatic selection based on task complexity`,
|
|
532
|
+
annotations: {
|
|
533
|
+
// Changes global server behaviour; future tool calls take the new path.
|
|
534
|
+
readOnlyHint: false,
|
|
535
|
+
destructiveHint: true,
|
|
536
|
+
idempotentHint: true,
|
|
537
|
+
openWorldHint: false,
|
|
538
|
+
},
|
|
446
539
|
inputSchema: {
|
|
447
540
|
mode: z.enum(['execution', 'passthrough', 'hybrid']).describe('The operation mode to switch to.'),
|
|
448
541
|
},
|
|
@@ -469,6 +562,11 @@ Use passthrough_call only for debugging - it has HIGH token cost.`,
|
|
|
469
562
|
this.server.registerTool('reload_servers', {
|
|
470
563
|
title: 'Reload Servers',
|
|
471
564
|
description: 'Reload MCP server configurations. Useful after modifying claude_desktop_config.json.',
|
|
565
|
+
annotations: {
|
|
566
|
+
destructiveHint: true,
|
|
567
|
+
idempotentHint: false,
|
|
568
|
+
openWorldHint: true,
|
|
569
|
+
},
|
|
472
570
|
inputSchema: {},
|
|
473
571
|
outputSchema: {
|
|
474
572
|
added: z.array(z.string()),
|
|
@@ -493,6 +591,11 @@ Use passthrough_call only for debugging - it has HIGH token cost.`,
|
|
|
493
591
|
this.server.registerTool('get_capabilities', {
|
|
494
592
|
title: 'Get Capabilities',
|
|
495
593
|
description: 'Get detailed information about MCP Executor capabilities and configuration.',
|
|
594
|
+
annotations: {
|
|
595
|
+
readOnlyHint: true,
|
|
596
|
+
idempotentHint: true,
|
|
597
|
+
openWorldHint: false,
|
|
598
|
+
},
|
|
496
599
|
inputSchema: {},
|
|
497
600
|
outputSchema: {
|
|
498
601
|
version: z.string(),
|
|
@@ -522,7 +625,7 @@ Use passthrough_call only for debugging - it has HIGH token cost.`,
|
|
|
522
625
|
? { loaded: this.skills.getSkillCount(), categories: this.skills.getCategories() }
|
|
523
626
|
: { loaded: 0, categories: [] };
|
|
524
627
|
const output = {
|
|
525
|
-
version:
|
|
628
|
+
version: VERSION,
|
|
526
629
|
current_mode: this.currentMode,
|
|
527
630
|
features: {
|
|
528
631
|
streaming: this.config.execution.streamingEnabled,
|
|
@@ -550,6 +653,11 @@ Use passthrough_call only for debugging - it has HIGH token cost.`,
|
|
|
550
653
|
title: 'Compare Modes',
|
|
551
654
|
description: `Analyse how a task would be handled in different modes.
|
|
552
655
|
Returns estimated token usage and approach for each mode.`,
|
|
656
|
+
annotations: {
|
|
657
|
+
readOnlyHint: true,
|
|
658
|
+
idempotentHint: true,
|
|
659
|
+
openWorldHint: false,
|
|
660
|
+
},
|
|
553
661
|
inputSchema: {
|
|
554
662
|
task_description: z.string().describe('Description of the task to analyse.'),
|
|
555
663
|
estimated_tool_calls: z.number().optional().describe('Estimated number of tool calls needed.'),
|
|
@@ -628,6 +736,14 @@ Returns estimated token usage and approach for each mode.`,
|
|
|
628
736
|
description: `⚠️ DEBUGGING TOOL - Direct MCP tool call. HIGH TOKEN COST (10-100x vs execute_code).
|
|
629
737
|
|
|
630
738
|
Only use for debugging raw tool input/output. Use execute_code for all normal operations.`,
|
|
739
|
+
annotations: {
|
|
740
|
+
// Proxies into a backend MCP server so the effect depends on the
|
|
741
|
+
// downstream tool. Conservative defaults: assume external + mutable.
|
|
742
|
+
readOnlyHint: false,
|
|
743
|
+
destructiveHint: true,
|
|
744
|
+
idempotentHint: false,
|
|
745
|
+
openWorldHint: true,
|
|
746
|
+
},
|
|
631
747
|
inputSchema: {
|
|
632
748
|
server: z.string().describe('Name of the MCP server to call.'),
|
|
633
749
|
tool: z.string().describe('Name of the tool to invoke.'),
|
|
@@ -773,6 +889,11 @@ Only use for debugging raw tool input/output. Use execute_code for all normal op
|
|
|
773
889
|
description: `Web search via Brave Search API. Uses 90% fewer tokens than native WebSearch.
|
|
774
890
|
|
|
775
891
|
Routes to brave-search MCP server internally. Requires brave-search server to be configured.`,
|
|
892
|
+
annotations: {
|
|
893
|
+
readOnlyHint: true,
|
|
894
|
+
idempotentHint: false, // Web results change between calls
|
|
895
|
+
openWorldHint: true,
|
|
896
|
+
},
|
|
776
897
|
inputSchema: {
|
|
777
898
|
query: z.string().describe('Search query (max 400 chars, 50 words).'),
|
|
778
899
|
count: z.number().optional().describe('Number of results (1-20, default 10).'),
|
|
@@ -834,6 +955,12 @@ Routes to brave-search MCP server internally. Requires brave-search server to be
|
|
|
834
955
|
|
|
835
956
|
Saves the server configuration to ~/.mcp-conductor.json and triggers a reload.
|
|
836
957
|
Use this to dynamically add servers without restarting Claude.`,
|
|
958
|
+
annotations: {
|
|
959
|
+
readOnlyHint: false,
|
|
960
|
+
destructiveHint: false, // Adds a new server; not destructive by itself
|
|
961
|
+
idempotentHint: false, // Re-adding the same name returns an error
|
|
962
|
+
openWorldHint: false,
|
|
963
|
+
},
|
|
837
964
|
inputSchema: {
|
|
838
965
|
name: z.string().describe('Unique server name (e.g., "github", "filesystem").'),
|
|
839
966
|
command: z.string().describe('Command to run the server (e.g., "npx", "node", "python").'),
|
|
@@ -921,6 +1048,12 @@ Use this to dynamically add servers without restarting Claude.`,
|
|
|
921
1048
|
|
|
922
1049
|
Removes the server configuration from ~/.mcp-conductor.json and triggers a reload.
|
|
923
1050
|
Use this to dynamically remove servers without restarting Claude.`,
|
|
1051
|
+
annotations: {
|
|
1052
|
+
readOnlyHint: false,
|
|
1053
|
+
destructiveHint: true,
|
|
1054
|
+
idempotentHint: true, // Removing an already-gone server is a safe no-op
|
|
1055
|
+
openWorldHint: false,
|
|
1056
|
+
},
|
|
924
1057
|
inputSchema: {
|
|
925
1058
|
name: z.string().describe('Name of the server to remove.'),
|
|
926
1059
|
},
|
|
@@ -1006,6 +1139,12 @@ Use this to dynamically remove servers without restarting Claude.`,
|
|
|
1006
1139
|
|
|
1007
1140
|
Use this to update API keys or other settings without removing and re-adding the server.
|
|
1008
1141
|
Triggers a reload to apply changes immediately.`,
|
|
1142
|
+
annotations: {
|
|
1143
|
+
readOnlyHint: false,
|
|
1144
|
+
destructiveHint: true, // Overwrites existing config; may disconnect/reconnect
|
|
1145
|
+
idempotentHint: true,
|
|
1146
|
+
openWorldHint: false,
|
|
1147
|
+
},
|
|
1009
1148
|
inputSchema: {
|
|
1010
1149
|
name: z.string().describe('Name of the server to update.'),
|
|
1011
1150
|
command: z.string().optional().describe('New command (optional, keeps existing if not provided).'),
|
|
@@ -1124,6 +1263,11 @@ Triggers a reload to apply changes immediately.`,
|
|
|
1124
1263
|
this.server.registerTool('get_memory_stats', {
|
|
1125
1264
|
title: 'Get Memory Stats',
|
|
1126
1265
|
description: 'Returns live memory usage and resource counts for the conductor process. Use this to diagnose memory issues.',
|
|
1266
|
+
annotations: {
|
|
1267
|
+
readOnlyHint: true,
|
|
1268
|
+
idempotentHint: true,
|
|
1269
|
+
openWorldHint: false,
|
|
1270
|
+
},
|
|
1127
1271
|
inputSchema: {},
|
|
1128
1272
|
outputSchema: {
|
|
1129
1273
|
heap_used_mb: z.number(),
|