@cloudbase/agent-tools 0.0.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.
- package/CHANGELOG.md +416 -0
- package/dist/agent_tool.d.ts +7 -0
- package/dist/agent_tool.d.ts.map +1 -0
- package/dist/agent_tool.js +16 -0
- package/dist/agent_tool.js.map +1 -0
- package/dist/bash/bash-tool.d.ts +61 -0
- package/dist/bash/bash-tool.d.ts.map +1 -0
- package/dist/bash/bash-tool.js +191 -0
- package/dist/bash/bash-tool.js.map +1 -0
- package/dist/bash/index.d.ts +7 -0
- package/dist/bash/index.d.ts.map +1 -0
- package/dist/bash/index.js +17 -0
- package/dist/bash/index.js.map +1 -0
- package/dist/bash/operator/base-operator.d.ts +44 -0
- package/dist/bash/operator/base-operator.d.ts.map +1 -0
- package/dist/bash/operator/base-operator.js +14 -0
- package/dist/bash/operator/base-operator.js.map +1 -0
- package/dist/bash/operator/local-operator.d.ts +15 -0
- package/dist/bash/operator/local-operator.d.ts.map +1 -0
- package/dist/bash/operator/local-operator.js +145 -0
- package/dist/bash/operator/local-operator.js.map +1 -0
- package/dist/bash/operator/sandbox-operator.d.ts +22 -0
- package/dist/bash/operator/sandbox-operator.d.ts.map +1 -0
- package/dist/bash/operator/sandbox-operator.js +112 -0
- package/dist/bash/operator/sandbox-operator.js.map +1 -0
- package/dist/bash/utils.d.ts +106 -0
- package/dist/bash/utils.d.ts.map +1 -0
- package/dist/bash/utils.js +197 -0
- package/dist/bash/utils.js.map +1 -0
- package/dist/browser/browser-instance-manager.d.ts +79 -0
- package/dist/browser/browser-instance-manager.d.ts.map +1 -0
- package/dist/browser/browser-instance-manager.js +242 -0
- package/dist/browser/browser-instance-manager.js.map +1 -0
- package/dist/browser/browser-tool-executor.d.ts +57 -0
- package/dist/browser/browser-tool-executor.d.ts.map +1 -0
- package/dist/browser/browser-tool-executor.js +205 -0
- package/dist/browser/browser-tool-executor.js.map +1 -0
- package/dist/browser/browser_client_unified.d.ts +52 -0
- package/dist/browser/browser_client_unified.d.ts.map +1 -0
- package/dist/browser/browser_client_unified.js +381 -0
- package/dist/browser/browser_client_unified.js.map +1 -0
- package/dist/browser/browser_tool_unified.d.ts +93 -0
- package/dist/browser/browser_tool_unified.d.ts.map +1 -0
- package/dist/browser/browser_tool_unified.js +181 -0
- package/dist/browser/browser_tool_unified.js.map +1 -0
- package/dist/browser/index.d.ts +7 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.js +19 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/sandbox-connector.d.ts +93 -0
- package/dist/browser/sandbox-connector.d.ts.map +1 -0
- package/dist/browser/sandbox-connector.js +272 -0
- package/dist/browser/sandbox-connector.js.map +1 -0
- package/dist/browser/types.d.ts +53 -0
- package/dist/browser/types.d.ts.map +1 -0
- package/dist/browser/types.js +3 -0
- package/dist/browser/types.js.map +1 -0
- package/dist/code_executers/base_code_executor.d.ts +17 -0
- package/dist/code_executers/base_code_executor.d.ts.map +1 -0
- package/dist/code_executers/base_code_executor.js +20 -0
- package/dist/code_executers/base_code_executor.js.map +1 -0
- package/dist/code_executers/built_in_code_executor.d.ts +25 -0
- package/dist/code_executers/built_in_code_executor.d.ts.map +1 -0
- package/dist/code_executers/built_in_code_executor.js +106 -0
- package/dist/code_executers/built_in_code_executor.js.map +1 -0
- package/dist/code_executers/unsafe_local_code_executor.d.ts +118 -0
- package/dist/code_executers/unsafe_local_code_executor.d.ts.map +1 -0
- package/dist/code_executers/unsafe_local_code_executor.js +605 -0
- package/dist/code_executers/unsafe_local_code_executor.js.map +1 -0
- package/dist/fs/edit-tool.d.ts +26 -0
- package/dist/fs/edit-tool.d.ts.map +1 -0
- package/dist/fs/edit-tool.js +202 -0
- package/dist/fs/edit-tool.js.map +1 -0
- package/dist/fs/glob-tool.d.ts +31 -0
- package/dist/fs/glob-tool.d.ts.map +1 -0
- package/dist/fs/glob-tool.js +287 -0
- package/dist/fs/glob-tool.js.map +1 -0
- package/dist/fs/grep-tool.d.ts +32 -0
- package/dist/fs/grep-tool.d.ts.map +1 -0
- package/dist/fs/grep-tool.js +353 -0
- package/dist/fs/grep-tool.js.map +1 -0
- package/dist/fs/index.d.ts +11 -0
- package/dist/fs/index.d.ts.map +1 -0
- package/dist/fs/index.js +38 -0
- package/dist/fs/index.js.map +1 -0
- package/dist/fs/ls-tool.d.ts +26 -0
- package/dist/fs/ls-tool.d.ts.map +1 -0
- package/dist/fs/ls-tool.js +235 -0
- package/dist/fs/ls-tool.js.map +1 -0
- package/dist/fs/multiedit-tool.d.ts +34 -0
- package/dist/fs/multiedit-tool.d.ts.map +1 -0
- package/dist/fs/multiedit-tool.js +158 -0
- package/dist/fs/multiedit-tool.js.map +1 -0
- package/dist/fs/operator/base-operator.d.ts +28 -0
- package/dist/fs/operator/base-operator.d.ts.map +1 -0
- package/dist/fs/operator/base-operator.js +21 -0
- package/dist/fs/operator/base-operator.js.map +1 -0
- package/dist/fs/operator/in-memory-operator.d.ts +39 -0
- package/dist/fs/operator/in-memory-operator.d.ts.map +1 -0
- package/dist/fs/operator/in-memory-operator.js +115 -0
- package/dist/fs/operator/in-memory-operator.js.map +1 -0
- package/dist/fs/operator/index.d.ts +6 -0
- package/dist/fs/operator/index.d.ts.map +1 -0
- package/dist/fs/operator/index.js +28 -0
- package/dist/fs/operator/index.js.map +1 -0
- package/dist/fs/operator/local-operator.d.ts +25 -0
- package/dist/fs/operator/local-operator.d.ts.map +1 -0
- package/dist/fs/operator/local-operator.js +62 -0
- package/dist/fs/operator/local-operator.js.map +1 -0
- package/dist/fs/operator/sanbox-operator.d.ts +31 -0
- package/dist/fs/operator/sanbox-operator.d.ts.map +1 -0
- package/dist/fs/operator/sanbox-operator.js +172 -0
- package/dist/fs/operator/sanbox-operator.js.map +1 -0
- package/dist/fs/operator/transaction/index.d.ts +6 -0
- package/dist/fs/operator/transaction/index.d.ts.map +1 -0
- package/dist/fs/operator/transaction/index.js +28 -0
- package/dist/fs/operator/transaction/index.js.map +1 -0
- package/dist/fs/operator/transaction/snapshot-strategies.d.ts +54 -0
- package/dist/fs/operator/transaction/snapshot-strategies.d.ts.map +1 -0
- package/dist/fs/operator/transaction/snapshot-strategies.js +278 -0
- package/dist/fs/operator/transaction/snapshot-strategies.js.map +1 -0
- package/dist/fs/operator/transaction/transaction-operator.d.ts +53 -0
- package/dist/fs/operator/transaction/transaction-operator.d.ts.map +1 -0
- package/dist/fs/operator/transaction/transaction-operator.js +195 -0
- package/dist/fs/operator/transaction/transaction-operator.js.map +1 -0
- package/dist/fs/operator/transaction/transaction-utils.d.ts +80 -0
- package/dist/fs/operator/transaction/transaction-utils.d.ts.map +1 -0
- package/dist/fs/operator/transaction/transaction-utils.js +156 -0
- package/dist/fs/operator/transaction/transaction-utils.js.map +1 -0
- package/dist/fs/read-tool.d.ts +32 -0
- package/dist/fs/read-tool.d.ts.map +1 -0
- package/dist/fs/read-tool.js +271 -0
- package/dist/fs/read-tool.js.map +1 -0
- package/dist/fs/str-replace-editor.d.ts +23 -0
- package/dist/fs/str-replace-editor.d.ts.map +1 -0
- package/dist/fs/str-replace-editor.js +74 -0
- package/dist/fs/str-replace-editor.js.map +1 -0
- package/dist/fs/toolkit.d.ts +61 -0
- package/dist/fs/toolkit.d.ts.map +1 -0
- package/dist/fs/toolkit.js +113 -0
- package/dist/fs/toolkit.js.map +1 -0
- package/dist/fs/utils.d.ts +32 -0
- package/dist/fs/utils.d.ts.map +1 -0
- package/dist/fs/utils.js +133 -0
- package/dist/fs/utils.js.map +1 -0
- package/dist/fs/write-tool.d.ts +26 -0
- package/dist/fs/write-tool.d.ts.map +1 -0
- package/dist/fs/write-tool.js +110 -0
- package/dist/fs/write-tool.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/agkit-mcp-server.d.ts +291 -0
- package/dist/mcp/agkit-mcp-server.d.ts.map +1 -0
- package/dist/mcp/agkit-mcp-server.js +821 -0
- package/dist/mcp/agkit-mcp-server.js.map +1 -0
- package/dist/mcp/client-tool.d.ts +65 -0
- package/dist/mcp/client-tool.d.ts.map +1 -0
- package/dist/mcp/client-tool.js +220 -0
- package/dist/mcp/client-tool.js.map +1 -0
- package/dist/mcp/index.d.ts +14 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +26 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/mcp-client-manager.d.ts +153 -0
- package/dist/mcp/mcp-client-manager.d.ts.map +1 -0
- package/dist/mcp/mcp-client-manager.js +606 -0
- package/dist/mcp/mcp-client-manager.js.map +1 -0
- package/dist/mcp/mcp-toolkit.d.ts +112 -0
- package/dist/mcp/mcp-toolkit.d.ts.map +1 -0
- package/dist/mcp/mcp-toolkit.js +188 -0
- package/dist/mcp/mcp-toolkit.js.map +1 -0
- package/dist/mcp/types.d.ts +157 -0
- package/dist/mcp/types.d.ts.map +1 -0
- package/dist/mcp/types.js +34 -0
- package/dist/mcp/types.js.map +1 -0
- package/dist/mcp/utils.d.ts +17 -0
- package/dist/mcp/utils.d.ts.map +1 -0
- package/dist/mcp/utils.js +48 -0
- package/dist/mcp/utils.js.map +1 -0
- package/dist/types/index.d.ts +31 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +3 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/zod.d.ts +18 -0
- package/dist/types/zod.d.ts.map +1 -0
- package/dist/types/zod.js +3 -0
- package/dist/types/zod.js.map +1 -0
- package/dist/utils.d.ts +141 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +379 -0
- package/dist/utils.js.map +1 -0
- package/package.json +46 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Toolkit
|
|
3
|
+
*
|
|
4
|
+
* A toolkit that manages MCP tools from external servers
|
|
5
|
+
*/
|
|
6
|
+
import { BaseToolkit } from "../utils";
|
|
7
|
+
import { MCPClientManager } from "./mcp-client-manager";
|
|
8
|
+
import { MCPClientTool } from "./client-tool";
|
|
9
|
+
import { MCPClientConfig, MCPTransportConfig } from "./types";
|
|
10
|
+
/**
|
|
11
|
+
* MCP Toolkit - manages tools from external MCP servers
|
|
12
|
+
*/
|
|
13
|
+
export declare class MCPToolkit extends BaseToolkit {
|
|
14
|
+
private clientManager;
|
|
15
|
+
private serverConfigs;
|
|
16
|
+
constructor(name?: string);
|
|
17
|
+
/**
|
|
18
|
+
* Add an MCP server and load its tools
|
|
19
|
+
*/
|
|
20
|
+
addServer(serverId: string, config: MCPClientConfig): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Load tools from a specific server
|
|
23
|
+
*/
|
|
24
|
+
private loadServerTools;
|
|
25
|
+
/**
|
|
26
|
+
* Remove a server and its tools
|
|
27
|
+
*/
|
|
28
|
+
removeServer(serverId: string): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Get all connected servers
|
|
31
|
+
*/
|
|
32
|
+
getConnectedServers(): string[];
|
|
33
|
+
/**
|
|
34
|
+
* Get tools from a specific server
|
|
35
|
+
*/
|
|
36
|
+
getServerTools(serverId: string): MCPClientTool[];
|
|
37
|
+
/**
|
|
38
|
+
* Refresh all server connections
|
|
39
|
+
*/
|
|
40
|
+
refresh(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Get toolkit statistics
|
|
43
|
+
*/
|
|
44
|
+
getStats(): {
|
|
45
|
+
name: string;
|
|
46
|
+
description: string;
|
|
47
|
+
toolCount: number;
|
|
48
|
+
mcp: {
|
|
49
|
+
connectedServers: number;
|
|
50
|
+
totalTools: number;
|
|
51
|
+
serverStatus: Record<string, boolean>;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
54
|
+
/**
|
|
55
|
+
* Cleanup - disconnect from all servers
|
|
56
|
+
*/
|
|
57
|
+
cleanup(): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Get the underlying client manager
|
|
60
|
+
*/
|
|
61
|
+
getClientManager(): MCPClientManager;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* MCP Servers Configuration
|
|
65
|
+
* Supports both object mapping and array formats
|
|
66
|
+
*
|
|
67
|
+
* Object mapping format matches standard MCP client configurations (e.g., Claude Desktop)
|
|
68
|
+
* where the key is the server ID and the value is the transport configuration
|
|
69
|
+
*/
|
|
70
|
+
export type MCPServersConfig = Record<string, MCPClientConfig | MCPTransportConfig> | Array<{
|
|
71
|
+
id: string;
|
|
72
|
+
config: MCPClientConfig;
|
|
73
|
+
}>;
|
|
74
|
+
/**
|
|
75
|
+
* Create a new MCP toolkit with servers
|
|
76
|
+
*
|
|
77
|
+
* @param servers - Server configurations in object mapping or array format
|
|
78
|
+
* @param name - Optional toolkit name
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* // Object mapping format (recommended) - matches standard MCP config
|
|
82
|
+
* const toolkit = await createMCPToolkit({
|
|
83
|
+
* time: {
|
|
84
|
+
* command: "uvx",
|
|
85
|
+
* args: ["mcp-server-time"]
|
|
86
|
+
* },
|
|
87
|
+
* weather: {
|
|
88
|
+
* url: "http://localhost:3000/mcp"
|
|
89
|
+
* }
|
|
90
|
+
* });
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* // Object mapping with full MCPClientConfig
|
|
94
|
+
* const toolkit = await createMCPToolkit({
|
|
95
|
+
* time: {
|
|
96
|
+
* name: "time-server",
|
|
97
|
+
* version: "1.0.0",
|
|
98
|
+
* transport: {
|
|
99
|
+
* command: "uvx",
|
|
100
|
+
* args: ["mcp-server-time"]
|
|
101
|
+
* }
|
|
102
|
+
* }
|
|
103
|
+
* });
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* // Array format (backward compatible)
|
|
107
|
+
* const toolkit = await createMCPToolkit([
|
|
108
|
+
* { id: "time", config: { transport: { command: "uvx", args: ["mcp-server-time"] } } }
|
|
109
|
+
* ]);
|
|
110
|
+
*/
|
|
111
|
+
export declare function createMCPToolkit(servers: MCPServersConfig, name?: string): Promise<MCPToolkit>;
|
|
112
|
+
//# sourceMappingURL=mcp-toolkit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-toolkit.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-toolkit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE9D;;GAEG;AACH,qBAAa,UAAW,SAAQ,WAAW;IACzC,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,aAAa,CAAsC;gBAE/C,IAAI,GAAE,MAAsB;IAKxC;;OAEG;IACG,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzE;;OAEG;YACW,eAAe;IAK7B;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBnD;;OAEG;IACH,mBAAmB,IAAI,MAAM,EAAE;IAI/B;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,aAAa,EAAE;IAOjD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB9B;;OAEG;IACH,QAAQ;;;;;;;;;;IAWR;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAY9B;;OAEG;IACH,gBAAgB,IAAI,gBAAgB;CAGrC;AAED;;;;;;GAMG;AACH,MAAM,MAAM,gBAAgB,GACxB,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,kBAAkB,CAAC,GACpD,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CAAC,CAAC;AAiBnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,gBAAgB,EACzB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,UAAU,CAAC,CA6BrB"}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Toolkit
|
|
4
|
+
*
|
|
5
|
+
* A toolkit that manages MCP tools from external servers
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.MCPToolkit = void 0;
|
|
9
|
+
exports.createMCPToolkit = createMCPToolkit;
|
|
10
|
+
const utils_1 = require("../utils");
|
|
11
|
+
const mcp_client_manager_1 = require("./mcp-client-manager");
|
|
12
|
+
const client_tool_1 = require("./client-tool");
|
|
13
|
+
/**
|
|
14
|
+
* MCP Toolkit - manages tools from external MCP servers
|
|
15
|
+
*/
|
|
16
|
+
class MCPToolkit extends utils_1.BaseToolkit {
|
|
17
|
+
constructor(name = "mcp-toolkit") {
|
|
18
|
+
super({ name });
|
|
19
|
+
this.serverConfigs = new Map();
|
|
20
|
+
this.clientManager = new mcp_client_manager_1.MCPClientManager();
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Add an MCP server and load its tools
|
|
24
|
+
*/
|
|
25
|
+
async addServer(serverId, config) {
|
|
26
|
+
await this.clientManager.addServer(serverId, config);
|
|
27
|
+
this.serverConfigs.set(serverId, config);
|
|
28
|
+
// Load tools from the server
|
|
29
|
+
await this.loadServerTools(serverId);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Load tools from a specific server
|
|
33
|
+
*/
|
|
34
|
+
async loadServerTools(serverId) {
|
|
35
|
+
const clientTools = this.clientManager.createClientTools(serverId);
|
|
36
|
+
this.addTools(clientTools);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Remove a server and its tools
|
|
40
|
+
*/
|
|
41
|
+
async removeServer(serverId) {
|
|
42
|
+
// Remove tools from this server
|
|
43
|
+
const toolsToRemove = this.getTools().filter((tool) => tool instanceof client_tool_1.MCPClientTool && tool.name.startsWith(`${serverId}:`));
|
|
44
|
+
for (const tool of toolsToRemove) {
|
|
45
|
+
this.removeTool(tool.name);
|
|
46
|
+
}
|
|
47
|
+
// Disconnect from server
|
|
48
|
+
await this.clientManager.disconnectServer(serverId);
|
|
49
|
+
this.serverConfigs.delete(serverId);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get all connected servers
|
|
53
|
+
*/
|
|
54
|
+
getConnectedServers() {
|
|
55
|
+
return Array.from(this.serverConfigs.keys());
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Get tools from a specific server
|
|
59
|
+
*/
|
|
60
|
+
getServerTools(serverId) {
|
|
61
|
+
return this.getTools().filter((tool) => tool instanceof client_tool_1.MCPClientTool && tool.name.startsWith(`${serverId}:`));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Refresh all server connections
|
|
65
|
+
*/
|
|
66
|
+
async refresh() {
|
|
67
|
+
// Clear existing tools
|
|
68
|
+
const toolNames = this.getTools().map((tool) => tool.name);
|
|
69
|
+
for (const toolName of toolNames) {
|
|
70
|
+
this.removeTool(toolName);
|
|
71
|
+
}
|
|
72
|
+
// Refresh client manager
|
|
73
|
+
await this.clientManager.refresh();
|
|
74
|
+
// Reload all tools
|
|
75
|
+
for (const serverId of this.serverConfigs.keys()) {
|
|
76
|
+
await this.loadServerTools(serverId);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get toolkit statistics
|
|
81
|
+
*/
|
|
82
|
+
getStats() {
|
|
83
|
+
const mcpStats = this.clientManager.getStats();
|
|
84
|
+
return {
|
|
85
|
+
name: this.name,
|
|
86
|
+
description: this.description,
|
|
87
|
+
toolCount: this.getTools().length,
|
|
88
|
+
mcp: mcpStats,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Cleanup - disconnect from all servers
|
|
93
|
+
*/
|
|
94
|
+
async cleanup() {
|
|
95
|
+
await this.clientManager.disconnectAll();
|
|
96
|
+
// Clear all tools
|
|
97
|
+
const toolNames = this.getTools().map((tool) => tool.name);
|
|
98
|
+
for (const toolName of toolNames) {
|
|
99
|
+
this.removeTool(toolName);
|
|
100
|
+
}
|
|
101
|
+
this.serverConfigs.clear();
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get the underlying client manager
|
|
105
|
+
*/
|
|
106
|
+
getClientManager() {
|
|
107
|
+
return this.clientManager;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.MCPToolkit = MCPToolkit;
|
|
111
|
+
/**
|
|
112
|
+
* Helper function to check if a config is a transport config
|
|
113
|
+
*/
|
|
114
|
+
function isTransportConfig(config) {
|
|
115
|
+
return (config &&
|
|
116
|
+
typeof config === "object" &&
|
|
117
|
+
!("transport" in config) &&
|
|
118
|
+
(("command" in config) ||
|
|
119
|
+
("url" in config) ||
|
|
120
|
+
("memoryId" in config) ||
|
|
121
|
+
("type" in config && config.type !== undefined)));
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Create a new MCP toolkit with servers
|
|
125
|
+
*
|
|
126
|
+
* @param servers - Server configurations in object mapping or array format
|
|
127
|
+
* @param name - Optional toolkit name
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* // Object mapping format (recommended) - matches standard MCP config
|
|
131
|
+
* const toolkit = await createMCPToolkit({
|
|
132
|
+
* time: {
|
|
133
|
+
* command: "uvx",
|
|
134
|
+
* args: ["mcp-server-time"]
|
|
135
|
+
* },
|
|
136
|
+
* weather: {
|
|
137
|
+
* url: "http://localhost:3000/mcp"
|
|
138
|
+
* }
|
|
139
|
+
* });
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* // Object mapping with full MCPClientConfig
|
|
143
|
+
* const toolkit = await createMCPToolkit({
|
|
144
|
+
* time: {
|
|
145
|
+
* name: "time-server",
|
|
146
|
+
* version: "1.0.0",
|
|
147
|
+
* transport: {
|
|
148
|
+
* command: "uvx",
|
|
149
|
+
* args: ["mcp-server-time"]
|
|
150
|
+
* }
|
|
151
|
+
* }
|
|
152
|
+
* });
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* // Array format (backward compatible)
|
|
156
|
+
* const toolkit = await createMCPToolkit([
|
|
157
|
+
* { id: "time", config: { transport: { command: "uvx", args: ["mcp-server-time"] } } }
|
|
158
|
+
* ]);
|
|
159
|
+
*/
|
|
160
|
+
async function createMCPToolkit(servers, name) {
|
|
161
|
+
const toolkit = new MCPToolkit(name);
|
|
162
|
+
// Normalize servers to array format
|
|
163
|
+
const serverArray = Array.isArray(servers)
|
|
164
|
+
? servers
|
|
165
|
+
: Object.entries(servers).map(([id, configOrTransport]) => {
|
|
166
|
+
// Check if it's a direct transport config or a full MCPClientConfig
|
|
167
|
+
if (isTransportConfig(configOrTransport)) {
|
|
168
|
+
// It's a transport config, wrap it in MCPClientConfig
|
|
169
|
+
return {
|
|
170
|
+
id,
|
|
171
|
+
config: {
|
|
172
|
+
name: id,
|
|
173
|
+
version: "1.0.0",
|
|
174
|
+
transport: configOrTransport,
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
// It's already a full MCPClientConfig
|
|
180
|
+
return { id, config: configOrTransport };
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
for (const { id, config } of serverArray) {
|
|
184
|
+
await toolkit.addServer(id, config);
|
|
185
|
+
}
|
|
186
|
+
return toolkit;
|
|
187
|
+
}
|
|
188
|
+
//# sourceMappingURL=mcp-toolkit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-toolkit.js","sourceRoot":"","sources":["../../src/mcp/mcp-toolkit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for MCP integration with AG-Kit
|
|
3
|
+
*/
|
|
4
|
+
import { z } from "zod/v4";
|
|
5
|
+
import { ToolResult } from "../utils";
|
|
6
|
+
import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
7
|
+
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
|
|
8
|
+
/**
|
|
9
|
+
* MCP Client Configuration
|
|
10
|
+
*/
|
|
11
|
+
export interface MCPClientConfig {
|
|
12
|
+
name?: string;
|
|
13
|
+
version?: string;
|
|
14
|
+
transport?: MCPTransportConfig;
|
|
15
|
+
client?: Client;
|
|
16
|
+
onReconnectNeeded?: (serverId: string, config: MCPClientConfig) => Promise<Client>;
|
|
17
|
+
}
|
|
18
|
+
interface IBaseMCPClientTransportConfig {
|
|
19
|
+
type?: string;
|
|
20
|
+
timeout?: number;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* MCP Transport Configuration
|
|
24
|
+
*/
|
|
25
|
+
export type MCPTransportConfig = MCPStdioTransportConfig | MCPSSETransportConfig | MCPStreamableHTTPTransportConfig | MCPInMemoryTransportConfig | MCPCustomTransportConfig;
|
|
26
|
+
/**
|
|
27
|
+
* Stdio Transport Configuration
|
|
28
|
+
*/
|
|
29
|
+
export interface MCPStdioTransportConfig extends IBaseMCPClientTransportConfig {
|
|
30
|
+
type?: "stdio";
|
|
31
|
+
command: string;
|
|
32
|
+
args?: string[];
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* SSE Transport Configuration
|
|
36
|
+
*/
|
|
37
|
+
export interface MCPSSETransportConfig extends IBaseMCPClientTransportConfig {
|
|
38
|
+
type?: "sse";
|
|
39
|
+
url: string;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* StreamableHTTP Transport Configuration
|
|
43
|
+
*/
|
|
44
|
+
export interface MCPStreamableHTTPTransportConfig extends IBaseMCPClientTransportConfig {
|
|
45
|
+
type?: "streamableHttp";
|
|
46
|
+
url: string;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* InMemory Transport Configuration
|
|
50
|
+
*/
|
|
51
|
+
export interface MCPInMemoryTransportConfig extends IBaseMCPClientTransportConfig {
|
|
52
|
+
type?: "memory";
|
|
53
|
+
memoryId: string;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Custom Transport Configuration
|
|
57
|
+
*/
|
|
58
|
+
export interface MCPCustomTransportConfig extends IBaseMCPClientTransportConfig {
|
|
59
|
+
type?: "custom";
|
|
60
|
+
transport: any;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Detect transport type from configuration
|
|
64
|
+
* Priority: memory > stdio > streamableHttp > sse
|
|
65
|
+
*/
|
|
66
|
+
export declare function detectTransportType(config: MCPTransportConfig): "memory" | "stdio" | "streamableHttp" | "sse" | "custom";
|
|
67
|
+
/**
|
|
68
|
+
* MCP Tool Configuration
|
|
69
|
+
*/
|
|
70
|
+
export interface MCPToolConfig {
|
|
71
|
+
name?: string;
|
|
72
|
+
description?: string;
|
|
73
|
+
inputSchema?: z.ZodSchema<any>;
|
|
74
|
+
outputSchema?: z.ZodSchema<any>;
|
|
75
|
+
timeout?: number;
|
|
76
|
+
retries?: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* MCP Adapter Configuration
|
|
80
|
+
*/
|
|
81
|
+
export interface MCPAdapterConfig {
|
|
82
|
+
includeMetadata?: boolean;
|
|
83
|
+
transformInput?: (input: any) => any;
|
|
84
|
+
transformOutput?: (output: any) => any;
|
|
85
|
+
errorHandler?: (error: Error) => ToolResult;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* MCP Connection Options
|
|
89
|
+
*/
|
|
90
|
+
export interface MCPConnectionOptions {
|
|
91
|
+
autoReconnect?: boolean;
|
|
92
|
+
reconnectDelay?: number;
|
|
93
|
+
maxReconnectAttempts?: number;
|
|
94
|
+
heartbeatInterval?: number;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* MCP Tool Metadata (from MCP server)
|
|
98
|
+
*/
|
|
99
|
+
export interface MCPToolMetadata {
|
|
100
|
+
name: string;
|
|
101
|
+
description?: string;
|
|
102
|
+
inputSchema?: any;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* MCP Event Types
|
|
106
|
+
*/
|
|
107
|
+
export type MCPEvent = {
|
|
108
|
+
type: "connected";
|
|
109
|
+
clientName: string;
|
|
110
|
+
} | {
|
|
111
|
+
type: "disconnected";
|
|
112
|
+
clientName: string;
|
|
113
|
+
reason?: string;
|
|
114
|
+
} | {
|
|
115
|
+
type: "tool_discovered";
|
|
116
|
+
tool: MCPToolMetadata;
|
|
117
|
+
} | {
|
|
118
|
+
type: "tool_called";
|
|
119
|
+
toolName: string;
|
|
120
|
+
arguments: any;
|
|
121
|
+
} | {
|
|
122
|
+
type: "tool_result";
|
|
123
|
+
toolName: string;
|
|
124
|
+
result: CallToolResult;
|
|
125
|
+
} | {
|
|
126
|
+
type: "error";
|
|
127
|
+
error: Error;
|
|
128
|
+
context?: string;
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* MCP Event Listener
|
|
132
|
+
*/
|
|
133
|
+
export type MCPEventListener = (event: MCPEvent) => void;
|
|
134
|
+
/**
|
|
135
|
+
* MCP Client Status
|
|
136
|
+
*/
|
|
137
|
+
export interface MCPClientStatus {
|
|
138
|
+
connected: boolean;
|
|
139
|
+
sessionId?: string;
|
|
140
|
+
serverInfo?: {
|
|
141
|
+
name: string;
|
|
142
|
+
version: string;
|
|
143
|
+
};
|
|
144
|
+
capabilities?: Record<string, any>;
|
|
145
|
+
toolCount: number;
|
|
146
|
+
resourceCount: number;
|
|
147
|
+
promptCount: number;
|
|
148
|
+
lastActivity?: Date;
|
|
149
|
+
reconnectAttempts?: number;
|
|
150
|
+
errors: Array<{
|
|
151
|
+
timestamp: Date;
|
|
152
|
+
error: Error;
|
|
153
|
+
context?: string;
|
|
154
|
+
}>;
|
|
155
|
+
}
|
|
156
|
+
export {};
|
|
157
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,SAAS,CAAC,EAAE,kBAAkB,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,iBAAiB,CAAC,EAAE,CAClB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,eAAe,KACpB,OAAO,CAAC,MAAM,CAAC,CAAC;CACtB;AAED,UAAU,6BAA6B;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,uBAAuB,GACvB,qBAAqB,GACrB,gCAAgC,GAChC,0BAA0B,GAC1B,wBAAwB,CAAC;AAE7B;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,6BAA6B;IAC5E,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,6BAA6B;IAC1E,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,gCACf,SAAQ,6BAA6B;IACrC,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,0BACf,SAAQ,6BAA6B;IACrC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,wBACf,SAAQ,6BAA6B;IACrC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,GAAG,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,kBAAkB,GACzB,QAAQ,GAAG,OAAO,GAAG,gBAAgB,GAAG,KAAK,GAAG,QAAQ,CA0B1D;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC/B,YAAY,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC;IACrC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC;IACvC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,UAAU,CAAC;CAC7C;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,GAAG,CAAA;CAAE,GACzD;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE;QACX,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,IAAI,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,MAAM,EAAE,KAAK,CAAC;QACZ,SAAS,EAAE,IAAI,CAAC;QAChB,KAAK,EAAE,KAAK,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;CACJ"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Type definitions for MCP integration with AG-Kit
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.detectTransportType = detectTransportType;
|
|
7
|
+
/**
|
|
8
|
+
* Detect transport type from configuration
|
|
9
|
+
* Priority: memory > stdio > streamableHttp > sse
|
|
10
|
+
*/
|
|
11
|
+
function detectTransportType(config) {
|
|
12
|
+
// If type is explicitly specified, use it
|
|
13
|
+
if (config.type) {
|
|
14
|
+
return config.type;
|
|
15
|
+
}
|
|
16
|
+
// Auto-detect based on config properties
|
|
17
|
+
// Priority: memory > stdio > streamableHttp > sse
|
|
18
|
+
if ("memoryId" in config) {
|
|
19
|
+
return "memory";
|
|
20
|
+
}
|
|
21
|
+
if ("command" in config) {
|
|
22
|
+
return "stdio";
|
|
23
|
+
}
|
|
24
|
+
if ("url" in config) {
|
|
25
|
+
// For URL-based configs, default to streamableHttp
|
|
26
|
+
// Users must explicitly specify type: 'sse' if they want SSE transport
|
|
27
|
+
return "streamableHttp";
|
|
28
|
+
}
|
|
29
|
+
if ("transport" in config) {
|
|
30
|
+
return "custom";
|
|
31
|
+
}
|
|
32
|
+
throw new Error("Unable to detect transport type from config. Please specify 'type' explicitly or provide valid transport configuration.");
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAsFH,kDA4BC;AAhCD;;;GAGG;AACH,SAAgB,mBAAmB,CACjC,MAA0B;IAE1B,0CAA0C;IAC1C,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC,IAAW,CAAC;IAC5B,CAAC;IAED,yCAAyC;IACzC,kDAAkD;IAClD,IAAI,UAAU,IAAI,MAAM,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,IAAI,KAAK,IAAI,MAAM,EAAE,CAAC;QACpB,mDAAmD;QACnD,uEAAuE;QACvE,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IACD,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;QAC1B,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,yHAAyH,CAC1H,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Utility Functions
|
|
3
|
+
*/
|
|
4
|
+
import { MCPClientConfig } from "./types";
|
|
5
|
+
/**
|
|
6
|
+
* Create an MCP client with the specified configuration
|
|
7
|
+
*/
|
|
8
|
+
export declare function createMCPClient(config: MCPClientConfig): Promise<any>;
|
|
9
|
+
/**
|
|
10
|
+
* Helper to format MCP errors for AG-Kit
|
|
11
|
+
*/
|
|
12
|
+
export declare function formatMCPError(error: any): string;
|
|
13
|
+
/**
|
|
14
|
+
* Helper to check if an error is an MCP protocol error
|
|
15
|
+
*/
|
|
16
|
+
export declare function isMCPError(error: any): boolean;
|
|
17
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/mcp/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAa3E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAWjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CAO9C"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Utility Functions
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createMCPClient = createMCPClient;
|
|
7
|
+
exports.formatMCPError = formatMCPError;
|
|
8
|
+
exports.isMCPError = isMCPError;
|
|
9
|
+
const client_1 = require("@modelcontextprotocol/sdk/client");
|
|
10
|
+
/**
|
|
11
|
+
* Create an MCP client with the specified configuration
|
|
12
|
+
*/
|
|
13
|
+
async function createMCPClient(config) {
|
|
14
|
+
try {
|
|
15
|
+
const client = new client_1.Client({
|
|
16
|
+
name: config.name,
|
|
17
|
+
version: config.version,
|
|
18
|
+
});
|
|
19
|
+
return client;
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
throw new Error(`Failed to create MCP client: ${error instanceof Error ? error.message : String(error)}`);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Helper to format MCP errors for AG-Kit
|
|
27
|
+
*/
|
|
28
|
+
function formatMCPError(error) {
|
|
29
|
+
if (error && typeof error === "object") {
|
|
30
|
+
if (error.code && error.message) {
|
|
31
|
+
return `MCP Error ${error.code}: ${error.message}`;
|
|
32
|
+
}
|
|
33
|
+
if (error.message) {
|
|
34
|
+
return `MCP Error: ${error.message}`;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return `MCP Error: ${String(error)}`;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Helper to check if an error is an MCP protocol error
|
|
41
|
+
*/
|
|
42
|
+
function isMCPError(error) {
|
|
43
|
+
return (error &&
|
|
44
|
+
typeof error === "object" &&
|
|
45
|
+
typeof error.code === "number" &&
|
|
46
|
+
typeof error.message === "string");
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/mcp/utils.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAQH,0CAaC;AAKD,wCAWC;AAKD,gCAOC;AA9CD,6DAAyD;AAEzD;;GAEG;AACI,KAAK,UAAU,eAAe,CAAC,MAAuB;IAC3D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC;YACxB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,OAAO,EAAE,MAAM,CAAC,OAAO;SACxB,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,gCAAgC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACzF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAU;IACvC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAChC,OAAO,aAAa,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;QACrD,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO,cAAc,KAAK,CAAC,OAAO,EAAE,CAAC;QACvC,CAAC;IACH,CAAC;IAED,OAAO,cAAc,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,SAAgB,UAAU,CAAC,KAAU;IACnC,OAAO,CACL,KAAK;QACL,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;QAC9B,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,CAClC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export interface ToolExecutionContext<TState = unknown> extends Record<string, any> {
|
|
3
|
+
conversationId?: string;
|
|
4
|
+
runId?: string;
|
|
5
|
+
userId?: string;
|
|
6
|
+
timestamp?: Date;
|
|
7
|
+
state?: TState;
|
|
8
|
+
}
|
|
9
|
+
export interface IBaseToolOptions<TSchema = z.ZodTypeAny> {
|
|
10
|
+
name: string;
|
|
11
|
+
description?: string;
|
|
12
|
+
schema?: TSchema;
|
|
13
|
+
requiresApproval?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export interface IToolkitOptions<TState = Record<string, unknown>> {
|
|
16
|
+
name: string;
|
|
17
|
+
description?: string;
|
|
18
|
+
context?: ToolExecutionContext<TState>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Configuration options for FilesystemToolkit
|
|
22
|
+
*/
|
|
23
|
+
export interface IFilesystemToolkitConfig {
|
|
24
|
+
/**
|
|
25
|
+
* Mode for file editing operations
|
|
26
|
+
* - 'integrated': Use str-replace-editor tool (single tool for read/write/edit operations)
|
|
27
|
+
* - 'atomic': Use separate read, write, and edit tools
|
|
28
|
+
*/
|
|
29
|
+
mode: "integrated" | "atomic";
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,MAAM,WAAW,oBAAoB,CAAC,MAAM,GAAG,OAAO,CACpD,SAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,MAAM,WAAW,gBAAgB,CAAC,OAAO,GAAG,CAAC,CAAC,UAAU;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAGD,MAAM,WAAW,eAAe,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,IAAI,EAAE,YAAY,GAAG,QAAQ,CAAC;CAC/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
type InteropZodType<Output = any, Input = Output> = z.ZodType<Output, Input>;
|
|
3
|
+
type ToolInputSchemaInputType<T> = T extends InteropZodType ? InferInteropZodInput<T> : never;
|
|
4
|
+
type InferInteropZodOutput<T> = T extends z.ZodType<infer Output, unknown> ? Output : T extends {
|
|
5
|
+
_zod: {
|
|
6
|
+
output: infer Output;
|
|
7
|
+
};
|
|
8
|
+
} ? Output : never;
|
|
9
|
+
type InferInteropZodInput<T> = T extends z.ZodType<unknown, infer Input> ? Input : T extends {
|
|
10
|
+
_zod: {
|
|
11
|
+
input: infer Input;
|
|
12
|
+
};
|
|
13
|
+
} ? Input : never;
|
|
14
|
+
type ToolInputSchemaOutputType<T> = T extends InteropZodType ? InferInteropZodOutput<T> : never;
|
|
15
|
+
type OriginBaseToolInvokeInput<SchemaT = z.ZodTypeAny, SchemaInputT = ToolInputSchemaInputType<SchemaT>> = (ToolInputSchemaOutputType<SchemaT> extends string ? string : never) | SchemaInputT;
|
|
16
|
+
export type TBaseToolInvokeInput<SchemaT = z.ZodTypeAny, SchemaInputT = ToolInputSchemaInputType<SchemaT>> = unknown extends OriginBaseToolInvokeInput<SchemaT, SchemaInputT> ? any : OriginBaseToolInvokeInput<SchemaT, SchemaInputT>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=zod.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.d.ts","sourceRoot":"","sources":["../../src/types/zod.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,KAAK,cAAc,CAAC,MAAM,GAAG,GAAG,EAAE,KAAK,GAAG,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE7E,KAAK,wBAAwB,CAAC,CAAC,IAAI,CAAC,SAAS,cAAc,GACvD,oBAAoB,CAAC,CAAC,CAAC,GACvB,KAAK,CAAC;AAEV,KAAK,qBAAqB,CAAC,CAAC,IAC1B,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,MAAM,MAAM,EAAE,OAAO,CAAC,GACtC,MAAM,GACN,CAAC,SAAS;IAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,MAAM,CAAA;KAAE,CAAA;CAAE,GAC1C,MAAM,GACN,KAAK,CAAC;AAEd,KAAK,oBAAoB,CAAC,CAAC,IACzB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GACrC,KAAK,GACL,CAAC,SAAS;IAAE,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,KAAK,CAAA;KAAE,CAAA;CAAE,GACxC,KAAK,GACL,KAAK,CAAC;AAEd,KAAK,yBAAyB,CAAC,CAAC,IAAI,CAAC,SAAS,cAAc,GACxD,qBAAqB,CAAC,CAAC,CAAC,GACxB,KAAK,CAAC;AAEV,KAAK,yBAAyB,CAC5B,OAAO,GAAG,CAAC,CAAC,UAAU,EACtB,YAAY,GAAG,wBAAwB,CAAC,OAAO,CAAC,IAE9C,CAAC,yBAAyB,CAAC,OAAO,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,GACpE,YAAY,CAAC;AAEjB,MAAM,MAAM,oBAAoB,CAC9B,OAAO,GAAG,CAAC,CAAC,UAAU,EACtB,YAAY,GAAG,wBAAwB,CAAC,OAAO,CAAC,IAEhD,OAAO,SAAS,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC,GAC5D,GAAG,GACH,yBAAyB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/types/zod.ts"],"names":[],"mappings":""}
|