@apify/actors-mcp-server 0.1.22-beta.1 → 0.1.22-beta.11

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 (80) hide show
  1. package/README.md +65 -2
  2. package/dist/actor/server.d.ts +1 -1
  3. package/dist/actor/server.d.ts.map +1 -1
  4. package/dist/actor/server.js +4 -3
  5. package/dist/actor/server.js.map +1 -1
  6. package/dist/actor/types.d.ts +0 -7
  7. package/dist/actor/types.d.ts.map +1 -1
  8. package/dist/actor/utils.d.ts +1 -9
  9. package/dist/actor/utils.d.ts.map +1 -1
  10. package/dist/actor/utils.js +0 -24
  11. package/dist/actor/utils.js.map +1 -1
  12. package/dist/{tools/mcp-apify-client.d.ts → apify-client.d.ts} +1 -1
  13. package/dist/apify-client.d.ts.map +1 -0
  14. package/dist/{tools/mcp-apify-client.js → apify-client.js} +3 -2
  15. package/dist/apify-client.js.map +1 -0
  16. package/dist/const.d.ts +1 -0
  17. package/dist/const.d.ts.map +1 -1
  18. package/dist/const.js +1 -0
  19. package/dist/const.js.map +1 -1
  20. package/dist/index.d.ts +1 -1
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +1 -1
  23. package/dist/index.js.map +1 -1
  24. package/dist/input.d.ts.map +1 -0
  25. package/dist/input.js.map +1 -0
  26. package/dist/main.d.ts.map +1 -1
  27. package/dist/main.js +13 -3
  28. package/dist/main.js.map +1 -1
  29. package/dist/mcp/actors.d.ts +4 -0
  30. package/dist/mcp/actors.d.ts.map +1 -0
  31. package/dist/mcp/actors.js +18 -0
  32. package/dist/mcp/actors.js.map +1 -0
  33. package/dist/mcp/client.d.ts +6 -0
  34. package/dist/mcp/client.d.ts.map +1 -0
  35. package/dist/mcp/client.js +33 -0
  36. package/dist/mcp/client.js.map +1 -0
  37. package/dist/mcp/const.d.ts +3 -0
  38. package/dist/mcp/const.d.ts.map +1 -0
  39. package/dist/mcp/const.js +3 -0
  40. package/dist/mcp/const.js.map +1 -0
  41. package/dist/mcp/proxy.d.ts +4 -0
  42. package/dist/mcp/proxy.d.ts.map +1 -0
  43. package/dist/mcp/proxy.js +29 -0
  44. package/dist/mcp/proxy.js.map +1 -0
  45. package/dist/{mcp-server.d.ts → mcp/server.d.ts} +6 -4
  46. package/dist/mcp/server.d.ts.map +1 -0
  47. package/dist/{mcp-server.js → mcp/server.js} +33 -11
  48. package/dist/mcp/server.js.map +1 -0
  49. package/dist/mcp/utils.d.ts +36 -0
  50. package/dist/mcp/utils.d.ts.map +1 -0
  51. package/dist/mcp/utils.js +94 -0
  52. package/dist/mcp/utils.js.map +1 -0
  53. package/dist/stdio.js +2 -2
  54. package/dist/stdio.js.map +1 -1
  55. package/dist/tools/actor.d.ts +4 -1
  56. package/dist/tools/actor.d.ts.map +1 -1
  57. package/dist/tools/actor.js +50 -3
  58. package/dist/tools/actor.js.map +1 -1
  59. package/dist/tools/build.d.ts +1 -1
  60. package/dist/tools/build.d.ts.map +1 -1
  61. package/dist/tools/build.js +5 -5
  62. package/dist/tools/build.js.map +1 -1
  63. package/dist/tools/helpers.js +2 -2
  64. package/dist/tools/helpers.js.map +1 -1
  65. package/dist/tools/store_collection.d.ts +1 -1
  66. package/dist/tools/store_collection.d.ts.map +1 -1
  67. package/dist/tools/store_collection.js +5 -5
  68. package/dist/tools/store_collection.js.map +1 -1
  69. package/dist/tsconfig.tsbuildinfo +1 -1
  70. package/dist/types.d.ts +25 -2
  71. package/dist/types.d.ts.map +1 -1
  72. package/package.json +1 -1
  73. package/dist/actor/input.d.ts.map +0 -1
  74. package/dist/actor/input.js.map +0 -1
  75. package/dist/mcp-server.d.ts.map +0 -1
  76. package/dist/mcp-server.js.map +0 -1
  77. package/dist/tools/mcp-apify-client.d.ts.map +0 -1
  78. package/dist/tools/mcp-apify-client.js.map +0 -1
  79. /package/dist/{actor/input.d.ts → input.d.ts} +0 -0
  80. /package/dist/{actor/input.js → input.js} +0 -0
