@apify/actors-mcp-server 0.1.22-beta.13 → 0.1.22-beta.14

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 (98) hide show
  1. package/dist/actor/const.d.ts +2 -0
  2. package/dist/actor/const.d.ts.map +1 -1
  3. package/dist/actor/const.js +7 -0
  4. package/dist/actor/const.js.map +1 -1
  5. package/dist/actor/input.d.ts.map +1 -0
  6. package/dist/actor/input.js.map +1 -0
  7. package/dist/actor/server.d.ts +1 -1
  8. package/dist/actor/server.d.ts.map +1 -1
  9. package/dist/actor/server.js +102 -30
  10. package/dist/actor/server.js.map +1 -1
  11. package/dist/actor/types.d.ts +7 -0
  12. package/dist/actor/types.d.ts.map +1 -1
  13. package/dist/actor/utils.d.ts +9 -1
  14. package/dist/actor/utils.d.ts.map +1 -1
  15. package/dist/actor/utils.js +24 -0
  16. package/dist/actor/utils.js.map +1 -1
  17. package/dist/const.d.ts +1 -2
  18. package/dist/const.d.ts.map +1 -1
  19. package/dist/const.js +4 -5
  20. package/dist/const.js.map +1 -1
  21. package/dist/examples/clientSse.d.ts +2 -1
  22. package/dist/examples/clientSse.d.ts.map +1 -1
  23. package/dist/examples/clientSse.js +6 -6
  24. package/dist/examples/clientSse.js.map +1 -1
  25. package/dist/examples/clientStdio.js +4 -4
  26. package/dist/examples/clientStdio.js.map +1 -1
  27. package/dist/examples/clientStdioChat.js +30 -15
  28. package/dist/examples/clientStdioChat.js.map +1 -1
  29. package/dist/examples/clientStreamableHttp.d.ts +2 -0
  30. package/dist/examples/clientStreamableHttp.d.ts.map +1 -0
  31. package/dist/examples/clientStreamableHttp.js +93 -0
  32. package/dist/examples/clientStreamableHttp.js.map +1 -0
  33. package/dist/index.d.ts +2 -2
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +2 -2
  36. package/dist/index.js.map +1 -1
  37. package/dist/main.d.ts.map +1 -1
  38. package/dist/main.js +6 -10
  39. package/dist/main.js.map +1 -1
  40. package/dist/{mcp/server.d.ts → mcp-server.d.ts} +6 -8
  41. package/dist/mcp-server.d.ts.map +1 -0
  42. package/dist/{mcp/server.js → mcp-server.js} +25 -37
  43. package/dist/mcp-server.js.map +1 -0
  44. package/dist/stdio.js +3 -3
  45. package/dist/stdio.js.map +1 -1
  46. package/dist/tools/actor.d.ts +1 -4
  47. package/dist/tools/actor.d.ts.map +1 -1
  48. package/dist/tools/actor.js +6 -53
  49. package/dist/tools/actor.js.map +1 -1
  50. package/dist/tools/build.d.ts +1 -1
  51. package/dist/tools/build.d.ts.map +1 -1
  52. package/dist/tools/build.js +13 -12
  53. package/dist/tools/build.js.map +1 -1
  54. package/dist/tools/helpers.d.ts.map +1 -1
  55. package/dist/tools/helpers.js +3 -3
  56. package/dist/tools/helpers.js.map +1 -1
  57. package/dist/{apify-client.d.ts → tools/mcp-apify-client.d.ts} +1 -1
  58. package/dist/tools/mcp-apify-client.d.ts.map +1 -0
  59. package/dist/{apify-client.js → tools/mcp-apify-client.js} +6 -5
  60. package/dist/tools/mcp-apify-client.js.map +1 -0
  61. package/dist/tools/store_collection.d.ts +1 -1
  62. package/dist/tools/store_collection.d.ts.map +1 -1
  63. package/dist/tools/store_collection.js +15 -14
  64. package/dist/tools/store_collection.js.map +1 -1
  65. package/dist/tools/utils.js +11 -7
  66. package/dist/tools/utils.js.map +1 -1
  67. package/dist/tsconfig.tsbuildinfo +1 -1
  68. package/dist/types.d.ts +2 -25
  69. package/dist/types.d.ts.map +1 -1
  70. package/package.json +7 -7
  71. package/dist/apify-client.d.ts.map +0 -1
  72. package/dist/apify-client.js.map +0 -1
  73. package/dist/input.d.ts.map +0 -1
  74. package/dist/input.js.map +0 -1
  75. package/dist/mcp/actors.d.ts +0 -20
  76. package/dist/mcp/actors.d.ts.map +0 -1
  77. package/dist/mcp/actors.js +0 -66
  78. package/dist/mcp/actors.js.map +0 -1
  79. package/dist/mcp/client.d.ts +0 -6
  80. package/dist/mcp/client.d.ts.map +0 -1
  81. package/dist/mcp/client.js +0 -33
  82. package/dist/mcp/client.js.map +0 -1
  83. package/dist/mcp/const.d.ts +0 -3
  84. package/dist/mcp/const.d.ts.map +0 -1
  85. package/dist/mcp/const.js +0 -3
  86. package/dist/mcp/const.js.map +0 -1
  87. package/dist/mcp/proxy.d.ts +0 -4
  88. package/dist/mcp/proxy.d.ts.map +0 -1
  89. package/dist/mcp/proxy.js +0 -29
  90. package/dist/mcp/proxy.js.map +0 -1
  91. package/dist/mcp/server.d.ts.map +0 -1
  92. package/dist/mcp/server.js.map +0 -1
  93. package/dist/mcp/utils.d.ts +0 -26
  94. package/dist/mcp/utils.d.ts.map +0 -1
  95. package/dist/mcp/utils.js +0 -52
  96. package/dist/mcp/utils.js.map +0 -1
  97. /package/dist/{input.d.ts → actor/input.d.ts} +0 -0
  98. /package/dist/{input.js → actor/input.js} +0 -0
