@apify/actors-mcp-server 0.1.31-beta.4 → 0.1.31-beta.6

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 (76) hide show
  1. package/dist/actor/server.d.ts.map +1 -1
  2. package/dist/actor/server.js +18 -18
  3. package/dist/actor/server.js.map +1 -1
  4. package/dist/const.d.ts +21 -11
  5. package/dist/const.d.ts.map +1 -1
  6. package/dist/const.js +29 -21
  7. package/dist/const.js.map +1 -1
  8. package/dist/examples/clientStreamableHttp.js +5 -3
  9. package/dist/examples/clientStreamableHttp.js.map +1 -1
  10. package/dist/main.js +3 -3
  11. package/dist/main.js.map +1 -1
  12. package/dist/mcp/proxy.d.ts +2 -2
  13. package/dist/mcp/proxy.d.ts.map +1 -1
  14. package/dist/mcp/proxy.js +1 -1
  15. package/dist/mcp/proxy.js.map +1 -1
  16. package/dist/mcp/server.d.ts +47 -32
  17. package/dist/mcp/server.d.ts.map +1 -1
  18. package/dist/mcp/server.js +126 -113
  19. package/dist/mcp/server.js.map +1 -1
  20. package/dist/mcp/utils.d.ts +3 -3
  21. package/dist/mcp/utils.d.ts.map +1 -1
  22. package/dist/mcp/utils.js +3 -3
  23. package/dist/mcp/utils.js.map +1 -1
  24. package/dist/stdio.js +1 -1
  25. package/dist/tools/actor.d.ts +16 -6
  26. package/dist/tools/actor.d.ts.map +1 -1
  27. package/dist/tools/actor.js +46 -12
  28. package/dist/tools/actor.js.map +1 -1
  29. package/dist/tools/build.d.ts +5 -2
  30. package/dist/tools/build.d.ts.map +1 -1
  31. package/dist/tools/build.js +9 -6
  32. package/dist/tools/build.js.map +1 -1
  33. package/dist/tools/dataset.d.ts +10 -0
  34. package/dist/tools/dataset.d.ts.map +1 -0
  35. package/dist/tools/dataset.js +97 -0
  36. package/dist/tools/dataset.js.map +1 -0
  37. package/dist/tools/dataset_collection.d.ts +6 -0
  38. package/dist/tools/dataset_collection.d.ts.map +1 -0
  39. package/dist/tools/dataset_collection.js +52 -0
  40. package/dist/tools/dataset_collection.js.map +1 -0
  41. package/dist/tools/helpers.d.ts +7 -7
  42. package/dist/tools/helpers.d.ts.map +1 -1
  43. package/dist/tools/helpers.js +18 -18
  44. package/dist/tools/helpers.js.map +1 -1
  45. package/dist/tools/index.d.ts +3 -3
  46. package/dist/tools/index.d.ts.map +1 -1
  47. package/dist/tools/index.js +31 -4
  48. package/dist/tools/index.js.map +1 -1
  49. package/dist/tools/key_value_store.d.ts +14 -0
  50. package/dist/tools/key_value_store.d.ts.map +1 -0
  51. package/dist/tools/key_value_store.js +100 -0
  52. package/dist/tools/key_value_store.js.map +1 -0
  53. package/dist/tools/key_value_store_collection.d.ts +6 -0
  54. package/dist/tools/key_value_store_collection.d.ts.map +1 -0
  55. package/dist/tools/key_value_store_collection.js +52 -0
  56. package/dist/tools/key_value_store_collection.js.map +1 -0
  57. package/dist/tools/run.d.ts +15 -0
  58. package/dist/tools/run.d.ts.map +1 -0
  59. package/dist/tools/run.js +90 -0
  60. package/dist/tools/run.js.map +1 -0
  61. package/dist/tools/run_collection.d.ts +6 -0
  62. package/dist/tools/run_collection.d.ts.map +1 -0
  63. package/dist/tools/run_collection.js +44 -0
  64. package/dist/tools/run_collection.js.map +1 -0
  65. package/dist/tools/store_collection.d.ts +8 -5
  66. package/dist/tools/store_collection.d.ts.map +1 -1
  67. package/dist/tools/store_collection.js +10 -7
  68. package/dist/tools/store_collection.js.map +1 -1
  69. package/dist/tsconfig.tsbuildinfo +1 -1
  70. package/dist/types.d.ts +7 -7
  71. package/dist/types.d.ts.map +1 -1
  72. package/package.json +2 -2
  73. package/dist/toolmap.d.ts +0 -7
  74. package/dist/toolmap.d.ts.map +0 -1
  75. package/dist/toolmap.js +0 -17
  76. package/dist/toolmap.js.map +0 -1
@@ -2,12 +2,10 @@
2
2
  * Model Context Protocol (MCP) server for Apify Actors
3
3
  */
4
4
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
- import { CallToolRequestSchema, CallToolResultSchema, ErrorCode, ListToolsRequestSchema, McpError } from '@modelcontextprotocol/sdk/types.js';
5
+ import { CallToolRequestSchema, CallToolResultSchema, ErrorCode, ListToolsRequestSchema, McpError, } from '@modelcontextprotocol/sdk/types.js';
6
6
  import log from '@apify/log';
7
7
  import { ACTOR_OUTPUT_MAX_CHARS_PER_ITEM, ACTOR_OUTPUT_TRUNCATED_MESSAGE, defaults, SERVER_NAME, SERVER_VERSION, } from '../const.js';
8
- import { internalToolsMap } from '../toolmap.js';
9
- import { helpTool } from '../tools/helpers.js';
10
- import { actorDefinitionTool, addTool, callActorGetDataset, getActorsAsTools, removeTool, searchTool, } from '../tools/index.js';
8
+ import { addRemoveTools, callActorGetDataset, defaultTools, getActorsAsTools } from '../tools/index.js';
11
9
  import { actorNameToToolName } from '../tools/utils.js';
