mcpgraph 0.1.21 → 0.1.23
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/execution/nodes/mcp-tool-executor.d.ts.map +1 -1
- package/dist/execution/nodes/mcp-tool-executor.js +21 -4
- package/dist/execution/nodes/mcp-tool-executor.js.map +1 -1
- package/dist/mcp/client-manager.d.ts +11 -6
- package/dist/mcp/client-manager.d.ts.map +1 -1
- package/dist/mcp/client-manager.js +21 -13
- package/dist/mcp/client-manager.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tool-executor.d.ts","sourceRoot":"","sources":["../../../src/execution/nodes/mcp-tool-executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAKpE,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAE,gBAAgB,EAC/B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"mcp-tool-executor.d.ts","sourceRoot":"","sources":["../../../src/execution/nodes/mcp-tool-executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAKpE,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,gBAAgB,EACzB,aAAa,EAAE,gBAAgB,EAC/B,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAsHhD"}
|
|
@@ -25,10 +25,27 @@ export async function executeMcpToolNode(node, context, clientManager, serverCon
|
|
|
25
25
|
}
|
|
26
26
|
logger.debug(`MCP tool args: ${JSON.stringify(transformedArgs, null, 2)}`);
|
|
27
27
|
logger.debug(`Expression context: ${JSON.stringify(exprContext, null, 2)}`);
|
|
28
|
+
// Clear previous stderr for this server at the start of execution
|
|
29
|
+
// This ensures we capture fresh stderr for this node execution
|
|
30
|
+
clientManager.clearStderr(node.server);
|
|
28
31
|
// Get or create MCP client using server configuration
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
+
let client;
|
|
33
|
+
try {
|
|
34
|
+
client = await clientManager.getClient(node.server, serverConfig);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
// Handle errors during client initialization/connection
|
|
38
|
+
// Retrieve stderr by server name (available even if client creation failed)
|
|
39
|
+
const stderr = clientManager.getStderr(node.server);
|
|
40
|
+
// If it's already an McpError, extend it with stderr
|
|
41
|
+
if (error instanceof McpError) {
|
|
42
|
+
throw new ToolCallMcpError(error, stderr);
|
|
43
|
+
}
|
|
44
|
+
// For non-McpError exceptions (transport errors, etc.), create a generic McpError
|
|
45
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
46
|
+
const mcpError = new McpError(-32000, `MCP client initialization failed: ${errorMessage}`, error);
|
|
47
|
+
throw new ToolCallMcpError(mcpError, stderr);
|
|
48
|
+
}
|
|
32
49
|
// Call the tool
|
|
33
50
|
let result;
|
|
34
51
|
try {
|
|
@@ -38,7 +55,7 @@ export async function executeMcpToolNode(node, context, clientManager, serverCon
|
|
|
38
55
|
});
|
|
39
56
|
}
|
|
40
57
|
catch (error) {
|
|
41
|
-
const stderr = clientManager.getStderr(
|
|
58
|
+
const stderr = clientManager.getStderr(node.server);
|
|
42
59
|
// If it's already an McpError, extend it with stderr
|
|
43
60
|
if (error instanceof McpError) {
|
|
44
61
|
throw new ToolCallMcpError(error, stderr);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tool-executor.js","sourceRoot":"","sources":["../../../src/execution/nodes/mcp-tool-executor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAE9D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAa,EACb,OAAyB,EACzB,aAA+B,EAC/B,YAA0B,EAC1B,SAAiB;IAEjB,MAAM,CAAC,KAAK,CAAC,4BAA4B,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;IAElF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IACrC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,qDAAqD;IAE1F,wDAAwD;IACxD,MAAM,eAAe,GAA4B,EAAE,CAAC;IACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,qBAAqB;YACrB,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YACnF,eAAe,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,YAAY,KAAK,mBAAmB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAChF,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,KAAK,CAAC,uBAAuB,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAE5E,sDAAsD;IACtD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-tool-executor.js","sourceRoot":"","sources":["../../../src/execution/nodes/mcp-tool-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,16 +10,21 @@ export declare class McpClientManager {
|
|
|
10
10
|
getClient(serverName: string, serverConfig: ServerConfig): Promise<Client>;
|
|
11
11
|
closeAll(): Promise<void>;
|
|
12
12
|
/**
|
|
13
|
-
* Get captured stderr output for a
|
|
14
|
-
* @param
|
|
13
|
+
* Get captured stderr output for a server
|
|
14
|
+
* @param serverName - The server name
|
|
15
15
|
* @returns Array of stderr lines, or empty array if none
|
|
16
16
|
*/
|
|
17
|
-
getStderr(
|
|
17
|
+
getStderr(serverName: string): string[];
|
|
18
18
|
/**
|
|
19
|
-
* Clear stderr buffer for a
|
|
20
|
-
*
|
|
19
|
+
* Clear stderr buffer for a server (typically before a call to prepare for fresh output)
|
|
20
|
+
*
|
|
21
|
+
* Note: We mutate the existing array (buffer.length = 0) rather than replacing it
|
|
22
|
+
* because the transport's stderr event handler has a closure reference to the original
|
|
23
|
+
* array. If we replace the array in the Map, writes would continue going to the old array.
|
|
24
|
+
*
|
|
25
|
+
* @param serverName - The server name
|
|
21
26
|
*/
|
|
22
|
-
clearStderr(
|
|
27
|
+
clearStderr(serverName: string): void;
|
|
23
28
|
private createTransport;
|
|
24
29
|
}
|
|
25
30
|
//# sourceMappingURL=client-manager.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/client-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAQnE,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"client-manager.d.ts","sourceRoot":"","sources":["../../src/mcp/client-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAQnE,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,aAAa,CAAwB;;IAOvC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IA8B1E,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B;;;;OAIG;IACH,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,EAAE;IAIvC;;;;;;;;OAQG;IACH,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;YAOvB,eAAe;CAoG9B"}
|
|
@@ -11,7 +11,7 @@ export class McpClientManager {
|
|
|
11
11
|
stderrBuffers;
|
|
12
12
|
constructor() {
|
|
13
13
|
this.clients = new Map();
|
|
14
|
-
this.stderrBuffers = new
|
|
14
|
+
this.stderrBuffers = new Map();
|
|
15
15
|
}
|
|
16
16
|
async getClient(serverName, serverConfig) {
|
|
17
17
|
if (this.clients.has(serverName)) {
|
|
@@ -20,6 +20,8 @@ export class McpClientManager {
|
|
|
20
20
|
logger.info(`Creating MCP client for server: ${serverName} (type: ${getServerType(serverConfig)})`);
|
|
21
21
|
// Create transport and set up stderr capture
|
|
22
22
|
const { transport, stderrBuffer } = await this.createTransport(serverConfig);
|
|
23
|
+
// Store stderr buffer by server name (available even if connection fails)
|
|
24
|
+
this.stderrBuffers.set(serverName, stderrBuffer);
|
|
23
25
|
const client = new Client({
|
|
24
26
|
name: `mcpgraph-${serverName}`,
|
|
25
27
|
version: "0.1.0",
|
|
@@ -27,8 +29,6 @@ export class McpClientManager {
|
|
|
27
29
|
capabilities: {},
|
|
28
30
|
});
|
|
29
31
|
await client.connect(transport);
|
|
30
|
-
// Associate stderr buffer with this client instance
|
|
31
|
-
this.stderrBuffers.set(client, stderrBuffer);
|
|
32
32
|
this.clients.set(serverName, client);
|
|
33
33
|
return client;
|
|
34
34
|
}
|
|
@@ -38,22 +38,30 @@ export class McpClientManager {
|
|
|
38
38
|
await client.close();
|
|
39
39
|
}
|
|
40
40
|
this.clients.clear();
|
|
41
|
-
|
|
41
|
+
this.stderrBuffers.clear();
|
|
42
42
|
}
|
|
43
43
|
/**
|
|
44
|
-
* Get captured stderr output for a
|
|
45
|
-
* @param
|
|
44
|
+
* Get captured stderr output for a server
|
|
45
|
+
* @param serverName - The server name
|
|
46
46
|
* @returns Array of stderr lines, or empty array if none
|
|
47
47
|
*/
|
|
48
|
-
getStderr(
|
|
49
|
-
return this.stderrBuffers.get(
|
|
48
|
+
getStderr(serverName) {
|
|
49
|
+
return this.stderrBuffers.get(serverName) || [];
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
52
|
-
* Clear stderr buffer for a
|
|
53
|
-
*
|
|
52
|
+
* Clear stderr buffer for a server (typically before a call to prepare for fresh output)
|
|
53
|
+
*
|
|
54
|
+
* Note: We mutate the existing array (buffer.length = 0) rather than replacing it
|
|
55
|
+
* because the transport's stderr event handler has a closure reference to the original
|
|
56
|
+
* array. If we replace the array in the Map, writes would continue going to the old array.
|
|
57
|
+
*
|
|
58
|
+
* @param serverName - The server name
|
|
54
59
|
*/
|
|
55
|
-
clearStderr(
|
|
56
|
-
this.stderrBuffers.
|
|
60
|
+
clearStderr(serverName) {
|
|
61
|
+
const buffer = this.stderrBuffers.get(serverName);
|
|
62
|
+
if (buffer) {
|
|
63
|
+
buffer.length = 0;
|
|
64
|
+
}
|
|
57
65
|
}
|
|
58
66
|
async createTransport(serverConfig) {
|
|
59
67
|
// Default to stdio if type is not specified
|
|
@@ -70,7 +78,7 @@ export class McpClientManager {
|
|
|
70
78
|
transportOptions.cwd = stdioConfig.cwd;
|
|
71
79
|
}
|
|
72
80
|
const transport = new StdioClientTransport(transportOptions);
|
|
73
|
-
// Create stderr buffer
|
|
81
|
+
// Create stderr buffer for this transport
|
|
74
82
|
const stderrBuffer = [];
|
|
75
83
|
// Capture stderr output
|
|
76
84
|
if (transport.stderr) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-manager.js","sourceRoot":"","sources":["../../src/mcp/client-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAkC,MAAM,yCAAyC,CAAC;AAC7G,OAAO,EACL,6BAA6B,GAE9B,MAAM,oDAAoD,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAQtC,MAAM,OAAO,gBAAgB;IACnB,OAAO,CAAsB;IAC7B,aAAa,
|
|
1
|
+
{"version":3,"file":"client-manager.js","sourceRoot":"","sources":["../../src/mcp/client-manager.ts"],"names":[],"mappings":"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"}
|