@@ -0,0 +1,93 @@
1
+ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
+ import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
3
+ import { CallToolResultSchema, ListToolsResultSchema, LoggingMessageNotificationSchema, } from '@modelcontextprotocol/sdk/types.js';
4
+ import log from '@apify/log';
5
+ log.setLevel(log.LEVELS.DEBUG);
6
+ async function main() {
7
+ // Create a new client with streamable HTTP transport
8
+ const client = new Client({
9
+ name: 'example-client',
10
+ version: '1.0.0',
11
+ });
12
+ const transport = new StreamableHTTPClientTransport(new URL('http://localhost:3000/mcp'));
13
+ // Connect the client using the transport and initialize the server
14
+ await client.connect(transport);
15
+ log.debug('Connected to MCP server');
16
+ // Set up notification handlers for server-initiated messages
17
+ client.setNotificationHandler(LoggingMessageNotificationSchema, (notification) => {
18
+ log.debug(`Notification received: ${notification.params.level} - ${notification.params.data}`);
19
+ });
20
+ // List and call tools
21
+ await listTools(client);
22
+ await callSearchTool(client);
23
+ await callActor(client);
24
+ // Keep the connection open to receive notifications
25
+ log.debug('\nKeeping connection open to receive notifications. Press Ctrl+C to exit.');
26
+ }
27
+ async function listTools(client) {
28
+ try {
29
+ const toolsRequest = {
30
+ method: 'tools/list',
31
+ params: {},
32
+ };
33
+ const toolsResult = await client.request(toolsRequest, ListToolsResultSchema);
34
+ log.debug(`Tools available, count: ${toolsResult.tools.length}`);
35
+ for (const tool of toolsResult.tools) {
36
+ log.debug(`Tool: ${tool.name}, Description: ${tool.description}`);
37
+ }
38
+ if (toolsResult.tools.length === 0) {
39
+ log.debug('No tools available from the server');
40
+ }
41
+ }
42
+ catch (error) {
43
+ log.error(`Tools not supported by this server (${error})`);
44
+ }
45
+ }
46
+ async function callSearchTool(client) {
47
+ try {
48
+ const searchRequest = {
49
+ method: 'tools/call',
50
+ params: {
51
+ name: 'search',
52
+ arguments: { search: 'rag web browser', limit: 1 },
53
+ },
54
+ };
55
+ const searchResult = await client.request(searchRequest, CallToolResultSchema);
56
+ log.debug('Search result:');
57
+ searchResult.content.forEach((item) => {
58
+ if (item.type === 'text') {
59
+ log.debug(`\t${item.text}`);
60
+ }
61
+ });
62
+ }
63
+ catch (error) {
64
+ log.error(`Error calling greet tool: ${error}`);
65
+ }
66
+ }
67
+ async function callActor(client) {
68
+ try {
69
+ log.debug('\nCalling Actor...');
70
+ const actorRequest = {
71
+ method: 'tools/call',
72
+ params: {
73
+ name: 'apify/rag-web-browser',
74
+ arguments: { query: 'apify mcp server' },
75
+ },
76
+ };
77
+ const actorResult = await client.request(actorRequest, CallToolResultSchema);
78
+ log.debug('Actor results:');
79
+ actorResult.content.forEach((item) => {
80
+ if (item.type === 'text') {
81
+ log.debug(`- ${item.text}`);
82
+ }
83
+ });
84
+ }
85
+ catch (error) {
86
+ log.error(`Error calling Actor: ${error}`);
87
+ }
88
+ }
89
+ main().catch((error) => {
90
+ log.error('Error running MCP client:', error);
91
+ process.exit(1);
92
+ });
93
+ //# sourceMappingURL=clientStreamableHttp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientStreamableHttp.js","sourceRoot":"","sources":["../../src/examples/clientStreamableHttp.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import { ActorsMcpServer } from './mcp/server.js';
2
- export default ActorsMcpServer;
1
+ import { ActorsMcpServer } from './mcp-server.js';
2
+ export { ActorsMcpServer };
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -2,6 +2,6 @@
2
2
  This file provides essential functions and tools for MCP servers, serving as a library.
