@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.
Files changed (194) hide show
  1. package/CHANGELOG.md +416 -0
  2. package/dist/agent_tool.d.ts +7 -0
  3. package/dist/agent_tool.d.ts.map +1 -0
  4. package/dist/agent_tool.js +16 -0
  5. package/dist/agent_tool.js.map +1 -0
  6. package/dist/bash/bash-tool.d.ts +61 -0
  7. package/dist/bash/bash-tool.d.ts.map +1 -0
  8. package/dist/bash/bash-tool.js +191 -0
  9. package/dist/bash/bash-tool.js.map +1 -0
  10. package/dist/bash/index.d.ts +7 -0
  11. package/dist/bash/index.d.ts.map +1 -0
  12. package/dist/bash/index.js +17 -0
  13. package/dist/bash/index.js.map +1 -0
  14. package/dist/bash/operator/base-operator.d.ts +44 -0
  15. package/dist/bash/operator/base-operator.d.ts.map +1 -0
  16. package/dist/bash/operator/base-operator.js +14 -0
  17. package/dist/bash/operator/base-operator.js.map +1 -0
  18. package/dist/bash/operator/local-operator.d.ts +15 -0
  19. package/dist/bash/operator/local-operator.d.ts.map +1 -0
  20. package/dist/bash/operator/local-operator.js +145 -0
  21. package/dist/bash/operator/local-operator.js.map +1 -0
  22. package/dist/bash/operator/sandbox-operator.d.ts +22 -0
  23. package/dist/bash/operator/sandbox-operator.d.ts.map +1 -0
  24. package/dist/bash/operator/sandbox-operator.js +112 -0
  25. package/dist/bash/operator/sandbox-operator.js.map +1 -0
  26. package/dist/bash/utils.d.ts +106 -0
  27. package/dist/bash/utils.d.ts.map +1 -0
  28. package/dist/bash/utils.js +197 -0
  29. package/dist/bash/utils.js.map +1 -0
  30. package/dist/browser/browser-instance-manager.d.ts +79 -0
  31. package/dist/browser/browser-instance-manager.d.ts.map +1 -0
  32. package/dist/browser/browser-instance-manager.js +242 -0
  33. package/dist/browser/browser-instance-manager.js.map +1 -0
  34. package/dist/browser/browser-tool-executor.d.ts +57 -0
  35. package/dist/browser/browser-tool-executor.d.ts.map +1 -0
  36. package/dist/browser/browser-tool-executor.js +205 -0
  37. package/dist/browser/browser-tool-executor.js.map +1 -0
  38. package/dist/browser/browser_client_unified.d.ts +52 -0
  39. package/dist/browser/browser_client_unified.d.ts.map +1 -0
  40. package/dist/browser/browser_client_unified.js +381 -0
  41. package/dist/browser/browser_client_unified.js.map +1 -0
  42. package/dist/browser/browser_tool_unified.d.ts +93 -0
  43. package/dist/browser/browser_tool_unified.d.ts.map +1 -0
  44. package/dist/browser/browser_tool_unified.js +181 -0
  45. package/dist/browser/browser_tool_unified.js.map +1 -0
  46. package/dist/browser/index.d.ts +7 -0
  47. package/dist/browser/index.d.ts.map +1 -0
  48. package/dist/browser/index.js +19 -0
  49. package/dist/browser/index.js.map +1 -0
  50. package/dist/browser/sandbox-connector.d.ts +93 -0
  51. package/dist/browser/sandbox-connector.d.ts.map +1 -0
  52. package/dist/browser/sandbox-connector.js +272 -0
  53. package/dist/browser/sandbox-connector.js.map +1 -0
  54. package/dist/browser/types.d.ts +53 -0
  55. package/dist/browser/types.d.ts.map +1 -0
  56. package/dist/browser/types.js +3 -0
  57. package/dist/browser/types.js.map +1 -0
  58. package/dist/code_executers/base_code_executor.d.ts +17 -0
  59. package/dist/code_executers/base_code_executor.d.ts.map +1 -0
  60. package/dist/code_executers/base_code_executor.js +20 -0
  61. package/dist/code_executers/base_code_executor.js.map +1 -0
  62. package/dist/code_executers/built_in_code_executor.d.ts +25 -0
  63. package/dist/code_executers/built_in_code_executor.d.ts.map +1 -0
  64. package/dist/code_executers/built_in_code_executor.js +106 -0
  65. package/dist/code_executers/built_in_code_executor.js.map +1 -0
  66. package/dist/code_executers/unsafe_local_code_executor.d.ts +118 -0
  67. package/dist/code_executers/unsafe_local_code_executor.d.ts.map +1 -0
  68. package/dist/code_executers/unsafe_local_code_executor.js +605 -0
  69. package/dist/code_executers/unsafe_local_code_executor.js.map +1 -0
  70. package/dist/fs/edit-tool.d.ts +26 -0
  71. package/dist/fs/edit-tool.d.ts.map +1 -0
  72. package/dist/fs/edit-tool.js +202 -0
  73. package/dist/fs/edit-tool.js.map +1 -0
  74. package/dist/fs/glob-tool.d.ts +31 -0
  75. package/dist/fs/glob-tool.d.ts.map +1 -0
  76. package/dist/fs/glob-tool.js +287 -0
  77. package/dist/fs/glob-tool.js.map +1 -0
  78. package/dist/fs/grep-tool.d.ts +32 -0
  79. package/dist/fs/grep-tool.d.ts.map +1 -0
  80. package/dist/fs/grep-tool.js +353 -0
  81. package/dist/fs/grep-tool.js.map +1 -0
  82. package/dist/fs/index.d.ts +11 -0
  83. package/dist/fs/index.d.ts.map +1 -0
  84. package/dist/fs/index.js +38 -0
  85. package/dist/fs/index.js.map +1 -0
  86. package/dist/fs/ls-tool.d.ts +26 -0
  87. package/dist/fs/ls-tool.d.ts.map +1 -0
  88. package/dist/fs/ls-tool.js +235 -0
  89. package/dist/fs/ls-tool.js.map +1 -0
  90. package/dist/fs/multiedit-tool.d.ts +34 -0
  91. package/dist/fs/multiedit-tool.d.ts.map +1 -0
  92. package/dist/fs/multiedit-tool.js +158 -0
  93. package/dist/fs/multiedit-tool.js.map +1 -0
  94. package/dist/fs/operator/base-operator.d.ts +28 -0
  95. package/dist/fs/operator/base-operator.d.ts.map +1 -0
  96. package/dist/fs/operator/base-operator.js +21 -0
  97. package/dist/fs/operator/base-operator.js.map +1 -0
  98. package/dist/fs/operator/in-memory-operator.d.ts +39 -0
  99. package/dist/fs/operator/in-memory-operator.d.ts.map +1 -0
  100. package/dist/fs/operator/in-memory-operator.js +115 -0
  101. package/dist/fs/operator/in-memory-operator.js.map +1 -0
  102. package/dist/fs/operator/index.d.ts +6 -0
  103. package/dist/fs/operator/index.d.ts.map +1 -0
  104. package/dist/fs/operator/index.js +28 -0
  105. package/dist/fs/operator/index.js.map +1 -0
  106. package/dist/fs/operator/local-operator.d.ts +25 -0
  107. package/dist/fs/operator/local-operator.d.ts.map +1 -0
  108. package/dist/fs/operator/local-operator.js +62 -0
  109. package/dist/fs/operator/local-operator.js.map +1 -0
  110. package/dist/fs/operator/sanbox-operator.d.ts +31 -0
  111. package/dist/fs/operator/sanbox-operator.d.ts.map +1 -0
  112. package/dist/fs/operator/sanbox-operator.js +172 -0
  113. package/dist/fs/operator/sanbox-operator.js.map +1 -0
  114. package/dist/fs/operator/transaction/index.d.ts +6 -0
  115. package/dist/fs/operator/transaction/index.d.ts.map +1 -0
  116. package/dist/fs/operator/transaction/index.js +28 -0
  117. package/dist/fs/operator/transaction/index.js.map +1 -0
  118. package/dist/fs/operator/transaction/snapshot-strategies.d.ts +54 -0
  119. package/dist/fs/operator/transaction/snapshot-strategies.d.ts.map +1 -0
  120. package/dist/fs/operator/transaction/snapshot-strategies.js +278 -0
  121. package/dist/fs/operator/transaction/snapshot-strategies.js.map +1 -0
  122. package/dist/fs/operator/transaction/transaction-operator.d.ts +53 -0
  123. package/dist/fs/operator/transaction/transaction-operator.d.ts.map +1 -0
  124. package/dist/fs/operator/transaction/transaction-operator.js +195 -0
  125. package/dist/fs/operator/transaction/transaction-operator.js.map +1 -0
  126. package/dist/fs/operator/transaction/transaction-utils.d.ts +80 -0
  127. package/dist/fs/operator/transaction/transaction-utils.d.ts.map +1 -0
  128. package/dist/fs/operator/transaction/transaction-utils.js +156 -0
  129. package/dist/fs/operator/transaction/transaction-utils.js.map +1 -0
  130. package/dist/fs/read-tool.d.ts +32 -0
  131. package/dist/fs/read-tool.d.ts.map +1 -0
  132. package/dist/fs/read-tool.js +271 -0
  133. package/dist/fs/read-tool.js.map +1 -0
  134. package/dist/fs/str-replace-editor.d.ts +23 -0
  135. package/dist/fs/str-replace-editor.d.ts.map +1 -0
  136. package/dist/fs/str-replace-editor.js +74 -0
  137. package/dist/fs/str-replace-editor.js.map +1 -0
  138. package/dist/fs/toolkit.d.ts +61 -0
  139. package/dist/fs/toolkit.d.ts.map +1 -0
  140. package/dist/fs/toolkit.js +113 -0
  141. package/dist/fs/toolkit.js.map +1 -0
  142. package/dist/fs/utils.d.ts +32 -0
  143. package/dist/fs/utils.d.ts.map +1 -0
  144. package/dist/fs/utils.js +133 -0
  145. package/dist/fs/utils.js.map +1 -0
  146. package/dist/fs/write-tool.d.ts +26 -0
  147. package/dist/fs/write-tool.d.ts.map +1 -0
  148. package/dist/fs/write-tool.js +110 -0
  149. package/dist/fs/write-tool.js.map +1 -0
  150. package/dist/index.d.ts +10 -0
  151. package/dist/index.d.ts.map +1 -0
  152. package/dist/index.js +40 -0
  153. package/dist/index.js.map +1 -0
  154. package/dist/mcp/agkit-mcp-server.d.ts +291 -0
  155. package/dist/mcp/agkit-mcp-server.d.ts.map +1 -0
  156. package/dist/mcp/agkit-mcp-server.js +821 -0
  157. package/dist/mcp/agkit-mcp-server.js.map +1 -0
  158. package/dist/mcp/client-tool.d.ts +65 -0
  159. package/dist/mcp/client-tool.d.ts.map +1 -0
  160. package/dist/mcp/client-tool.js +220 -0
  161. package/dist/mcp/client-tool.js.map +1 -0
  162. package/dist/mcp/index.d.ts +14 -0
  163. package/dist/mcp/index.d.ts.map +1 -0
  164. package/dist/mcp/index.js +26 -0
  165. package/dist/mcp/index.js.map +1 -0
  166. package/dist/mcp/mcp-client-manager.d.ts +153 -0
  167. package/dist/mcp/mcp-client-manager.d.ts.map +1 -0
  168. package/dist/mcp/mcp-client-manager.js +606 -0
  169. package/dist/mcp/mcp-client-manager.js.map +1 -0
  170. package/dist/mcp/mcp-toolkit.d.ts +112 -0
  171. package/dist/mcp/mcp-toolkit.d.ts.map +1 -0
  172. package/dist/mcp/mcp-toolkit.js +188 -0
  173. package/dist/mcp/mcp-toolkit.js.map +1 -0
  174. package/dist/mcp/types.d.ts +157 -0
  175. package/dist/mcp/types.d.ts.map +1 -0
  176. package/dist/mcp/types.js +34 -0
  177. package/dist/mcp/types.js.map +1 -0
  178. package/dist/mcp/utils.d.ts +17 -0
  179. package/dist/mcp/utils.d.ts.map +1 -0
  180. package/dist/mcp/utils.js +48 -0
  181. package/dist/mcp/utils.js.map +1 -0
  182. package/dist/types/index.d.ts +31 -0
  183. package/dist/types/index.d.ts.map +1 -0
  184. package/dist/types/index.js +3 -0
  185. package/dist/types/index.js.map +1 -0
  186. package/dist/types/zod.d.ts +18 -0
  187. package/dist/types/zod.d.ts.map +1 -0
  188. package/dist/types/zod.js +3 -0
  189. package/dist/types/zod.js.map +1 -0
  190. package/dist/utils.d.ts +141 -0
  191. package/dist/utils.d.ts.map +1 -0
  192. package/dist/utils.js +379 -0
  193. package/dist/utils.js.map +1 -0
  194. 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":"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"}
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=index.js.map
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zod.js","sourceRoot":"","sources":["../../src/types/zod.ts"],"names":[],"mappings":""}