@@ -4,11 +4,12 @@
4
4
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
5
  import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
6
6
  import log from '@apify/log';
7
- import { ACTOR_OUTPUT_MAX_CHARS_PER_ITEM, ACTOR_OUTPUT_TRUNCATED_MESSAGE, SERVER_NAME, SERVER_VERSION, } from './const.js';
8
- import { actorDefinitionTool, callActorGetDataset, getActorsAsTools, searchTool } from './tools/index.js';
9
- import { defaults } from './const.js';
10
- import { actorNameToToolName } from './tools/utils.js';
11
- import { processParamsGetTools } from './actor/utils.js';
7
+ import { ACTOR_OUTPUT_MAX_CHARS_PER_ITEM, ACTOR_OUTPUT_TRUNCATED_MESSAGE, SERVER_NAME, SERVER_VERSION, } from '../const.js';
8
+ import { actorDefinitionTool, callActorGetDataset, getActorsAsTools, searchTool } from '../tools/index.js';
9
+ import { defaults } from '../const.js';
10
+ import { actorNameToToolName } from '../tools/utils.js';
11
+ import { processParamsGetTools } from './utils.js';
12
+ import { createMCPClient } from './client.js';
12
13
  /**
13
14
  * Create Apify MCP server
14
15
  */
@@ -33,19 +34,21 @@ export class ActorsMcpServer {
33
34
  /**
34
35
  * Loads missing default tools.
35
36
  */
36
- async loadDefaultTools() {
37
+ async loadDefaultTools(apifyToken) {
37
38
  const missingDefaultTools = defaults.actors.filter(name => !this.tools.has(actorNameToToolName(name)));
38
- const tools = await getActorsAsTools(missingDefaultTools);
39
+ const tools = await getActorsAsTools(missingDefaultTools, apifyToken);
39
40
  if (tools.length > 0)
40
41
  this.updateTools(tools);
41
42
  }
42
43
  /**
43
44
  * Loads tools from URL params.
44
45
  *
46
+ * This method also handles enabling of Actor auto loading via the processParamsGetTools.
47
+ *
45
48
  * Used primarily for SSE.
46
49
  */
47
- async loadToolsFromUrl(url) {
48
- const tools = await processParamsGetTools(url);
50
+ async loadToolsFromUrl(url, apifyToken) {
51
+ const tools = await processParamsGetTools(url, apifyToken);
49
52
  if (tools.length > 0)
50
53
  this.updateTools(tools);
51
54
  }
@@ -95,7 +98,9 @@ export class ActorsMcpServer {
95
98
  */
96
99
  this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
97
100
  const { name, arguments: args } = request.params;
98
- const apifyToken = request.params.apifyToken || process.env.APIFY_TOKEN;
101
+ const apifyToken = (request.params.apifyToken || process.env.APIFY_TOKEN);
102
+ // Remove apifyToken from request.params just in case
103
+ delete request.params.apifyToken;
99
104
  // Validate token
100
105
  if (!apifyToken) {
101
106
  throw new Error('APIFY_TOKEN is required but not set in the environment variables or passed as a parameter.');
@@ -122,9 +127,26 @@ export class ActorsMcpServer {
122
127
  args,
123
128
  apifyMcpServer: this,
124
129
  mcpServer: this.server,
130
+ apifyToken,
125
131
  });
126
132
  return { ...res };
127
133
  }
134
+ if (tool.type === 'actor-mcp') {
135
+ const serverTool = tool.tool;
136
+ let client;
137
+ try {
138
+ client = await createMCPClient(serverTool.serverUrl, apifyToken);
139
+ const res = await client.callTool({
140
+ name: serverTool.originToolName,
141
+ arguments: args,
142
+ });
143
+ return { ...res };
144
+ }
145
+ finally {
146
+ if (client)
147
+ await client.close();
148
+ }
149
+ }
128
150
  // Handle actor tool
129
151
  if (tool.type === 'actor') {
130
152
  const actorTool = tool.tool;
@@ -152,4 +174,4 @@ export class ActorsMcpServer {
152
174
  await this.server.connect(transport);
153
175
  }
154
176
  }
155
- //# sourceMappingURL=mcp-server.js.map
177
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AACA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAEnE,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAGnG,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EACH,+BAA+B,EAC/B,8BAA8B,EAC9B,WAAW,EACX,cAAc,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE3G,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG9C;;GAEG;AACH,MAAM,OAAO,eAAe;IACjB,MAAM,CAAS;IACf,KAAK,CAAwB;IAEpC;QACI,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;aAC/B;SACJ,CACJ,CAAC;QACF,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAC1B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,oBAAoB;QACpB,IAAI,CAAC,WAAW,CAAC,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,gBAAgB,CAAC,UAAkB;QAC5C,MAAM,mBAAmB,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvG,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QACtE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAClD,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;YAAE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACI,WAAW,CAAC,KAAiB;QAChC,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,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,YAAY;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAEO,kBAAkB;QACtB,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,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;YAC5B,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAEO,iBAAiB;QACrB;;;;WAIG;QACH,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;YAC7D,4EAA4E;YAC5E,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,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAC;YAClH,CAAC;YAED,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,8DAA8D;gBAC9D,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,IAAI,EAAE,CAAC;gBACR,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;YAC3D,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,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3J,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,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;gBAEL,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,uBAAuB,KAAK,EAAE,CAAC,CAAC;gBAC1C,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,QAAQ,IAAI,qBAAqB,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACP,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,SAAoB;QAC9B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;CACJ"}
@@ -0,0 +1,36 @@
1
+ import type { ToolWrap } from '../types.js';
2
+ import { Input } from "../types.js";
3
+ import { ActorDefinition } from "apify-client";
4
+ /**
5
+ * Generates a unique server ID based on the provided URL.
6
+ *
7
+ * URL is used instead of Actor ID becase one Actor may expose multiple servers - legacy SSE / streamable HTTP.
8
+ *
9
+ * @param url The URL to generate the server ID from.
10
+ * @returns A unique server ID.
11
+ */
12
+ export declare function getMCPServerID(url: string): string;
13
+ /**
14
+ * Generates a unique tool name based on the provided URL and tool name.
15
+ * @param url The URL to generate the tool name from.
16
+ * @param toolName The tool name to generate the tool name from.
17
+ * @returns A unique tool name.
18
+ */
19
+ export declare function getProxyMCPServerToolName(url: string, toolName: string): string;
20
+ /**
21
+ * Process input parameters and get tools
22
+ * If URL contains query parameter `actors`, return tools from Actors otherwise return null.
23
+ * @param url
24
+ */
25
+ export declare function processParamsGetTools(url: string, apifyToken: string): Promise<ToolWrap[]>;
26
+ export declare function parseInputParamsFromUrl(url: string): Input;
27
+ /**
28
+ * Returns standby URL for given Actor ID.
29
+ *
30
+ * @param actorID
31
+ * @param standbyBaseUrl
32
+ * @returns
33
+ */
34
+ export declare function getActorStandbyURL(actorID: string, standbyBaseUrl?: string): string;
35
+ export declare function getActorDefinition(actorID: string, apifyToken: string): Promise<ActorDefinition>;
36
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/mcp/utils.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C;;;;;;;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;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,uBAY1E;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAI1D;AAED;;;;;;EAME;AACF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,SAAgB,GAAG,MAAM,CAW1F;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAuBtG"}
@@ -0,0 +1,94 @@
1
+ import { createHash } from "node:crypto";
2
+ import { MAX_TOOL_NAME_LENGTH, SERVER_ID_LENGTH } from "./const.js";
3
+ import { parse } from 'node:querystring';
4
+ import { processInput } from '../input.js';
5
+ import { addTool, getActorsAsTools, removeTool } from '../tools/index.js';
6
+ import { APIFY_USERNAME } from "../const.js";
7
+ import { ApifyClient } from "../apify-client.js";
8
+ /**
9
+ * Generates a unique server ID based on the provided URL.
10
+ *
11
+ * URL is used instead of Actor ID becase one Actor may expose multiple servers - legacy SSE / streamable HTTP.
12
+ *
13
+ * @param url The URL to generate the server ID from.
14
+ * @returns A unique server ID.
15
+ */
16
+ export function getMCPServerID(url) {
17
+ const serverHashDigest = createHash('sha256').update(url).digest('hex');
18
+ return serverHashDigest.slice(0, SERVER_ID_LENGTH);
19
+ }
20
+ /**
21
+ * Generates a unique tool name based on the provided URL and tool name.
22
+ * @param url The URL to generate the tool name from.
23
+ * @param toolName The tool name to generate the tool name from.
24
+ * @returns A unique tool name.
25
+ */
26
+ export function getProxyMCPServerToolName(url, toolName) {
27
+ const prefix = getMCPServerID(url);
28
+ const fullName = `${prefix}-${toolName}`;
29
+ return fullName.slice(0, MAX_TOOL_NAME_LENGTH);
30
+ }
31
+ /**
32
+ * Process input parameters and get tools
33
+ * If URL contains query parameter `actors`, return tools from Actors otherwise return null.
34
+ * @param url
35
+ */
36
+ export async function processParamsGetTools(url, apifyToken) {
37
+ const input = parseInputParamsFromUrl(url);
38
+ let tools = [];
39
+ if (input.actors) {
40
+ const actors = input.actors;
41
+ // Normal Actors as a tool
42
+ tools = await getActorsAsTools(actors, apifyToken);
43
+ }
44
+ if (input.enableActorAutoLoading) {
45
+ tools.push(addTool, removeTool);
46
+ }
47
+ return tools;
48
+ }
49
+ export function parseInputParamsFromUrl(url) {
50
+ const query = url.split('?')[1] || '';
51
+ const params = parse(query);
52
+ return processInput(params);
53
+ }
54
+ /**
55
+ * Returns standby URL for given Actor ID.
56
+ *
57
+ * @param actorID
58
+ * @param standbyBaseUrl
59
+ * @returns
60
+ */
61
+ export function getActorStandbyURL(actorID, standbyBaseUrl = 'apify.actor') {
62
+ const actorOwner = actorID.split('/')[0];
63
+ const actorName = actorID.split('/')[1];
64
+ if (!actorOwner || !actorName) {
65
+ throw new Error(`Invalid actor ID: ${actorID}`);
66
+ }
67
+ const actorOwnerDNSFriendly = actorOwner.replace('.', '-');
68
+ const prefix = actorOwner === APIFY_USERNAME ? '' : `${actorOwnerDNSFriendly}--`;
69
+ return `https://${prefix}${actorName}.${standbyBaseUrl}`;
70
+ }
71
+ export async function getActorDefinition(actorID, apifyToken) {
72
+ const apifyClient = new ApifyClient({ token: apifyToken
73
+ });
74
+ const actor = apifyClient.actor(actorID);
75
+ const info = await actor.get();
76
+ if (!info) {
77
+ throw new Error(`Actor ${actorID} not found`);
78
+ }
79
+ const latestBuildID = info.taggedBuilds?.['latest']?.buildId;
80
+ if (!latestBuildID) {
81
+ throw new Error(`Actor ${actorID} does not have a latest build`);
82
+ }
83
+ const build = apifyClient.build(latestBuildID);
84
+ const buildInfo = await build.get();
85
+ if (!buildInfo) {
86
+ throw new Error(`Build ${latestBuildID} not found`);
87
+ }
88
+ const actorDefinition = buildInfo.actorDefinition;
89
+ if (!actorDefinition) {
90
+ throw new Error(`Build ${latestBuildID} does not have an actor definition`);
91
+ }
92
+ return actorDefinition;
93
+ }
94
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/mcp/utils.ts"],"names":[],"mappings":"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"}
package/dist/stdio.js CHANGED
@@ -15,7 +15,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
15
15
  import minimist from 'minimist';
16
16
  import log from '@apify/log';
17
17
  import { defaults } from './const.js';
18
- import { ActorsMcpServer } from './mcp-server.js';
18
+ import { ActorsMcpServer } from './mcp/server.js';
19
19
  import { addTool, removeTool, getActorsAsTools } from './tools/index.js';
20
20
  // Configure logging, set to ERROR
21
21
  log.setLevel(log.LEVELS.ERROR);
@@ -30,7 +30,7 @@ if (!process.env.APIFY_TOKEN) {
30
30
  async function main() {
31
31
  const mcpServer = new ActorsMcpServer();
32
32
  // Initialize tools
33
- const tools = await getActorsAsTools(actorList.length ? actorList : defaults.actors);
33
+ const tools = await getActorsAsTools(actorList.length ? actorList : defaults.actors, process.env.APIFY_TOKEN);
34
34
  if (enableActorAutoLoading) {
35
35
  tools.push(addTool, removeTool);
36
36
  }
package/dist/stdio.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,kCAAkC;AAClC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE/B,+BAA+B;AAC/B,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,sBAAsB,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAE/E,uBAAuB;AACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAC3B,GAAG,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;IAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,IAAI;IACf,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IACxC,mBAAmB;IACnB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACrF,IAAI,sBAAsB,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAE7B,eAAe;IACf,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACnB,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzE,kCAAkC;AAClC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE/B,+BAA+B;AAC/B,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,sBAAsB,GAAG,KAAK,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACxF,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAE/E,uBAAuB;AACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;IAC3B,GAAG,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;IAC/E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,IAAI;IACf,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;IACxC,mBAAmB;IACnB,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,WAAqB,CAAC,CAAC;IACxH,IAAI,sBAAsB,EAAE,CAAC;QACzB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAE7B,eAAe;IACf,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACnB,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAClC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC,CAAC,CAAC"}
@@ -16,6 +16,8 @@ import type { ToolWrap } from '../types.js';
16
16
  */
17
17
  export declare function callActorGetDataset(actorName: string, input: unknown, apifyToken: string, callOptions?: ActorCallOptions | undefined): Promise<object[]>;
18
18
  /**
19
+ * This function is used to fetch normal non-MCP server Actors as a tool.
20
+ *
19
21
  * Fetches actor input schemas by Actor IDs or Actor full names and creates MCP tools.
20
22
  *
21
23
  * This function retrieves the input schemas for the specified actors and compiles them into MCP tools.
@@ -33,5 +35,6 @@ export declare function callActorGetDataset(actorName: string, input: unknown, a
33
35
  * @param {string[]} actors - An array of actor IDs or Actor full names.
34
36
  * @returns {Promise<Tool[]>} - A promise that resolves to an array of MCP tools.
35
37
  */
36
- export declare function getActorsAsTools(actors: string[]): Promise<ToolWrap[]>;
38
+ export declare function getNormalActorsAsTools(actors: string[], apifyToken: string): Promise<ToolWrap[]>;
39
+ export declare function getActorsAsTools(actors: string[], apifyToken: string): Promise<ToolWrap[]>;
37
40
  //# sourceMappingURL=actor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/tools/actor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAa5C;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAgC5E"}
1
+ {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/tools/actor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAiB5C;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAoCrB;AAwBD,wBAAsB,gBAAgB,CAClC,MAAM,EAAE,MAAM,EAAE,EAChB,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,QAAQ,EAAE,CAAC,CAsBrB"}
@@ -2,8 +2,11 @@ import { Ajv } from 'ajv';
2
2
  import log from '@apify/log';
3
3
  import { getActorDefinition } from './build.js';
4
4
  import { ACTOR_ADDITIONAL_INSTRUCTIONS, ACTOR_MAX_MEMORY_MBYTES } from '../const.js';
5
- import { ApifyClient } from './mcp-apify-client.js';
5
+ import { ApifyClient } from '../apify-client.js';
6
6
  import { actorNameToToolName, addEnumsToDescriptionsWithExamples, buildNestedProperties, filterSchemaProperties, markInputPropertiesAsRequired, shortenProperties, } from './utils.js';
7
+ import { getActorsMCPServerURL, isActorMCPServer } from '../mcp/actors.js';
8
+ import { createMCPClient } from '../mcp/client.js';
9
+ import { getMCPServerTools } from '../mcp/proxy.js';
7
10
  /**
8
11
  * Calls an Apify actor and retrieves the dataset items.
9
12
  *
@@ -35,6 +38,8 @@ export async function callActorGetDataset(actorName, input, apifyToken, callOpti
35
38
  }
36
39
  }
37
40
  /**
41
+ * This function is used to fetch normal non-MCP server Actors as a tool.
42
+ *
38
43
  * Fetches actor input schemas by Actor IDs or Actor full names and creates MCP tools.
39
44
  *
40
45
  * This function retrieves the input schemas for the specified actors and compiles them into MCP tools.
@@ -52,9 +57,13 @@ export async function callActorGetDataset(actorName, input, apifyToken, callOpti
52
57
  * @param {string[]} actors - An array of actor IDs or Actor full names.
53
58
  * @returns {Promise<Tool[]>} - A promise that resolves to an array of MCP tools.
54
59
  */
55
- export async function getActorsAsTools(actors) {
60
+ export async function getNormalActorsAsTools(actors, apifyToken) {
56
61
  const ajv = new Ajv({ coerceTypes: 'array', strict: false });
57
- const results = await Promise.all(actors.map(getActorDefinition));
62
+ const getActorDefinitionWithToken = async (actorId) => {
63
+ const actor = await getActorDefinition(actorId, apifyToken);
64
+ return actor;
65
+ };
66
+ const results = await Promise.all(actors.map(getActorDefinitionWithToken));
58
67
  const tools = [];
59
68
  for (const result of results) {
60
69
  if (result) {
@@ -86,4 +95,42 @@ export async function getActorsAsTools(actors) {
86
95
  }
87
96
  return tools;
88
97
  }
98
+ async function getMCPServersAsTools(actors, apifyToken) {
99
+ const actorsMCPServerTools = [];
100
+ for (const actorID of actors) {
101
+ const serverUrl = await getActorsMCPServerURL(actorID, apifyToken);
102
+ log.info(`ActorID: ${actorID} MCP server URL: ${serverUrl}`);
103
+ let client;
104
+ try {
105
+ client = await createMCPClient(serverUrl, apifyToken);
106
+ const serverTools = await getMCPServerTools(actorID, client, serverUrl);
107
+ actorsMCPServerTools.push(...serverTools);
108
+ }
109
+ finally {
110
+ if (client)
111
+ await client.close();
112
+ }
113
+ }
114
+ return actorsMCPServerTools;
115
+ }
116
+ export async function getActorsAsTools(actors, apifyToken) {
117
+ log.debug(`Fetching actors as tools...`);
118
+ log.debug(`Actors: ${actors}`);
119
+ // Actorized MCP servers
120
+ const actorsMCPServers = [];
121
+ for (const actorID of actors) {
122
+ if (await isActorMCPServer(actorID, apifyToken)) {
123
+ actorsMCPServers.push(actorID);
124
+ }
125
+ }
126
+ // Normal Actors as a tool
127
+ const toolActors = actors.filter((actorID) => !actorsMCPServers.includes(actorID));
128
+ log.debug(`actorsMCPserver: ${actorsMCPServers}`);
129
+ log.debug(`toolActors: ${toolActors}`);
130
+ // Normal Actors as a tool
131
+ const normalTools = await getNormalActorsAsTools(toolActors, apifyToken);
132
+ // Tools from Actorized MCP servers
133
+ const mcpServerTools = await getMCPServersAsTools(actorsMCPServers, apifyToken);
134
+ return [...normalTools, ...mcpServerTools];
135
+ }
89
136
  //# sourceMappingURL=actor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"actor.js","sourceRoot":"","sources":["../../src/tools/actor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actor.js","sourceRoot":"","sources":["../../src/tools/actor.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,6 @@ import type { ActorDefinitionPruned, ToolWrap } from '../types.js';
7
7
  * @param {number} limit - Truncate the README to this limit.
8
8
  * @returns {Promise<ActorDefinitionWithDesc | null>} - The actor definition with description or null if not found.
9
9
  */
10
- export declare function getActorDefinition(actorIdOrName: string, limit?: number): Promise<ActorDefinitionPruned | null>;
10
+ export declare function getActorDefinition(actorIdOrName: string, apifyToken: string, limit?: number): Promise<ActorDefinitionPruned | null>;
11
11
  export declare const actorDefinitionTool: ToolWrap;
12
12
  //# sourceMappingURL=build.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/tools/build.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qBAAqB,EAA4D,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK7H;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,GAAE,MAAgC,GAAG,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAsC9I;AA6CD,eAAO,MAAM,mBAAmB,EAAE,QAuBjC,CAAC"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/tools/build.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,qBAAqB,EAA4D,QAAQ,EAAE,MAAM,aAAa,CAAC;AAK7H;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACpC,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAgC,GACxC,OAAO,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAsCvC;AA6CD,eAAO,MAAM,mBAAmB,EAAE,QAuBjC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Ajv } from 'ajv';
2
- import { ApifyClient } from 'apify-client';
2
+ import { ApifyClient } from '../apify-client.js';
3
3
  import { z } from 'zod';
4
4
  import zodToJsonSchema from 'zod-to-json-schema';
5
5
  import log from '@apify/log';
@@ -14,8 +14,8 @@ const ajv = new Ajv({ coerceTypes: 'array', strict: false });
14
14
  * @param {number} limit - Truncate the README to this limit.
15
15
  * @returns {Promise<ActorDefinitionWithDesc | null>} - The actor definition with description or null if not found.
16
16
  */
17
- export async function getActorDefinition(actorIdOrName, limit = ACTOR_README_MAX_LENGTH) {
18
- const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
17
+ export async function getActorDefinition(actorIdOrName, apifyToken, limit = ACTOR_README_MAX_LENGTH) {
18
+ const client = new ApifyClient({ token: apifyToken });
19
19
  const actorClient = client.actor(actorIdOrName);
20
20
  try {
21
21
  // Fetch actor details
@@ -106,9 +106,9 @@ export const actorDefinitionTool = {
106
106
  inputSchema: zodToJsonSchema(GetActorDefinitionArgsSchema),
107
107
  ajvValidate: ajv.compile(zodToJsonSchema(GetActorDefinitionArgsSchema)),
108
108
  call: async (toolArgs) => {
109
- const { args } = toolArgs;
109
+ const { args, apifyToken } = toolArgs;
110
110
  const parsed = GetActorDefinitionArgsSchema.parse(args);
111
- const v = await getActorDefinition(parsed.actorName, parsed.limit);
111
+ const v = await getActorDefinition(parsed.actorName, apifyToken, parsed.limit);
112
112
  if (v && v.input && 'properties' in v.input && v.input) {
113
113
  const properties = filterSchemaProperties(v.input.properties);
114
114
  v.input.properties = shortenProperties(properties);
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/tools/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/tools/build.ts"],"names":[],"mappings":"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"}
@@ -22,9 +22,9 @@ export const addTool = {
22
22
  ajvValidate: ajv.compile(zodToJsonSchema(AddToolArgsSchema)),
23
23
  // TODO: I don't like that we are passing apifyMcpServer and mcpServer to the tool
24
24
  call: async (toolArgs) => {
25
- const { apifyMcpServer, mcpServer, args } = toolArgs;
25
+ const { apifyMcpServer, mcpServer, apifyToken, args } = toolArgs;
26
26
  const parsed = AddToolArgsSchema.parse(args);
27
- const tools = await getActorsAsTools([parsed.actorName]);
27
+ const tools = await getActorsAsTools([parsed.actorName], apifyToken);
28
28
  const toolsAdded = apifyMcpServer.updateTools(tools);
29
29
  await mcpServer.notification({ method: 'notifications/tools/list_changed' });
30
30
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/tools/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/tools/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;SAChB,QAAQ,CAAC,6DAA6D;UACjE,mDAAmD,CAAC;CACjE,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,OAAO,GAAa;IAC7B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE;QACF,IAAI,EAAE,WAAW,CAAC,QAAQ;QAC1B,WAAW,EAAE,2DAA2D;cAClE,uEAAuE;cACvE,2CAA2C;cAC3C,2FAA2F;QACjG,WAAW,EAAE,eAAe,CAAC,iBAAiB,CAAC;QAC/C,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;QAC5D,kFAAkF;QAClF,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACrB,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;YACjE,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,CAAC;YACrE,MAAM,UAAU,GAAG,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAC;YAE7E,OAAO;gBACH,OAAO,EAAE,CAAC;wBACN,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,gBAAgB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAI,CAAC,CAAC,IAAkB,CAAC,aAAa,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;qBACjI,CAAC;aACL,CAAC;QACN,CAAC;KACY;CACpB,CAAC;AACF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;SACf,QAAQ,CAAC,2CAA2C,CAAC;SACrD,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;CACpD,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,UAAU,GAAa;IAChC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE;QACF,IAAI,EAAE,WAAW,CAAC,WAAW;QAC7B,WAAW,EAAE,4CAA4C;cACnD,yEAAyE;QAC/E,WAAW,EAAE,eAAe,CAAC,oBAAoB,CAAC;QAClD,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;QAC/D,kFAAkF;QAClF,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACrB,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;YAErD,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChD,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC,CAAC;YAC7E,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,CAAC,QAAQ,cAAc,EAAE,CAAC,EAAE,CAAC;QACxF,CAAC;KACY;CACpB,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import type { ActorStorePruned, ToolWrap } from '../types.js';
3
- export declare function searchActorsByKeywords(search: string, limit?: number | undefined, offset?: number | undefined): Promise<ActorStorePruned[] | null>;
3
+ export declare function searchActorsByKeywords(search: string, apifyToken: string, limit?: number | undefined, offset?: number | undefined): Promise<ActorStorePruned[] | null>;
4
4
  export declare const SearchToolArgsSchema: z.ZodObject<{
5
5
  limit: z.ZodDefault<z.ZodNumber>;
6
6
  offset: z.ZodDefault<z.ZodNumber>;
@@ -1 +1 @@
1
- {"version":3,"file":"store_collection.d.ts","sourceRoot":"","sources":["../../src/tools/store_collection.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,gBAAgB,EAA2B,QAAQ,EAAE,MAAM,aAAa,CAAC;AA4BvF,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,MAAM,EACd,KAAK,GAAE,MAAM,GAAG,SAAqB,EACrC,MAAM,GAAE,MAAM,GAAG,SAAqB,GACvC,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAIpC;AAGD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAqB/B,CAAC;AACH,eAAO,MAAM,UAAU,EAAE,QAwBxB,CAAC"}
1
+ {"version":3,"file":"store_collection.d.ts","sourceRoot":"","sources":["../../src/tools/store_collection.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,OAAO,KAAK,EAAE,gBAAgB,EAA2B,QAAQ,EAAE,MAAM,aAAa,CAAC;AA4BvF,wBAAsB,sBAAsB,CACxC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAM,GAAG,SAAqB,EACrC,MAAM,GAAE,MAAM,GAAG,SAAqB,GACvC,OAAO,CAAC,gBAAgB,EAAE,GAAG,IAAI,CAAC,CAIpC;AAGD,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;EAqB/B,CAAC;AACH,eAAO,MAAM,UAAU,EAAE,QAyBxB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Ajv } from 'ajv';
2
- import { ApifyClient } from 'apify-client';
2
+ import { ApifyClient } from '../apify-client.js';
3
3
  import { z } from 'zod';
4
4
  import zodToJsonSchema from 'zod-to-json-schema';
5
5
  import { HelperTools } from '../const.js';
@@ -28,8 +28,8 @@ function pruneActorStoreInfo(response) {
28
28
  totalStars: 'totalStars' in response ? response.totalStars : null,
29
29
  };
30
30
  }
31
- export async function searchActorsByKeywords(search, limit = undefined, offset = undefined) {
32
- const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
31
+ export async function searchActorsByKeywords(search, apifyToken, limit = undefined, offset = undefined) {
32
+ const client = new ApifyClient({ token: apifyToken });
33
33
  const results = await client.store().list({ search, limit, offset });
34
34
  return results.items.map((x) => pruneActorStoreInfo(x));
35
35
  }
@@ -70,9 +70,9 @@ export const searchTool = {
70
70
  inputSchema: zodToJsonSchema(SearchToolArgsSchema),
71
71
  ajvValidate: ajv.compile(zodToJsonSchema(SearchToolArgsSchema)),
72
72
  call: async (toolArgs) => {
73
- const { args } = toolArgs;
73
+ const { args, apifyToken } = toolArgs;
74
74
  const parsed = SearchToolArgsSchema.parse(args);
75
- const actors = await searchActorsByKeywords(parsed.search, parsed.limit, parsed.offset);
75
+ const actors = await searchActorsByKeywords(parsed.search, apifyToken, parsed.limit, parsed.offset);
76
76
  return { content: actors?.map((item) => ({ type: 'text', text: JSON.stringify(item) })) };
77
77
  },
78
78
  },
@@ -1 +1 @@
1
- {"version":3,"file":"store_collection.js","sourceRoot":"","sources":["../../src/tools/store_collection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store_collection.js","sourceRoot":"","sources":["../../src/tools/store_collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1C,SAAS,mBAAmB,CAAC,QAAwB;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,kBAAkB,IAAI,EAAE,CAAgB,CAAC;IACvE,OAAO;QACH,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;QACrC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC7C,aAAa,EAAE,GAAG,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;QACtD,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE;QACvC,WAAW,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnD,KAAK,EAAE;YACH,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,yBAAyB,EAAE,2BAA2B,IAAI,KAAK;gBAC3D,CAAC,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE;SAC7C;QACD,kBAAkB,EAAE;YAChB,YAAY,EAAE,WAAW,CAAC,YAAY,EAAE,QAAQ,EAAE,IAAI,EAAE;YACxD,eAAe,EAAE,WAAW,EAAE,eAAe,IAAI,CAAC;YAClD,YAAY,EAAE,WAAW,EAAE,YAAY,IAAI,CAAC;SAC/C;QACD,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;QACnC,UAAU,EAAE,YAAY,IAAI,QAAQ,CAAC,CAAC,CAAE,QAAQ,CAAC,UAAqB,CAAC,CAAC,CAAC,IAAI;KAChF,CAAC;AACN,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,MAAc,EACd,UAAkB,EAClB,QAA4B,SAAS,EACrC,SAA6B,SAAS;IAEtC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC7D,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;SACZ,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,GAAG,CAAC;SACR,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,8DAA8D,CAAC;IAC7E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SACb,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,OAAO,CAAC,CAAC,CAAC;SACV,QAAQ,CAAC,iFAAiF,CAAC;IAChG,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;SACb,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,oCAAoC;UACxC,0EAA0E;UAC1E,wDAAwD;UACxD,qDAAqD,CAAC;IAChE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE;SACf,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CAAC,gDAAgD,CAAC;CAClE,CAAC,CAAC;AACH,MAAM,CAAC,MAAM,UAAU,GAAa;IAChC,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE;QACF,IAAI,EAAE,WAAW,CAAC,MAAM;QACxB,aAAa,EAAE,WAAW,CAAC,MAAM;QACjC,WAAW,EAAE,kEAAkE;cACzE,0HAA0H;cAC1H,wFAAwF;cACxF,6FAA6F;cAC7F,2EAA2E;cAC3E,kFAAkF;QACxF,WAAW,EAAE,eAAe,CAAC,oBAAoB,CAAC;QAClD,WAAW,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;QAC/D,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YACrB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC;YACtC,MAAM,MAAM,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,sBAAsB,CACvC,MAAM,CAAC,MAAM,EACb,UAAU,EACV,MAAM,CAAC,KAAK,EACZ,MAAM,CAAC,MAAM,CAChB,CAAC;YACF,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAC9F,CAAC;KACU;CAClB,CAAC"}