3
3
  The ActorsMcpServer should be the only class exported from the package
4
4
  */
5
- import { ActorsMcpServer } from './mcp/server.js';
6
- export default ActorsMcpServer;
5
+ import { ActorsMcpServer } from './mcp-server.js';
6
+ export { ActorsMcpServer };
7
7
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA;;;EAGE;AAEF,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;EAGE;AAEF,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AACA;;;GAGG"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
package/dist/main.js CHANGED
@@ -2,23 +2,23 @@
2
2
  * Serves as an Actor MCP SSE server entry point.
3
3
  * This file needs to be named `main.ts` to be recognized by the Apify platform.
4
4
  */
5
+ var _a;
5
6
  import { Actor } from 'apify';
6
7
  import log from '@apify/log';
7
- import { processInput } from './input.js';
8
+ import { processInput } from './actor/input.js';
8
9
  import { createExpressApp } from './actor/server.js';
9
- import { ActorsMcpServer } from './mcp/server.js';
10
- import { actorDefinitionTool, addTool, removeTool, searchTool, callActorGetDataset, getActorsAsTools } from './tools/index.js';
11
- import { defaults } from './const.js';
10
+ import { ActorsMcpServer } from './mcp-server.js';
11
+ import { actorDefinitionTool, addTool, callActorGetDataset, removeTool, searchTool, } from './tools/index.js';
12
12
  const STANDBY_MODE = Actor.getEnv().metaOrigin === 'STANDBY';
13
13
  await Actor.init();
14
14
  const HOST = Actor.isAtHome() ? process.env.ACTOR_STANDBY_URL : 'http://localhost';