12
10
  import { createMCPClient } from './client.js';
13
11
  import { EXTERNAL_TOOL_CALL_TIMEOUT_MSEC } from './const.js';
@@ -16,7 +14,7 @@ import { processParamsGetTools } from './utils.js';
16
14
  * Create Apify MCP server
17
15
  */
18
16
  export class ActorsMcpServer {
19
- constructor(options = {}, setupSIGINTHandler = true) {
17
+ constructor(options = {}, setupSigintHandler = true) {
20
18
  var _a, _b;
21
19
  Object.defineProperty(this, "server", {
22
20
  enumerable: true,
@@ -56,13 +54,13 @@ export class ActorsMcpServer {
56
54
  },
57
55
  });
58
56
  this.tools = new Map();
59
- this.setupErrorHandling(setupSIGINTHandler);
57
+ this.setupErrorHandling(setupSigintHandler);
60
58
  this.setupToolHandlers();
61
59
  // Add default tools
62
- this.updateTools([searchTool, actorDefinitionTool, helpTool]);
60
+ this.upsertTools(defaultTools);
63
61
  // Add tools to dynamically load Actors
64
62
  if (this.options.enableAddingActors) {
65
- this.loadToolsToAddActors();
63
+ this.enableDynamicActorTools();
66
64
  }
67
65
  // Initialize automatically for backward compatibility
68
66
  this.initialize().catch((error) => {
@@ -70,17 +68,11 @@ export class ActorsMcpServer {
70
68
  });
71
69
  }
72
70
  /**
73
- * Returns a list of Actor IDs that are registered as MCP servers.
74
- * @returns {string[]} - An array of Actor MCP server Actor IDs (e.g., 'apify/actors-mcp-server').
75
- */
76
- getToolMCPServerActors() {
77
- const mcpServerActors = new Set();
78
- for (const tool of this.tools.values()) {
79
- if (tool.type === 'actor-mcp') {
80
- mcpServerActors.add(tool.tool.actorID);
81
- }
82
- }
83
- return Array.from(mcpServerActors);
71
+ * Returns an array of tool names.
72
+ * @returns {string[]} - An array of tool names.
73
+ */
74
+ listToolNames() {
75
+ return Array.from(this.tools.keys());
84
76
  }
85
77
  /**
86
78
  * Register handler to get notified when tools change.
@@ -107,71 +99,76 @@ export class ActorsMcpServer {
107
99
  this.toolsChangedHandler = undefined;
108
100
  }
109
101
  /**
110
- * Loads missing tools from a provided list of tool names.
111
- * Skips tools that are already loaded and loads only the missing ones.
112
- * @param tools - Array of tool names to ensure are loaded
102
+ * Returns the list of all internal tool names
103
+ * @returns {string[]} - Array of loaded tool IDs (e.g., 'apify/rag-web-browser')
104
+ */
105
+ listInternalToolNames() {
106
+ return Array.from(this.tools.values())
107
+ .filter((tool) => tool.type === 'internal')
108
+ .map((tool) => tool.tool.name);
109
+ }
110
+ /**
111
+ * Returns the list of all currently loaded Actor tool IDs.
112
+ * @returns {string[]} - Array of loaded Actor tool IDs (e.g., 'apify/rag-web-browser')
113
+ */
114
+ listActorToolNames() {
115
+ return Array.from(this.tools.values())
116
+ .filter((tool) => tool.type === 'actor')
117
+ .map((tool) => tool.tool.actorFullName);
118
+ }
119
+ /**
120
+ * Returns a list of Actor IDs that are registered as MCP servers.
121
+ * @returns {string[]} - An array of Actor MCP server Actor IDs (e.g., 'apify/actors-mcp-server').
122
+ */
123
+ listActorMcpServerToolIds() {
124
+ const ids = Array.from(this.tools.values())
125
+ .filter((tool) => tool.type === 'actor-mcp')
126
+ .map((tool) => tool.tool.actorId);
127
+ // Ensure uniqueness
128
+ return Array.from(new Set(ids));
129
+ }
130
+ /**
131
+ * Returns a list of Actor name and MCP server tool IDs.
132
+ * @returns {string[]} - An array of Actor MCP server Actor IDs (e.g., 'apify/actors-mcp-server').
133
+ */
134
+ listAllToolNames() {
135
+ return [...this.listInternalToolNames(), ...this.listActorToolNames(), ...this.listActorMcpServerToolIds()];
136
+ }
137
+ /**
138
+ * Loads missing toolNames from a provided list of tool names.
139
+ * Skips toolNames that are already loaded and loads only the missing ones.
140
+ * @param toolNames - Array of tool names to ensure are loaded
113
141
  * @param apifyToken - Apify API token for authentication
114
142
  */
115
- async loadToolsFromToolsList(tools, apifyToken) {
116
- const loadedTools = this.getLoadedActorToolsList();
143
+ async loadToolsByName(toolNames, apifyToken) {
144
+ const loadedTools = this.listAllToolNames();
117
145
  const actorsToLoad = [];
118
- for (const tool of tools) {
146
+ const toolsToLoad = [];
147
+ const internalToolMap = new Map([...defaultTools, ...addRemoveTools].map((tool) => [tool.tool.name, tool]));
148
+ for (const tool of toolNames) {
119
149
  // Skip if the tool is already loaded
120
- if (loadedTools.includes(tool)) {
150
+ if (loadedTools.includes(tool))
121
151
  continue;
122
- }
123
152
  // Load internal tool
124
- if (internalToolsMap.has(tool)) {
125
- const toolWrap = internalToolsMap.get(tool);
126
- this.tools.set(tool, toolWrap);
127
- log.info(`Added internal tool: ${tool}`);
128
- // Handler Actor tool
153
+ if (internalToolMap.has(tool)) {
154
+ toolsToLoad.push(internalToolMap.get(tool));
155
+ // Load Actor
129
156
  }
130
157
  else {
131
158
  actorsToLoad.push(tool);
132
159
  }
133
160
  }
161
+ if (toolsToLoad.length > 0) {
162
+ this.upsertTools(toolsToLoad);
163
+ }
134
164
  if (actorsToLoad.length > 0) {
135
165
  const actorTools = await getActorsAsTools(actorsToLoad, apifyToken);
136
166
  if (actorTools.length > 0) {
137
- this.updateTools(actorTools);
167
+ this.upsertTools(actorTools);
138
168
  }
139
- log.info(`Loaded tools: ${actorTools.map((t) => t.tool.name).join(', ')}`);
140
169
  }
141
170
  }
142
171
  /**
143
- * Returns the list of all currently loaded Actor tool IDs.
144
- * @returns {string[]} - Array of loaded Actor tool IDs (e.g., 'apify/rag-web-browser')
145
- */
146
- getLoadedActorToolsList() {
147
- // Get the list of tool names
148
- const tools = [];
149
- for (const tool of this.tools.values()) {
150
- if (tool.type === 'actor') {
151
- tools.push(tool.tool.actorFullName);
152
- // Skip Actorized MCP servers since there may be multiple tools from the same Actor MCP server
153
- // so we skip and then get unique list of Actor MCP servers separately
154
- }
155
- else if (tool.type === 'actor-mcp') {
156
- continue;
157
- }
158
- else {
159
- tools.push(tool.tool.name);
160
- }
161
- }
162
- // Add unique list Actorized MCP servers original Actor IDs - for example: apify/actors-mcp-server
163
- tools.push(...this.getToolMCPServerActors());
164
- return tools;
165
- }
166
- notifyToolsChangedHandler() {
167
- // If no handler is registered, do nothing
168
- if (!this.toolsChangedHandler)
169
- return;
170
- // Get the list of tool names
171
- const tools = this.getLoadedActorToolsList();
172
- this.toolsChangedHandler(tools);
173
- }
174
- /**
175
172
  * Resets the server to the default state.
176
173
  * This method clears all tools and loads the default tools.
177
174
  * Used primarily for testing purposes.
@@ -182,9 +179,9 @@ export class ActorsMcpServer {
182
179
  if (this.toolsChangedHandler) {
183
180
  this.unregisterToolsChangedHandler();
184
181
  }
185
- this.updateTools([searchTool, actorDefinitionTool, helpTool]);
182
+ this.upsertTools(defaultTools);
186
183
  if (this.options.enableAddingActors) {
187
- this.loadToolsToAddActors();
184
+ this.enableDynamicActorTools();
188
185
  }
189
186
  // Initialize automatically for backward compatibility
190
187
  await this.initialize();
@@ -194,20 +191,29 @@ export class ActorsMcpServer {
194
191
  */
195
192
  async initialize() {
196
193
  if (this.options.enableDefaultActors) {
197
- await this.loadDefaultTools(process.env.APIFY_TOKEN);
194
+ await this.loadDefaultActors(process.env.APIFY_TOKEN);
198
195
  }
199
196
  }
200
197
  /**
201
198
  * Loads default tools if not already loaded.
199
+ * @param apifyToken - Apify API token for authentication
200
+ * @returns {Promise<void>} - A promise that resolves when the tools are loaded
202
201
  */
203
- async loadDefaultTools(apifyToken) {
204
- const missingDefaultTools = defaults.actors.filter((name) => !this.tools.has(actorNameToToolName(name)));
205
- const tools = await getActorsAsTools(missingDefaultTools, apifyToken);
202
+ async loadDefaultActors(apifyToken) {
203
+ const missingActors = defaults.actors.filter((name) => !this.tools.has(actorNameToToolName(name)));
204
+ const tools = await getActorsAsTools(missingActors, apifyToken);
206
205
  if (tools.length > 0) {
207
206
  log.info('Loading default tools...');
208
- this.updateTools(tools);
207
+ this.upsertTools(tools);
209
208
  }
210
209
  }
210
+ /**
211
+ * @deprecated Use `loadDefaultActors` instead.
212
+ * Loads default tools if not already loaded.
213
+ */
214
+ async loadDefaultTools(apifyToken) {
215
+ await this.loadDefaultActors(apifyToken);
216
+ }
211
217
  /**
212
218
  * Loads tools from URL params.
213
219
  *
@@ -219,14 +225,34 @@ export class ActorsMcpServer {
219
225
  const tools = await processParamsGetTools(url, apifyToken);
220
226
  if (tools.length > 0) {
221
227
  log.info('Loading tools from query parameters...');
222
- this.updateTools(tools, false);
228
+ this.upsertTools(tools, false);
223
229
  }
224
230
  }
225
231
  /**
226
232
  * Add Actors to server dynamically
227
233
  */
228
- loadToolsToAddActors() {
229
- this.updateTools([addTool, removeTool], false);
234
+ enableDynamicActorTools() {
235
+ this.options.enableAddingActors = true;
236
+ this.upsertTools(addRemoveTools, false);
237
+ }
238
+ disableDynamicActorTools() {
239
+ this.options.enableAddingActors = false;
240
+ this.removeToolsByName(addRemoveTools.map((tool) => tool.tool.name));
241
+ }
242
+ /** Delete tools from the server and notify the handler.
243
+ */
244
+ removeToolsByName(toolNames, shouldNotifyToolsChangedHandler = false) {
245
+ const removedTools = [];
246
+ for (const toolName of toolNames) {
247
+ if (this.removeToolByName(toolName)) {
248
+ removedTools.push(toolName);
249
+ }
250
+ }
251
+ if (removedTools.length > 0) {
252
+ if (shouldNotifyToolsChangedHandler)
253
+ this.notifyToolsChangedHandler();
254
+ }
255
+ return removedTools;
230
256
  }
231
257
  /**
232
258
  * Upsert new tools.
@@ -234,7 +260,7 @@ export class ActorsMcpServer {
234
260
  * @param shouldNotifyToolsChangedHandler - Whether to notify the tools changed handler
235
261
  * @returns Array of added/updated tool wrappers
236
262
  */
237
- updateTools(tools, shouldNotifyToolsChangedHandler = false) {
263
+ upsertTools(tools, shouldNotifyToolsChangedHandler = false) {
238
264
  for (const wrap of tools) {
239
265
  this.tools.set(wrap.tool.name, wrap);
240
266
  log.info(`Added/updated tool: ${wrap.tool.name}`);
@@ -243,42 +269,26 @@ export class ActorsMcpServer {
243
269
  this.notifyToolsChangedHandler();
244
270
  return tools;
245
271
  }
246
- /**
247
- * Delete tools by name.
248
- * Notifies the tools changed handler if any tools were deleted.
249
- * @param toolNames - Array of tool names to delete
250
- * @returns Array of tool names that were successfully deleted
251
- */
252
- deleteTools(toolNames) {
253
- const notFoundTools = [];
254
- // Delete the tools
255
- for (const toolName of toolNames) {
256
- if (this.tools.has(toolName)) {
257
- this.tools.delete(toolName);
258
- log.info(`Deleted tool: ${toolName}`);
259
- }
260
- else {
261
- notFoundTools.push(toolName);
262
- }
263
- }
264
- if (toolNames.length > notFoundTools.length) {
265
- this.notifyToolsChangedHandler();
266
- }
267
- // Return the list of tools that were removed
268
- return toolNames.filter((toolName) => !notFoundTools.includes(toolName));
272
+ notifyToolsChangedHandler() {
273
+ // If no handler is registered, do nothing
274
+ if (!this.toolsChangedHandler)
275
+ return;
276
+ // Get the list of tool names
277
+ this.toolsChangedHandler(this.listAllToolNames());
269
278
  }
270
- /**
271
- * Returns an array of tool names.
272
- * @returns {string[]} - An array of tool names.
273
- */
274
- getToolNames() {
275
- return Array.from(this.tools.keys());
279
+ removeToolByName(toolName) {
280
+ if (this.tools.has(toolName)) {
281
+ this.tools.delete(toolName);
282
+ log.info(`Deleted tool: ${toolName}`);
283
+ return true;
284
+ }
285
+ return false;
276
286
  }
277
287
  setupErrorHandling(setupSIGINTHandler = true) {
278
288
  this.server.onerror = (error) => {
279
289
  console.error('[MCP Error]', error); // eslint-disable-line no-console
280
290
  };
281
- // Allow disable of SIGINT handler to prevent max listeners warning
291
+ // Allow disabling of the SIGINT handler to prevent max listeners warning
282
292
  if (setupSIGINTHandler) {
283
293
  process.on('SIGINT', async () => {
284
294
  await this.server.close();
@@ -318,7 +328,7 @@ export class ActorsMcpServer {
318
328
  const tool = Array.from(this.tools.values())
319
329
  .find((t) => t.tool.name === name || (t.type === 'actor' && t.tool.actorFullName === name));
320
330
  if (!tool) {
321
- const msg = `Tool ${name} not found. Available tools: ${this.getToolNames().join(', ')}`;
331
+ const msg = `Tool ${name} not found. Available tools: ${this.listToolNames().join(', ')}`;
322
332
  log.error(msg);
323
333
  await this.server.sendLoggingMessage({ level: 'error', data: msg });
324
334
  throw new McpError(ErrorCode.InvalidParams, msg);
@@ -369,16 +379,19 @@ export class ActorsMcpServer {
369
379
  // Handle actor tool
370
380
  if (tool.type === 'actor') {
371
381
  const actorTool = tool.tool;
372
- const callOptions = {
373
- memory: actorTool.memoryMbytes,
374
- };
375
- const items = await callActorGetDataset(actorTool.actorFullName, args, apifyToken, callOptions);
376
- const content = items.map((item) => {
382
+ const callOptions = { memory: actorTool.memoryMbytes };
383
+ const { actorRun, datasetInfo, items } = await callActorGetDataset(actorTool.actorFullName, args, apifyToken, callOptions);
384
+ const content = [
385
+ { type: 'text', text: `Actor finished with run information: ${JSON.stringify(actorRun)}` },
386
+ { type: 'text', text: `Dataset information: ${JSON.stringify(datasetInfo)}` },
387
+ ];
388
+ const itemContents = items.items.map((item) => {
377
389
  const text = JSON.stringify(item).slice(0, ACTOR_OUTPUT_MAX_CHARS_PER_ITEM);
378
390
  return text.length === ACTOR_OUTPUT_MAX_CHARS_PER_ITEM
379
391
  ? { type: 'text', text: `${text} ... ${ACTOR_OUTPUT_TRUNCATED_MESSAGE}` }
380
392
  : { type: 'text', text };
381
393
  });
394
+ content.push(...itemContents);
382
395
  return { content };
383
396
  }
384
397
  }
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,SAAS,EAAE,sBAAsB,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAG9I,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EACH,+BAA+B,EAC/B,8BAA8B,EAC9B,QAAQ,EACR,WAAW,EACX,cAAc,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EACH,mBAAmB,EACnB,OAAO,EACP,mBAAmB,EACnB,gBAAgB,EAChB,UAAU,EACV,UAAU,GACb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,+BAA+B,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AASnD;;GAEG;AACH,MAAM,OAAO,eAAe;IAMxB,YAAY,UAAkC,EAAE,EAAE,kBAAkB,GAAG,IAAI;;QAL3D;;;;;WAAe;QACf;;;;;WAA6B;QAC5B;;;;;WAAgC;QACzC;;;;;WAAqD;QAGzD,IAAI,CAAC,OAAO,GAAG;YACX,kBAAkB,EAAE,MAAA,OAAO,CAAC,kBAAkB,mCAAI,KAAK;YACvD,mBAAmB,EAAE,MAAA,OAAO,CAAC,mBAAmB,mCAAI,IAAI,EAAE,6CAA6C;SAC1G,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACpB;YACI,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,cAAc;SAC1B,EACD;YACI,YAAY,EAAE;gBACV,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;gBAC5B,OAAO,EAAE,EAAE;aACd;SACJ,CACJ,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;QAC5C,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,oBAAoB;QACpB,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAE9D,uCAAuC;QACvC,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAClC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;QAED,sDAAsD;QACtD,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,GAAG,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;MAGE;IACK,sBAAsB;QACzB,MAAM,eAAe,GAAgB,IAAI,GAAG,EAAE,CAAC;QAC/C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC5B,eAAe,CAAC,GAAG,CAAE,IAAI,CAAC,IAAqB,CAAC,OAAO,CAAC,CAAC;YAC7D,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;MAOE;IACK,2BAA2B,CAAC,OAAsC;QACrE,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QACpE,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC;IACvC,CAAC;IAED;;;MAGE;IACK,6BAA6B;QAChC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAChE,CAAC;QACD,IAAI,CAAC,mBAAmB,GAAG,SAAS,CAAC;IACzC,CAAC;IAED;;;;;MAKE;IACK,KAAK,CAAC,sBAAsB,CAAC,KAAe,EAAE,UAAkB;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;QACnD,MAAM,YAAY,GAAa,EAAE,CAAC;QAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,qCAAqC;YACrC,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,SAAS;YACb,CAAC;YAED,qBAAqB;YACrB,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAa,CAAC;gBACxD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAC/B,GAAG,CAAC,IAAI,CAAC,wBAAwB,IAAI,EAAE,CAAC,CAAC;gBACzC,qBAAqB;YACzB,CAAC;iBAAM,CAAC;gBACJ,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;QACL,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;YACpE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;YACjC,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,iBAAiB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;IACL,CAAC;IAED;;;MAGE;IACK,uBAAuB;QAC1B,6BAA6B;QAC7B,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACrC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACxB,KAAK,CAAC,IAAI,CAAE,IAAI,CAAC,IAAkB,CAAC,aAAa,CAAC,CAAC;gBACvD,8FAA8F;gBAC9F,sEAAsE;YACtE,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACnC,SAAS;YACb,CAAC;iBAAM,CAAC;gBACJ,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/B,CAAC;QACL,CAAC;QACD,kGAAkG;QAClG,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAE7C,OAAO,KAAK,CAAC;IACjB,CAAC;IAEO,yBAAyB;QAC7B,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAAE,OAAO;QAEtC,6BAA6B;QAC7B,MAAM,KAAK,GAAa,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAEvD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;MAIE;IACK,KAAK,CAAC,KAAK;QACd,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnB,uCAAuC;QACvC,IAAI,IAAI,CAAC,mBAAmB,EAAE,CAAC;YAC3B,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC9D,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;YAClC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;QAED,sDAAsD;QACtD,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,UAAU;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACnC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,GAAG,CAAC,WAAqB,CAAC,CAAC;QACnE,CAAC;IACL,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CAAC,UAAkB;QAC5C,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzG,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QACtE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YACrC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,gBAAgB,CAAC,GAAW,EAAE,UAAkB;QACzD,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAC3D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnB,GAAG,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;YACnD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,CAAC;IACL,CAAC;IAED;;OAEG;IACI,oBAAoB;QACvB,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,KAAiB,EAAE,+BAA+B,GAAG,KAAK;QACzE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC,uBAAuB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,+BAA+B;YAAE,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;MAKE;IACK,WAAW,CAAC,SAAmB;QAClC,MAAM,aAAa,GAAa,EAAE,CAAC;QACnC,mBAAmB;QACnB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBAC5B,GAAG,CAAC,IAAI,CAAC,iBAAiB,QAAQ,EAAE,CAAC,CAAC;YAC1C,CAAC;iBAAM,CAAC;gBACJ,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjC,CAAC;QACL,CAAC;QAED,IAAI,SAAS,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;YAC1C,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACrC,CAAC;QACD,6CAA6C;QAC7C,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC7E,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAEO,kBAAkB,CAAC,kBAAkB,GAAG,IAAI;QAChD,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,EAAE;YAC5B,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,iCAAiC;QAC1E,CAAC,CAAC;QACF,mEAAmE;QACnE,IAAI,kBAAkB,EAAE,CAAC;YACrB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;gBAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpB,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,iBAAiB;QACrB;;;;WAIG;QACH,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YACzE,OAAO,EAAE,KAAK,EAAE,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH;;;;WAIG;QACH,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACnE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YACjD,MAAM,UAAU,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAW,CAAC;YAEpF,qDAAqD;YACrD,OAAO,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;YAEjC,iBAAiB;YACjB,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,4GAA4G,CAAC;gBACzH,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpE,MAAM,IAAI,QAAQ,CACd,SAAS,CAAC,aAAa,EACvB,GAAG,CACN,CAAC;YACN,CAAC;YAED,mFAAmF;YAEnF,uCAAuC;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;iBACvC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAK,CAAC,CAAC,IAAkB,CAAC,aAAa,KAAK,IAAI,CAAC,CAAC,CAAC;YAC/G,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,MAAM,GAAG,GAAG,QAAQ,IAAI,gCAAgC,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzF,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpE,MAAM,IAAI,QAAQ,CACd,SAAS,CAAC,aAAa,EACvB,GAAG,CACN,CAAC;YACN,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,MAAM,GAAG,GAAG,8BAA8B,IAAI,EAAE,CAAC;gBACjD,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpE,MAAM,IAAI,QAAQ,CACd,SAAS,CAAC,aAAa,EACvB,GAAG,CACN,CAAC;YACN,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,gCAAgC,IAAI,CAAC,IAAI,CAAC,IAAI,oBAAoB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACnG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/B,MAAM,GAAG,GAAG,8BAA8B,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClJ,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACf,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC;gBACpE,MAAM,IAAI,QAAQ,CACd,SAAS,CAAC,aAAa,EACvB,GAAG,CACN,CAAC;YACN,CAAC;YAED,IAAI,CAAC;gBACD,uBAAuB;gBACvB,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC3B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAkB,CAAC;oBAC7C,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,IAAI,CAAC;wBAChC,IAAI;wBACJ,cAAc,EAAE,IAAI;wBACpB,SAAS,EAAE,IAAI,CAAC,MAAM;wBACtB,UAAU;qBACb,CAAW,CAAC;oBAEb,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;gBACtB,CAAC;gBAED,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;oBAC5B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAoB,CAAC;oBAC7C,IAAI,MAA0B,CAAC;oBAC/B,IAAI,CAAC;wBACD,MAAM,GAAG,MAAM,eAAe,CAAC,UAAU,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;wBACjE,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;4BAC9B,IAAI,EAAE,UAAU,CAAC,cAAc;4BAC/B,SAAS,EAAE,IAAI;yBAClB,EAAE,oBAAoB,EAAE;4BACrB,OAAO,EAAE,+BAA+B;yBAC3C,CAAC,CAAC;wBAEH,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC;oBACtB,CAAC;4BAAS,CAAC;wBACP,IAAI,MAAM;4BAAE,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;oBACrC,CAAC;gBACL,CAAC;gBAED,oBAAoB;gBACpB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;oBACxB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAiB,CAAC;oBAEzC,MAAM,WAAW,GAAqB;wBAClC,MAAM,EAAE,SAAS,CAAC,YAAY;qBACjC,CAAC;oBAEF,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,UAAoB,EAAE,WAAW,CAAC,CAAC;oBAE1G,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;wBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,+BAA+B,CAAC,CAAC;wBAC5E,OAAO,IAAI,CAAC,MAAM,KAAK,+BAA+B;4BAClD,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,QAAQ,8BAA8B,EAAE,EAAE;4BACzE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;oBACjC,CAAC,CAAC,CAAC;oBACH,OAAO,EAAE,OAAO,EAAE,CAAC;gBACvB,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,GAAG,CAAC,KAAK,CAAC,sBAAsB,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;gBAClD,MAAM,IAAI,QAAQ,CACd,SAAS,CAAC,aAAa,EACvB,2CAA2C,CAC9C,CAAC;YACN,CAAC;YAED,MAAM,GAAG,GAAG,iBAAiB,IAAI,EAAE,CAAC;YACpC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACf,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;gBACjC,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,GAAG;aACZ,CAAC,CAAC;YACH,MAAM,IAAI,QAAQ,CACd,SAAS,CAAC,aAAa,EACvB,GAAG,CACN,CAAC;QACN,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAoB;QAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,KAAK;QACP,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC9B,CAAC;CACJ"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import type { Input, ToolWrap } from '../types.js';
1
+ import type { Input, ToolEntry } from '../types.js';
2
2
  /**
3
3
  * Generates a unique server ID based on the provided URL.
4
4
  *
5
- * URL is used instead of Actor ID becase one Actor may expose multiple servers - legacy SSE / streamable HTTP.
5
+ * URL is used instead of Actor ID because one Actor may expose multiple servers - legacy SSE / streamable HTTP.
6
6
  *
7
7
  * @param url The URL to generate the server ID from.
8
8
  * @returns A unique server ID.
@@ -21,6 +21,6 @@ export declare function getProxyMCPServerToolName(url: string, toolName: string)
21
21
  * @param url
22
22
  * @param apifyToken
23
23
  */
24
- export declare function processParamsGetTools(url: string, apifyToken: string): Promise<ToolWrap[]>;
24
+ export declare function processParamsGetTools(url: string, apifyToken: string): Promise<ToolEntry[]>;
25
25
  export declare function parseInputParamsFromUrl(url: string): Input;
26
26
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/mcp/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAGnD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK/E;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uBAY1E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAI1D"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/mcp/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGpD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAIlD;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAK/E;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,wBAY1E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAI1D"}
package/dist/mcp/utils.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { parse } from 'node:querystring';
3
3
  import { processInput } from '../input.js';
4
- import { addTool, getActorsAsTools, removeTool } from '../tools/index.js';
4
+ import { addRemoveTools, getActorsAsTools } from '../tools/index.js';
5
5
  import { MAX_TOOL_NAME_LENGTH, SERVER_ID_LENGTH } from './const.js';
6
6
  /**
7
7
  * Generates a unique server ID based on the provided URL.
8
8
  *
9
- * URL is used instead of Actor ID becase one Actor may expose multiple servers - legacy SSE / streamable HTTP.
9
+ * URL is used instead of Actor ID because one Actor may expose multiple servers - legacy SSE / streamable HTTP.
10
10
  *
11
11
  * @param url The URL to generate the server ID from.
12
12
  * @returns A unique server ID.
@@ -41,7 +41,7 @@ export async function processParamsGetTools(url, apifyToken) {
41
41
  tools = await getActorsAsTools(actors, apifyToken);
42
42
  }
43
43
  if (input.enableAddingActors) {
44
- tools.push(addTool, removeTool);
44
+ tools.push(...addRemoveTools);
45
45
  }
46
46
  return tools;
47
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/mcp/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACtC,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAExE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAW,EAAE,QAAgB;IACnE,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAEnC,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC;IACzC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAW,EAAE,UAAkB;IACvE,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,KAAK,GAAe,EAAE,CAAC;IAC3B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,CAAC,MAAkB,CAAC;QACxC,0BAA0B;QAC1B,KAAK,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAW;IAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAqB,CAAC;IAChD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/mcp/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErE,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEpE;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACtC,MAAM,gBAAgB,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAExE,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,GAAW,EAAE,QAAgB;IACnE,MAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IAEnC,MAAM,QAAQ,GAAG,GAAG,MAAM,IAAI,QAAQ,EAAE,CAAC;IACzC,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAAW,EAAE,UAAkB;IACvE,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAC3C,IAAI,KAAK,GAAgB,EAAE,CAAC;IAC5B,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,KAAK,CAAC,MAAkB,CAAC;QACxC,0BAA0B;QAC1B,KAAK,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,GAAW;IAC/C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAqB,CAAC;IAChD,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAChC,CAAC"}
package/dist/stdio.js CHANGED
@@ -61,7 +61,7 @@ if (!process.env.APIFY_TOKEN) {
61
61
  async function main() {
62
62
  const mcpServer = new ActorsMcpServer({ enableAddingActors, enableDefaultActors: false });
63
63
  const tools = await getActorsAsTools(actorList.length ? actorList : defaults.actors, process.env.APIFY_TOKEN);
64
- mcpServer.updateTools(tools);
64
+ mcpServer.upsertTools(tools);
65
65
  // Start server
66
66
  const transport = new StdioServerTransport();
67
67
  await mcpServer.connect(transport);
@@ -1,5 +1,10 @@
1
- import type { ActorCallOptions } from 'apify-client';
2
- import type { ToolWrap } from '../types.js';
1
+ import type { ActorCallOptions, ActorRun, Dataset, PaginatedList } from 'apify-client';
2
+ import type { ToolEntry } from '../types.js';
3
+ export type CallActorGetDatasetResult = {
4
+ actorRun: ActorRun;
5
+ datasetInfo: Dataset | undefined;
6
+ items: PaginatedList<Record<string, unknown>>;
7
+ };
3
8
  /**
4
9
  * Calls an Apify actor and retrieves the dataset items.
5
10
  *
@@ -11,10 +16,11 @@ import type { ToolWrap } from '../types.js';
11
16
  * @param {ActorCallOptions} callOptions - The options to pass to the actor.
12
17
  * @param {unknown} input - The input to pass to the actor.
13
18
  * @param {string} apifyToken - The Apify token to use for authentication.
14
- * @returns {Promise<object[]>} - A promise that resolves to an array of dataset items.
19
+ * @param {number} limit - The maximum number of items to retrieve from the dataset.
20
+ * @returns {Promise<{ actorRun: any, items: object[] }>} - A promise that resolves to an object containing the actor run and dataset items.
15
21
  * @throws {Error} - Throws an error if the `APIFY_TOKEN` is not set
16
22
  */
17
- export declare function callActorGetDataset(actorName: string, input: unknown, apifyToken: string, callOptions?: ActorCallOptions | undefined): Promise<object[]>;
23
+ export declare function callActorGetDataset(actorName: string, input: unknown, apifyToken: string, callOptions?: ActorCallOptions | undefined, limit?: number): Promise<CallActorGetDatasetResult>;
18
24
  /**
19
25
  * This function is used to fetch normal non-MCP server Actors as a tool.
20
26
  *
@@ -36,6 +42,10 @@ export declare function callActorGetDataset(actorName: string, input: unknown, a
36
42
  * @param {string} apifyToken - The Apify token to use for authentication.
37
43
  * @returns {Promise<Tool[]>} - A promise that resolves to an array of MCP tools.
38
44
  */
39
- export declare function getNormalActorsAsTools(actors: string[], apifyToken: string): Promise<ToolWrap[]>;
40
- export declare function getActorsAsTools(actors: string[], apifyToken: string): Promise<ToolWrap[]>;
45
+ export declare function getNormalActorsAsTools(actors: string[], apifyToken: string): Promise<ToolEntry[]>;
46
+ export declare function getActorsAsTools(actors: string[], apifyToken: string): Promise<ToolEntry[]>;
47
+ /**
48
+ * https://docs.apify.com/api/v2/act-get
49
+ */
50
+ export declare const getActor: ToolEntry;
41
51
  //# sourceMappingURL=actor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/tools/actor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUrD,OAAO,KAAK,EAAkB,QAAQ,EAAE,MAAM,aAAa,CAAC;AAgB5D;;;;;;;;;;;;;GAaG;AACH,wBAAsB,mBAAmB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,gBAAgB,GAAG,SAAqB,GACtD,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBnB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,EAAE,CAAC,CA8DrB;AAwBD,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAuBrB"}
1
+ {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/tools/actor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAmBvF,OAAO,KAAK,EAAgC,SAAS,EAAE,MAAM,aAAa,CAAC;AAc3E,MAAM,MAAM,yBAAyB,GAAG;IACpC,QAAQ,EAAE,QAAQ,CAAC;IACnB,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IACjC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACjD,CAAC;AAOF;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,mBAAmB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,OAAO,EACd,UAAU,EAAE,MAAM,EAClB,WAAW,GAAE,gBAAgB,GAAG,SAAqB,EACrD,KAAK,SAAqC,GAC3C,OAAO,CAAC,yBAAyB,CAAC,CAoBpC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,EAAE,CAAC,CA6DtB;AAwBD,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,SAAS,EAAE,CAAC,CAuBtB;AAMD;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,SAqBtB,CAAC"}
@@ -1,13 +1,16 @@
1
1
  import { Ajv } from 'ajv';
2
+ import { z } from 'zod';
3
+ import zodToJsonSchema from 'zod-to-json-schema';
2
4
  import { LruCache } from '@apify/datastructures';
3
5
  import log from '@apify/log';
4
6
  import { ApifyClient } from '../apify-client.js';
5
- import { ACTOR_ADDITIONAL_INSTRUCTIONS, ACTOR_MAX_MEMORY_MBYTES, TOOL_CACHE_MAX_SIZE, TOOL_CACHE_TTL_SECS } from '../const.js';
7
+ import { ACTOR_ADDITIONAL_INSTRUCTIONS, ACTOR_MAX_MEMORY_MBYTES, ACTOR_RUN_DATASET_OUTPUT_MAX_ITEMS, HelperTools, TOOL_CACHE_MAX_SIZE, TOOL_CACHE_TTL_SECS, } from '../const.js';
6
8
  import { getActorsMCPServerURL, isActorMCPServer } from '../mcp/actors.js';
7
9
  import { createMCPClient } from '../mcp/client.js';
8
10
  import { getMCPServerTools } from '../mcp/proxy.js';
9
11
  import { getActorDefinition } from './build.js';
10
12
  import { actorNameToToolName, addEnumsToDescriptionsWithExamples, buildNestedProperties, filterSchemaProperties, markInputPropertiesAsRequired, shortenProperties, } from './utils.js';
13
+ const ajv = new Ajv({ coerceTypes: 'array', strict: false });
11
14
  // Cache for normal Actor tools
12
15
  const normalActorToolsCache = new LruCache({
13
16
  maxLength: TOOL_CACHE_MAX_SIZE,
@@ -23,22 +26,26 @@ const normalActorToolsCache = new LruCache({
23
26
  * @param {ActorCallOptions} callOptions - The options to pass to the actor.
24
27
  * @param {unknown} input - The input to pass to the actor.
25
28
  * @param {string} apifyToken - The Apify token to use for authentication.
26
- * @returns {Promise<object[]>} - A promise that resolves to an array of dataset items.
29
+ * @param {number} limit - The maximum number of items to retrieve from the dataset.
30
+ * @returns {Promise<{ actorRun: any, items: object[] }>} - A promise that resolves to an object containing the actor run and dataset items.
27
31
  * @throws {Error} - Throws an error if the `APIFY_TOKEN` is not set
28
32
  */
29
- export async function callActorGetDataset(actorName, input, apifyToken, callOptions = undefined) {
30
- const name = actorName;
33
+ export async function callActorGetDataset(actorName, input, apifyToken, callOptions = undefined, limit = ACTOR_RUN_DATASET_OUTPUT_MAX_ITEMS) {
31
34
  try {
32
- log.info(`Calling Actor ${name} with input: ${JSON.stringify(input)}`);
35
+ log.info(`Calling Actor ${actorName} with input: ${JSON.stringify(input)}`);
33
36
  const client = new ApifyClient({ token: apifyToken });
34
- const actorClient = client.actor(name);
35
- const results = await actorClient.call(input, callOptions);
36
- const dataset = await client.dataset(results.defaultDatasetId).listItems();
37
- log.info(`Actor ${name} finished with ${dataset.items.length} items`);
38
- return dataset.items;
37
+ const actorClient = client.actor(actorName);
38
+ const actorRun = await actorClient.call(input, callOptions);
39
+ const dataset = client.dataset(actorRun.defaultDatasetId);
40
+ const [datasetInfo, items] = await Promise.all([
41
+ dataset.get(),
42
+ dataset.listItems({ limit }),
43
+ ]);
44
+ log.info(`Actor ${actorName} finished with ${datasetInfo === null || datasetInfo === void 0 ? void 0 : datasetInfo.itemCount} items`);
45
+ return { actorRun, datasetInfo, items };
39
46
  }
40
47
  catch (error) {
41
- log.error(`Error calling actor: ${error}. Actor: ${name}, input: ${JSON.stringify(input)}`);
48
+ log.error(`Error calling actor: ${error}. Actor: ${actorName}, input: ${JSON.stringify(input)}`);
42
49
  throw new Error(`Error calling Actor: ${error}`);
43
50
  }
44
51
  }
@@ -79,7 +86,6 @@ export async function getNormalActorsAsTools(actors, apifyToken) {
79
86
  if (actorsToLoad.length === 0) {
80
87
  return tools;
81
88
  }
82
- const ajv = new Ajv({ coerceTypes: 'array', strict: false });
83
89
  const getActorDefinitionWithToken = async (actorId) => {
84
90
  return await getActorDefinition(actorId, apifyToken);
85
91
  };
@@ -165,4 +171,32 @@ export async function getActorsAsTools(actors, apifyToken) {
165
171
  const mcpServerTools = await getMCPServersAsTools(actorsMCPServers, apifyToken);
166
172
  return [...normalTools, ...mcpServerTools];
167
173
  }
174
+ const getActorArgs = z.object({
175
+ actorId: z.string().describe('Actor ID or a tilde-separated owner\'s username and Actor name.'),
176
+ });
177
+ /**
178
+ * https://docs.apify.com/api/v2/act-get
179
+ */
180
+ export const getActor = {
181
+ type: 'internal',
182
+ tool: {
183
+ name: HelperTools.ACTOR_GET,
184
+ actorFullName: HelperTools.ACTOR_GET,
185
+ description: 'Gets an object that contains all the details about a specific Actor.'
186
+ + 'Actor basic information (ID, name, owner, description)'
187
+ + 'Statistics (number of runs, users, etc.)'
188
+ + 'Available versions, and configuration details'
189
+ + 'Use Actor ID or Actor full name, separated by tilde username~name.',
190
+ inputSchema: zodToJsonSchema(getActorArgs),
191
+ ajvValidate: ajv.compile(zodToJsonSchema(getActorArgs)),
192
+ call: async (toolArgs) => {
193
+ const { args, apifyToken } = toolArgs;
194
+ const parsed = getActorArgs.parse(args);
195
+ const client = new ApifyClient({ token: apifyToken });
196
+ // Get Actor - contains a lot of irrelevant information
197
+ const actor = await client.actor(parsed.actorId).get();
198
+ return { content: [{ type: 'text', text: JSON.stringify(actor) }] };
199
+ },
200
+ },
201
+ };
168
202
  //# sourceMappingURL=actor.js.map