@darkiceinteractive/mcp-conductor 3.0.0-beta.1 → 3.0.0-beta.2

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.
@@ -55,6 +55,53 @@ export interface McpHubLike {
55
55
  * Format: `<server>__<tool>` (double underscore separator).
56
56
  */
57
57
  export declare function buildPassthroughToolName(server: string, tool: string): string;
58
+ /**
59
+ * Heuristic infer of MCP ToolAnnotations from a tool's name (HIGH-4 fix).
60
+ *
61
+ * MCP tool names overwhelmingly put verbs as prefixes (`delete_repository`,
62
+ * `read_file`, `list_issues`). The matcher is therefore prefix-based with a
63
+ * small suffix safety net for less-common name styles.
64
+ *
65
+ * Pattern groups (case-insensitive):
66
+ * - **destructive** verbs that mutate or remove state. Prefix:
67
+ * `delete_`, `remove_`, `create_`, `update_`, `send_`, `post_`, `put_`,
68
+ * `patch_`, `drop_`, `kill_`, `terminate_`, `revoke_`, `destroy_`,
69
+ * `set_`, `activate_`, `deactivate_`, `enable_`, `disable_`, `cancel_`.
70
+ * Suffix safety net: `_delete`, `_remove`, `_destroy`.
71
+ * → `{ readOnlyHint: false, destructiveHint: true, idempotentHint: false }`
72
+ * - **mutating but recoverable** verbs (write/save/upload):
73
+ * Prefix `save_`, `write_`, `upload_`; suffix `_save`, `_write`, `_upload`.
74
+ * → `{ readOnlyHint: false, destructiveHint: false, idempotentHint: false }`
75
+ * - **read-safe** (default): `get_`, `list_`, `search_`, `query_`, `read_`,
76
+ * `fetch_`, `find_`, `count_`, `check_`, plus everything that doesn't
77
+ * match the above.
78
+ * → `{ readOnlyHint: true, destructiveHint: false, idempotentHint: true }`
79
+ *
80
+ * `openWorldHint` defaults to `false` for all (passthrough tools are bounded
81
+ * by the upstream MCP server's tool surface).
82
+ *
83
+ * False negatives (a non-obvious destructive name marked safe) require an
84
+ * explicit upstream annotation; the deferred Phase-1 typegen extension will
85
+ * close that gap by carrying upstream annotations through `ToolDefinition`.
86
+ */
87
+ export declare function inferAnnotationsFromName(toolName: string): {
88
+ readOnlyHint: boolean;
89
+ destructiveHint: boolean;
90
+ idempotentHint: boolean;
91
+ openWorldHint: boolean;
92
+ };
93
+ /**
94
+ * Conductor built-in tool names that are always registered by
95
+ * `MCPExecutorServer.registerTools()`. Any passthrough tool whose composed
96
+ * name matches one of these entries will be skipped to prevent duplicate-
97
+ * registration errors at the SDK level (CODE-LOW-4).
98
+ *
99
+ * Keep this set in sync with the `this.server.registerTool(name, ...)` calls
100
+ * in `mcp-server.ts`. The check uses the raw composed name (`server__tool`
101
+ * form) so a plain backend tool named `brave_web_search` registered under any
102
+ * server would collide with the conductor built-in of the same name.
103
+ */
104
+ export declare const STATIC_TOOL_NAMES: ReadonlySet<string>;
58
105
  /**
59
106
  * Register all `routing: "passthrough"` tools from the registry as
60
107
  * first-class MCP tools on `mcpServer`.
@@ -64,10 +111,13 @@ export declare function buildPassthroughToolName(server: string, tool: string):
64
111
  * same server instance the SDK will throw a duplicate-name error, so callers
65
112
  * must ensure it runs only once per server lifecycle.
66
113
  *
67
- * @param registry Populated ToolRegistry (after `refresh()` has been called).
68
- * @param mcpServer The McpServer instance to register tools on.
69
- * @param mcpHub The MCPHub used to forward tool calls to backends.
70
- * @returns The number of passthrough tools registered.
114
+ * @param registry Populated ToolRegistry (after `refresh()` has been called).
115
+ * @param mcpServer The McpServer instance to register tools on.
116
+ * @param mcpHub The MCPHub used to forward tool calls to backends.
117
+ * @param excludeNames Additional composed names to skip beyond the built-in
118
+ * {@link STATIC_TOOL_NAMES} set (e.g. names already
119
+ * registered by a previous call).
120
+ * @returns The number of passthrough tools registered.
71
121
  */
72
- export declare function registerPassthroughTools(registry: ToolRegistry, mcpServer: McpServerLike, mcpHub: McpHubLike): number;
122
+ export declare function registerPassthroughTools(registry: ToolRegistry, mcpServer: McpServerLike, mcpHub: McpHubLike, excludeNames?: ReadonlySet<string>): number;
73
123
  //# sourceMappingURL=passthrough-registrar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"passthrough-registrar.d.ts","sourceRoot":"","sources":["../../src/server/passthrough-registrar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE;YACZ,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,aAAa,CAAC,EAAE,OAAO,CAAC;SACzB,CAAC;QACF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC,EACD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QACpD,OAAO,EAAE,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC7C,CAAC,GACD,IAAI,CAAC;CACT;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAWD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,UAAU,GACjB,MAAM,CA8ER"}
1
+ {"version":3,"file":"passthrough-registrar.d.ts","sourceRoot":"","sources":["../../src/server/passthrough-registrar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,YAAY,CACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,WAAW,CAAC,EAAE;YACZ,YAAY,CAAC,EAAE,OAAO,CAAC;YACvB,eAAe,CAAC,EAAE,OAAO,CAAC;YAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;YACzB,aAAa,CAAC,EAAE,OAAO,CAAC;SACzB,CAAC;QACF,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC,EACD,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QACpD,OAAO,EAAE,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC1C,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC7C,CAAC,GACD,IAAI,CAAC;CACT;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,QAAQ,CACN,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC,OAAO,CAAC,CAAC;CACrB;AAWD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAC1D,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;CACxB,CAoBA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAAW,CAAC,MAAM,CAyBhD,CAAC;AAEH;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,YAAY,EACtB,SAAS,EAAE,aAAa,EACxB,MAAM,EAAE,UAAU,EAClB,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,GACjC,MAAM,CAqFR"}
@@ -36,6 +36,89 @@ function sanitiseSegment(segment) {
36
36
  export function buildPassthroughToolName(server, tool) {
37
37
  return `${sanitiseSegment(server)}__${sanitiseSegment(tool)}`;
38
38
  }
39
+ /**
40
+ * Heuristic infer of MCP ToolAnnotations from a tool's name (HIGH-4 fix).
41
+ *
42
+ * MCP tool names overwhelmingly put verbs as prefixes (`delete_repository`,
43
+ * `read_file`, `list_issues`). The matcher is therefore prefix-based with a
44
+ * small suffix safety net for less-common name styles.
45
+ *
46
+ * Pattern groups (case-insensitive):
47
+ * - **destructive** verbs that mutate or remove state. Prefix:
48
+ * `delete_`, `remove_`, `create_`, `update_`, `send_`, `post_`, `put_`,
49
+ * `patch_`, `drop_`, `kill_`, `terminate_`, `revoke_`, `destroy_`,
50
+ * `set_`, `activate_`, `deactivate_`, `enable_`, `disable_`, `cancel_`.
51
+ * Suffix safety net: `_delete`, `_remove`, `_destroy`.
52
+ * → `{ readOnlyHint: false, destructiveHint: true, idempotentHint: false }`
53
+ * - **mutating but recoverable** verbs (write/save/upload):
54
+ * Prefix `save_`, `write_`, `upload_`; suffix `_save`, `_write`, `_upload`.
55
+ * → `{ readOnlyHint: false, destructiveHint: false, idempotentHint: false }`
56
+ * - **read-safe** (default): `get_`, `list_`, `search_`, `query_`, `read_`,
57
+ * `fetch_`, `find_`, `count_`, `check_`, plus everything that doesn't
58
+ * match the above.
59
+ * → `{ readOnlyHint: true, destructiveHint: false, idempotentHint: true }`
60
+ *
61
+ * `openWorldHint` defaults to `false` for all (passthrough tools are bounded
62
+ * by the upstream MCP server's tool surface).
63
+ *
64
+ * False negatives (a non-obvious destructive name marked safe) require an
65
+ * explicit upstream annotation; the deferred Phase-1 typegen extension will
66
+ * close that gap by carrying upstream annotations through `ToolDefinition`.
67
+ */
68
+ export function inferAnnotationsFromName(toolName) {
69
+ const name = toolName.toLowerCase();
70
+ // Destructive: mutate or remove
71
+ const destructivePrefix = /^(delete_|remove_|create_|update_|send_|post_|put_|patch_|drop_|kill_|terminate_|revoke_|destroy_|set_|activate_|deactivate_|enable_|disable_|cancel_)/;
72
+ const destructiveSuffix = /(_delete|_remove|_destroy)$/;
73
+ if (destructivePrefix.test(name) || destructiveSuffix.test(name)) {
74
+ return { readOnlyHint: false, destructiveHint: true, idempotentHint: false, openWorldHint: false };
75
+ }
76
+ // Mutating but not destructive
77
+ const mutatingPrefix = /^(save_|write_|upload_)/;
78
+ const mutatingSuffix = /(_save|_write|_upload)$/;
79
+ if (mutatingPrefix.test(name) || mutatingSuffix.test(name)) {
80
+ return { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false };
81
+ }
82
+ // Default: read-safe
83
+ return { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false };
84
+ }
85
+ /**
86
+ * Conductor built-in tool names that are always registered by
87
+ * `MCPExecutorServer.registerTools()`. Any passthrough tool whose composed
88
+ * name matches one of these entries will be skipped to prevent duplicate-
89
+ * registration errors at the SDK level (CODE-LOW-4).
90
+ *
91
+ * Keep this set in sync with the `this.server.registerTool(name, ...)` calls
92
+ * in `mcp-server.ts`. The check uses the raw composed name (`server__tool`
93
+ * form) so a plain backend tool named `brave_web_search` registered under any
94
+ * server would collide with the conductor built-in of the same name.
95
+ */
96
+ export const STATIC_TOOL_NAMES = new Set([
97
+ 'execute_code',
98
+ 'list_servers',
99
+ 'discover_tools',
100
+ 'get_metrics',
101
+ 'set_mode',
102
+ 'reload_servers',
103
+ 'get_capabilities',
104
+ 'compare_modes',
105
+ 'passthrough_call',
106
+ 'brave_web_search',
107
+ 'add_server',
108
+ 'remove_server',
109
+ 'update_server',
110
+ 'get_memory_stats',
111
+ 'predict_cost',
112
+ 'get_hot_paths',
113
+ 'record_session',
114
+ 'stop_recording',
115
+ 'replay_session',
116
+ 'import_servers_from_claude',
117
+ 'test_server',
118
+ 'diagnose_server',
119
+ 'recommend_routing',
120
+ 'export_to_claude',
121
+ ]);
39
122
  /**
40
123
  * Register all `routing: "passthrough"` tools from the registry as
41
124
  * first-class MCP tools on `mcpServer`.
@@ -45,12 +128,15 @@ export function buildPassthroughToolName(server, tool) {
45
128
  * same server instance the SDK will throw a duplicate-name error, so callers
46
129
  * must ensure it runs only once per server lifecycle.
47
130
  *
48
- * @param registry Populated ToolRegistry (after `refresh()` has been called).
49
- * @param mcpServer The McpServer instance to register tools on.
50
- * @param mcpHub The MCPHub used to forward tool calls to backends.
51
- * @returns The number of passthrough tools registered.
131
+ * @param registry Populated ToolRegistry (after `refresh()` has been called).
132
+ * @param mcpServer The McpServer instance to register tools on.
133
+ * @param mcpHub The MCPHub used to forward tool calls to backends.
134
+ * @param excludeNames Additional composed names to skip beyond the built-in
135
+ * {@link STATIC_TOOL_NAMES} set (e.g. names already
136
+ * registered by a previous call).
137
+ * @returns The number of passthrough tools registered.
52
138
  */
53
- export function registerPassthroughTools(registry, mcpServer, mcpHub) {
139
+ export function registerPassthroughTools(registry, mcpServer, mcpHub, excludeNames) {
54
140
  const tools = registry.getAllTools();
55
141
  let registered = 0;
56
142
  for (const tool of tools) {
@@ -58,6 +144,11 @@ export function registerPassthroughTools(registry, mcpServer, mcpHub) {
58
144
  continue;
59
145
  }
60
146
  const composedName = buildPassthroughToolName(tool.server, tool.name);
147
+ // Skip names that collide with conductor built-ins or caller exclusions (CODE-LOW-4).
148
+ if (STATIC_TOOL_NAMES.has(composedName) || excludeNames?.has(composedName)) {
149
+ logger.warn(`Passthrough registrar: skipping '${composedName}' — name conflicts with a statically-registered tool`, { server: tool.server, tool: tool.name });
150
+ continue;
151
+ }
61
152
  // Build an inputSchema for the SDK from the tool's JSON Schema properties.
62
153
  // Each property is typed as z.unknown() (required) or z.unknown().optional()
63
154
  // so the SDK validates presence of required fields while accepting any value.
@@ -71,16 +162,14 @@ export function registerPassthroughTools(registry, mcpServer, mcpHub) {
71
162
  : z.unknown().optional();
72
163
  }
73
164
  }
74
- // Apply conservative read-safe annotations.
75
- // The registry does not yet carry upstream MCP ToolAnnotations (that is
76
- // Phase 1 typegen territory). When Agent A's typegen lands and adds those
77
- // fields to ToolDefinition, extend this block to read them directly.
78
- const annotations = {
79
- readOnlyHint: true,
80
- destructiveHint: false,
81
- idempotentHint: true,
82
- openWorldHint: false,
83
- };
165
+ // Derive annotations from tool name pattern (HIGH-4 safety fix).
166
+ // The registry does not yet carry upstream MCP ToolAnnotations (deferred to
167
+ // a Phase 1 typegen extension), so name-pattern heuristics are the conservative
168
+ // middle ground: destructive-looking names are flagged so Claude can reason
169
+ // about safety. False negatives (a non-obvious destructive name registered as
170
+ // safe) require an explicit upstream annotation; the deferred typegen will
171
+ // close that gap.
172
+ const annotations = inferAnnotationsFromName(tool.name);
84
173
  // Capture loop variables for the async handler closure.
85
174
  const toolServer = tool.server;
86
175
  const toolName = tool.name;
@@ -1 +1 @@
1
- {"version":3,"file":"passthrough-registrar.js","sourceRoot":"","sources":["../../src/server/passthrough-registrar.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"passthrough-registrar.js","sourceRoot":"","sources":["../../src/server/passthrough-registrar.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "3.0.0-beta.1";
2
- export declare const BUILD_NUMBER = 4;
3
- export declare const BUILD_STRING = "3.0.0-beta.1 (build 4)";
1
+ export declare const VERSION = "3.0.0-beta.2";
2
+ export declare const BUILD_NUMBER = 5;
3
+ export declare const BUILD_STRING = "3.0.0-beta.2 (build 5)";
4
4
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,4 +1,4 @@
1
- export const VERSION = '3.0.0-beta.1';
2
- export const BUILD_NUMBER = 4;
3
- export const BUILD_STRING = '3.0.0-beta.1 (build 4)';
1
+ export const VERSION = '3.0.0-beta.2';
2
+ export const BUILD_NUMBER = 5;
3
+ export const BUILD_STRING = '3.0.0-beta.2 (build 5)';
4
4
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@darkiceinteractive/mcp-conductor",
3
- "version": "3.0.0-beta.1",
3
+ "version": "3.0.0-beta.2",
4
4
  "description": "MCP server that orchestrates code execution in a sandboxed Deno environment with access to all MCP servers",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -60,7 +60,7 @@
60
60
  }
61
61
  },
62
62
  "engines": {
63
- "node": ">=18.0.0"
63
+ "node": ">=20.0.0"
64
64
  },
65
65
  "dependencies": {
66
66
  "@inquirer/prompts": "^7.10.1",