15
- const PORT = Actor.isAtHome() ? Number(process.env.ACTOR_STANDBY_PORT) : 3001;
15
+ const PORT = Actor.isAtHome() ? Number(process.env.ACTOR_STANDBY_PORT) : 3000;
16
16
  if (!process.env.APIFY_TOKEN) {
17
17
  log.error('APIFY_TOKEN is required but not set in the environment variables.');
18
18
  process.exit(1);
19
19
  }
20
20
  const mcpServer = new ActorsMcpServer();
21
- const input = processInput((await Actor.getInput()) ?? {});
21
+ const input = processInput((_a = (await Actor.getInput())) !== null && _a !== void 0 ? _a : {});
22
22
  log.info(`Loaded input: ${JSON.stringify(input)} `);
23
23
  if (STANDBY_MODE) {
24
24
  const app = createExpressApp(HOST, mcpServer);
@@ -27,10 +27,6 @@ if (STANDBY_MODE) {
27
27
  if (input.enableActorAutoLoading) {
28
28
  tools.push(addTool, removeTool);
29
29
  }
30
- const actors = input.actors ?? defaults.actors;
31
- const actorsToLoad = Array.isArray(actors) ? actors : actors.split(',');
32
- const actorTools = await getActorsAsTools(actorsToLoad, process.env.APIFY_TOKEN);
33
- tools.push(...actorTools);
34
30
  mcpServer.updateTools(tools);
35
31
  app.listen(PORT, () => {
36
32
  log.info(`The Actor web server is listening for user requests at ${HOST}`);
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAG9B,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EACH,mBAAmB,EACnB,OAAO,EACP,mBAAmB,EACnB,UAAU,EACV,UAAU,GACb,MAAM,kBAAkB,CAAC;AAE1B,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,UAAU,KAAK,SAAS,CAAC;AAE7D,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;AAEnB,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAA2B,CAAC,CAAC,CAAC,kBAAkB,CAAC;AAC7F,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAE9E,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,MAAM,SAAS,GAAG,IAAI,eAAe,EAAE,CAAC;AAExC,MAAM,KAAK,GAAG,YAAY,CAAC,MAAA,CAAC,MAAM,KAAK,CAAC,QAAQ,EAAkB,CAAC,mCAAK,EAAY,CAAC,CAAC;AACtF,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAEpD,IAAI,YAAY,EAAE,CAAC;IACf,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC9C,GAAG,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,sBAAsB,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IACD,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IAC7B,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QAClB,GAAG,CAAC,IAAI,CAAC,0DAA0D,IAAI,EAAE,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACP,CAAC;KAAM,CAAC;IACJ,GAAG,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;IAEzG,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QACvD,MAAM,KAAK,CAAC,IAAI,CAAC,8GAA8G,CAAC,CAAC;IACrI,CAAC;IACD,MAAM,OAAO,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,mBAAmB,EAAsB,CAAC;IAC1E,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,UAAW,EAAE,KAAK,CAAC,eAAgB,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAErH,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5B,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,CAAC,MAAM,uBAAuB,CAAC,CAAC;IACxD,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;AACvB,CAAC"}
@@ -3,26 +3,24 @@
3
3
  */
4
4
  import { Server } from '@modelcontextprotocol/sdk/server/index.js';
5
5
  import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
6
- import type { ToolWrap } from '../types.js';
6
+ import type { ToolWrap } from './types.js';
7
7
  /**
8
8
  * Create Apify MCP server
9
9
  */
10
10
  export declare class ActorsMcpServer {
11
- server: Server;
12
- tools: Map<string, ToolWrap>;
11
+ readonly server: Server;
12
+ readonly tools: Map<string, ToolWrap>;
13
13
  constructor();
14
14
  /**
15
15
  * Loads missing default tools.
16
16
  */
17
- loadDefaultTools(apifyToken: string): Promise<void>;
17
+ loadDefaultTools(): Promise<void>;
18
18
  /**
19
19
  * Loads tools from URL params.
20
20
  *
21
- * This method also handles enabling of Actor auto loading via the processParamsGetTools.
22
- *
23
21
  * Used primarily for SSE.
24
22
  */
25
- loadToolsFromUrl(url: string, apifyToken: string): Promise<void>;
23
+ loadToolsFromUrl(url: string): Promise<void>;
26
24
  /**
27
25
  * Upsert new tools.
28
26
  * @param tools - Array of tool wrappers.
@@ -38,4 +36,4 @@ export declare class ActorsMcpServer {
38
36
  private setupToolHandlers;
39
37
  connect(transport: Transport): Promise<void>;
40
38
  }
41
- //# sourceMappingURL=server.d.ts.map
39
+ //# sourceMappingURL=mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAa/E,OAAO,KAAK,EAAyB,QAAQ,EAAE,MAAM,YAAY,CAAC;AAElE;;GAEG;AACH,qBAAa,eAAe;IACxB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;;IAuB7C;;OAEG;IACU,gBAAgB;IAM7B;;;;OAIG;IACU,gBAAgB,CAAC,GAAG,EAAE,MAAM;IAKzC;;;;OAIG;IACI,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE;IAQpC;;;OAGG;IACI,YAAY,IAAI,MAAM,EAAE;IAI/B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,iBAAiB;IAiFnB,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;CAGrD"}
@@ -4,25 +4,34 @@
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 './utils.js';
12
- import { createMCPClient } from './client.js';
7
+ import { processParamsGetTools } from './actor/utils.js';
8
+ import { ACTOR_OUTPUT_MAX_CHARS_PER_ITEM, ACTOR_OUTPUT_TRUNCATED_MESSAGE, defaults, SERVER_NAME, SERVER_VERSION } from './const.js';
9
+ import { actorDefinitionTool, callActorGetDataset, getActorsAsTools, searchTool } from './tools/index.js';
10
+ import { actorNameToToolName } from './tools/utils.js';
13
11
  /**
14
12
  * Create Apify MCP server
15
13
  */
16
14
  export class ActorsMcpServer {
17
- server;
18
- tools;
19
15
  constructor() {
16
+ Object.defineProperty(this, "server", {
17
+ enumerable: true,
18
+ configurable: true,
19
+ writable: true,
20
+ value: void 0
21
+ });
22
+ Object.defineProperty(this, "tools", {
23
+ enumerable: true,
24
+ configurable: true,
25
+ writable: true,
26
+ value: void 0
27
+ });
20
28
  this.server = new Server({
21
29
  name: SERVER_NAME,
22
30
  version: SERVER_VERSION,
23
31
  }, {
24
32
  capabilities: {
25
33
  tools: { listChanged: true },
34
+ logging: {},
26
35
  },
27
36
  });
28
37
  this.tools = new Map();
@@ -34,21 +43,19 @@ export class ActorsMcpServer {
34
43
  /**
35
44
  * Loads missing default tools.
36
45
  */
37
- async loadDefaultTools(apifyToken) {
38
- const missingDefaultTools = defaults.actors.filter(name => !this.tools.has(actorNameToToolName(name)));
39
- const tools = await getActorsAsTools(missingDefaultTools, apifyToken);
46
+ async loadDefaultTools() {
47
+ const missingDefaultTools = defaults.actors.filter((name) => !this.tools.has(actorNameToToolName(name)));
48
+ const tools = await getActorsAsTools(missingDefaultTools);
40
49
  if (tools.length > 0)
41
50
  this.updateTools(tools);
42
51
  }
43
52
  /**
44
53
  * Loads tools from URL params.
45
54
  *
46
- * This method also handles enabling of Actor auto loading via the processParamsGetTools.
47
- *
48
55
  * Used primarily for SSE.
49
56
  */
50
- async loadToolsFromUrl(url, apifyToken) {
51
- const tools = await processParamsGetTools(url, apifyToken);
57
+ async loadToolsFromUrl(url) {
58
+ const tools = await processParamsGetTools(url);
52
59
  if (tools.length > 0)
53
60
  this.updateTools(tools);
54
61
  }
@@ -98,9 +105,7 @@ export class ActorsMcpServer {
98
105
  */
99
106
  this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
100
107
  const { name, arguments: args } = request.params;
101
- const apifyToken = (request.params.apifyToken || process.env.APIFY_TOKEN);
102
- // Remove apifyToken from request.params just in case
103
- delete request.params.apifyToken;
108
+ const apifyToken = request.params.apifyToken || process.env.APIFY_TOKEN;
104
109
  // Validate token
105
110
  if (!apifyToken) {
106
111
  throw new Error('APIFY_TOKEN is required but not set in the environment variables or passed as a parameter.');
@@ -117,7 +122,7 @@ export class ActorsMcpServer {
117
122
  }
118
123
  log.info(`Validate arguments for tool: ${tool.tool.name} with arguments: ${JSON.stringify(args)}`);
119
124
  if (!tool.tool.ajvValidate(args)) {
120
- throw new Error(`Invalid arguments for tool ${tool.tool.name}: args: ${JSON.stringify(args)} error: ${JSON.stringify(tool?.tool.ajvValidate.errors)}`);
125
+ throw new Error(`Invalid arguments for tool ${tool.tool.name}: args: ${JSON.stringify(args)} error: ${JSON.stringify(tool === null || tool === void 0 ? void 0 : tool.tool.ajvValidate.errors)}`);
121
126
  }
122
127
  try {
123
128
  // Handle internal tool
@@ -127,26 +132,9 @@ export class ActorsMcpServer {
127
132
  args,
128
133
  apifyMcpServer: this,
129
134
  mcpServer: this.server,
130
- apifyToken,
131
135
  });
132
136
  return { ...res };
133
137
  }
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
- }
150
138
  // Handle actor tool
151
139
  if (tool.type === 'actor') {
152
140
  const actorTool = tool.tool;
@@ -174,4 +162,4 @@ export class ActorsMcpServer {
174
162
  await this.server.connect(transport);
175
163
  }
176
164
  }
177
- //# sourceMappingURL=server.js.map
165
+ //# sourceMappingURL=mcp-server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
package/dist/stdio.js CHANGED
@@ -15,8 +15,8 @@ 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';
19
- import { addTool, removeTool, getActorsAsTools } from './tools/index.js';
18
+ import { ActorsMcpServer } from './mcp-server.js';
19
+ import { addTool, getActorsAsTools, removeTool } from './tools/index.js';
20
20
  // Configure logging, set to ERROR
21
21
  log.setLevel(log.LEVELS.ERROR);
22
22
  // Parse command line arguments
@@ -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, process.env.APIFY_TOKEN);
33
+ const tools = await getActorsAsTools(actorList.length ? actorList : defaults.actors);
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,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"}
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,gBAAgB,EAAE,UAAU,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"}
@@ -16,8 +16,6 @@ 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
- *
21
19
  * Fetches actor input schemas by Actor IDs or Actor full names and creates MCP tools.
22
20
  *
23
21
  * This function retrieves the input schemas for the specified actors and compiles them into MCP tools.
@@ -35,6 +33,5 @@ export declare function callActorGetDataset(actorName: string, input: unknown, a
35
33
  * @param {string[]} actors - An array of actor IDs or Actor full names.
36
34
  * @returns {Promise<Tool[]>} - A promise that resolves to an array of MCP tools.
37
35
  */
38
- export declare function getNormalActorsAsTools(actors: string[], apifyToken: string): Promise<ToolWrap[]>;
39
- export declare function getActorsAsTools(actors: string[], apifyToken: string): Promise<ToolWrap[]>;
36
+ export declare function getActorsAsTools(actors: string[]): Promise<ToolWrap[]>;
40
37
  //# 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;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,CAuBrB"}
1
+ {"version":3,"file":"actor.d.ts","sourceRoot":"","sources":["../../src/tools/actor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAY5C;;;;;;;;;;;;;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,12 +1,9 @@
1
1
  import { Ajv } from 'ajv';
2
2
  import log from '@apify/log';
3
- import { getActorDefinition } from './build.js';
4
3
  import { ACTOR_ADDITIONAL_INSTRUCTIONS, ACTOR_MAX_MEMORY_MBYTES } from '../const.js';
5
- import { ApifyClient } from '../apify-client.js';
4
+ import { getActorDefinition } from './build.js';
5
+ import { ApifyClient } from './mcp-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';
10
7
  /**
11
8
  * Calls an Apify actor and retrieves the dataset items.
12
9
  *
@@ -38,8 +35,6 @@ export async function callActorGetDataset(actorName, input, apifyToken, callOpti
38
35
  }
39
36
  }
40
37
  /**
41
- * This function is used to fetch normal non-MCP server Actors as a tool.
42
- *
43
38
  * Fetches actor input schemas by Actor IDs or Actor full names and creates MCP tools.
44
39
  *
45
40
  * This function retrieves the input schemas for the specified actors and compiles them into MCP tools.
@@ -57,13 +52,10 @@ export async function callActorGetDataset(actorName, input, apifyToken, callOpti
57
52
  * @param {string[]} actors - An array of actor IDs or Actor full names.
58
53
  * @returns {Promise<Tool[]>} - A promise that resolves to an array of MCP tools.
59
54
  */
60
- export async function getNormalActorsAsTools(actors, apifyToken) {
55
+ export async function getActorsAsTools(actors) {
56
+ var _a;
61
57
  const ajv = new Ajv({ coerceTypes: 'array', strict: false });
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
+ const results = await Promise.all(actors.map(getActorDefinition));
67
59
  const tools = [];
68
60
  for (const result of results) {
69
61
  if (result) {
@@ -75,7 +67,7 @@ export async function getNormalActorsAsTools(actors, apifyToken) {
75
67
  result.input.properties = addEnumsToDescriptionsWithExamples(result.input.properties);
76
68
  }
77
69
  try {
78
- const memoryMbytes = result.defaultRunOptions?.memoryMbytes || ACTOR_MAX_MEMORY_MBYTES;
70
+ const memoryMbytes = ((_a = result.defaultRunOptions) === null || _a === void 0 ? void 0 : _a.memoryMbytes) || ACTOR_MAX_MEMORY_MBYTES;
79
71
  tools.push({
80
72
  type: 'actor',
81
73
  tool: {
@@ -95,43 +87,4 @@ export async function getNormalActorsAsTools(actors, apifyToken) {
95
87
  }
96
88
  return tools;
97
89
  }
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
- // TODO: rework, we are fetching actor definition from API twice - in the getMCPServerTools
123
- if (await isActorMCPServer(actorID, apifyToken)) {
124
- actorsMCPServers.push(actorID);
125
- }
126
- }
127
- // Normal Actors as a tool
128
- const toolActors = actors.filter((actorID) => !actorsMCPServers.includes(actorID));
129
- log.debug(`actorsMCPserver: ${actorsMCPServers}`);
130
- log.debug(`toolActors: ${toolActors}`);
131
- // Normal Actors as a tool
132
- const normalTools = await getNormalActorsAsTools(toolActors, apifyToken);
133
- // Tools from Actorized MCP servers
134
- const mcpServerTools = await getMCPServersAsTools(actorsMCPServers, apifyToken);
135
- return [...normalTools, ...mcpServerTools];
136
- }
137
90
  //# 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, apifyToken: string, limit?: number): Promise<ActorDefinitionPruned | null>;
10
+ export declare function getActorDefinition(actorIdOrName: 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,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
+ {"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,5 +1,5 @@
1
1
  import { Ajv } from 'ajv';
2
- import { ApifyClient } from '../apify-client.js';
2
+ import { ApifyClient } from 'apify-client';
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,9 @@ 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, apifyToken, limit = ACTOR_README_MAX_LENGTH) {
18
- const client = new ApifyClient({ token: apifyToken });
17
+ export async function getActorDefinition(actorIdOrName, limit = ACTOR_README_MAX_LENGTH) {
18
+ var _a, _b, _c;
19
+ const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
19
20
  const actorClient = client.actor(actorIdOrName);
20
21
  try {
21
22
  // Fetch actor details
@@ -27,16 +28,16 @@ export async function getActorDefinition(actorIdOrName, apifyToken, limit = ACTO
27
28
  // fnesveda: The default build is not necessarily tagged, you can specify any build number as default build.
28
29
  // There will be a new API endpoint to fetch a default build.
29
30
  // For now, we'll use the tagged build, it will work for 90% of Actors. Later, we can update this.
30
- const tag = actor.defaultRunOptions?.build || '';
31
- const buildId = actor.taggedBuilds?.[tag]?.buildId || '';
31
+ const tag = ((_a = actor.defaultRunOptions) === null || _a === void 0 ? void 0 : _a.build) || '';
32
+ const buildId = ((_c = (_b = actor.taggedBuilds) === null || _b === void 0 ? void 0 : _b[tag]) === null || _c === void 0 ? void 0 : _c.buildId) || '';
32
33
  if (!buildId) {
33
34
  log.error(`Failed to fetch input schema for Actor: ${actorIdOrName}. Build ID not found.`);
34
35
  return null;
35
36
  }
36
37
  // Fetch build details and return the input schema
37
38
  const buildDetails = await client.build(buildId).get();
38
- if (buildDetails?.actorDefinition) {
39
- const actorDefinitions = buildDetails?.actorDefinition;
39
+ if (buildDetails === null || buildDetails === void 0 ? void 0 : buildDetails.actorDefinition) {
40
+ const actorDefinitions = buildDetails === null || buildDetails === void 0 ? void 0 : buildDetails.actorDefinition;
40
41
  actorDefinitions.id = actor.id;
41
42
  actorDefinitions.readme = truncateActorReadme(actorDefinitions.readme || '', limit);
42
43
  actorDefinitions.description = actor.description || '';
@@ -56,9 +57,9 @@ function pruneActorDefinition(response) {
56
57
  return {
57
58
  id: response.id,
58
59
  actorFullName: response.actorFullName || '',
59
- buildTag: response?.buildTag || '',
60
- readme: response?.readme || '',
61
- input: response?.input && 'type' in response.input && 'properties' in response.input
60
+ buildTag: (response === null || response === void 0 ? void 0 : response.buildTag) || '',
61
+ readme: (response === null || response === void 0 ? void 0 : response.readme) || '',
62
+ input: (response === null || response === void 0 ? void 0 : response.input) && 'type' in response.input && 'properties' in response.input
62
63
  ? {
63
64
  ...response.input,
64
65
  type: response.input.type,
@@ -106,9 +107,9 @@ export const actorDefinitionTool = {
106
107
  inputSchema: zodToJsonSchema(GetActorDefinitionArgsSchema),
107
108
  ajvValidate: ajv.compile(zodToJsonSchema(GetActorDefinitionArgsSchema)),
108
109
  call: async (toolArgs) => {
109
- const { args, apifyToken } = toolArgs;
110
+ const { args } = toolArgs;
110
111
  const parsed = GetActorDefinitionArgsSchema.parse(args);
111
- const v = await getActorDefinition(parsed.actorName, apifyToken, parsed.limit);
112
+ const v = await getActorDefinition(parsed.actorName, parsed.limit);
112
113
  if (v && v.input && 'properties' in v.input && v.input) {
113
114
  const properties = filterSchemaProperties(v.input.properties);
114
115
  v.input.properties = shortenProperties(properties);