@apify/actors-mcp-server 0.2.8 → 0.2.10-beta.0

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 (74) hide show
  1. package/dist/actor/server.d.ts +5 -2
  2. package/dist/actor/server.d.ts.map +1 -1
  3. package/dist/actor/server.js +57 -12
  4. package/dist/actor/server.js.map +1 -1
  5. package/dist/const.d.ts +5 -3
  6. package/dist/const.d.ts.map +1 -1
  7. package/dist/const.js +5 -9
  8. package/dist/const.js.map +1 -1
  9. package/dist/main.js +19 -13
  10. package/dist/main.js.map +1 -1
  11. package/dist/mcp/actors.d.ts +13 -13
  12. package/dist/mcp/actors.d.ts.map +1 -1
  13. package/dist/mcp/actors.js +33 -26
  14. package/dist/mcp/actors.js.map +1 -1
  15. package/dist/mcp/client.d.ts +2 -1
  16. package/dist/mcp/client.d.ts.map +1 -1
  17. package/dist/mcp/client.js +37 -1
  18. package/dist/mcp/client.js.map +1 -1
  19. package/dist/mcp/server.d.ts +1 -1
  20. package/dist/mcp/server.d.ts.map +1 -1
  21. package/dist/mcp/server.js +27 -17
  22. package/dist/mcp/server.js.map +1 -1
  23. package/dist/state.d.ts +4 -0
  24. package/dist/state.d.ts.map +1 -0
  25. package/dist/state.js +4 -0
  26. package/dist/state.js.map +1 -0
  27. package/dist/tools/actor.d.ts +6 -8
  28. package/dist/tools/actor.d.ts.map +1 -1
  29. package/dist/tools/actor.js +188 -83
  30. package/dist/tools/actor.js.map +1 -1
  31. package/dist/tools/build.d.ts.map +1 -1
  32. package/dist/tools/build.js +2 -0
  33. package/dist/tools/build.js.map +1 -1
  34. package/dist/tools/get-actor-details.d.ts +3 -0
  35. package/dist/tools/get-actor-details.d.ts.map +1 -0
  36. package/dist/tools/get-actor-details.js +74 -0
  37. package/dist/tools/get-actor-details.js.map +1 -0
  38. package/dist/tools/helpers.d.ts +3 -3
  39. package/dist/tools/helpers.d.ts.map +1 -1
  40. package/dist/tools/helpers.js +27 -55
  41. package/dist/tools/helpers.js.map +1 -1
  42. package/dist/tools/index.d.ts +2 -2
  43. package/dist/tools/index.d.ts.map +1 -1
  44. package/dist/tools/index.js +22 -24
  45. package/dist/tools/index.js.map +1 -1
  46. package/dist/tools/run_collection.js +1 -1
  47. package/dist/tools/store_collection.d.ts +22 -2
  48. package/dist/tools/store_collection.d.ts.map +1 -1
  49. package/dist/tools/store_collection.js +47 -43
  50. package/dist/tools/store_collection.js.map +1 -1
  51. package/dist/tsconfig.tsbuildinfo +1 -1
  52. package/dist/types.d.ts +65 -21
  53. package/dist/types.d.ts.map +1 -1
  54. package/dist/utils/actor.d.ts +7 -0
  55. package/dist/utils/actor.d.ts.map +1 -0
  56. package/dist/utils/actor.js +24 -0
  57. package/dist/utils/actor.js.map +1 -0
  58. package/dist/utils/ajv.d.ts +3 -0
  59. package/dist/utils/ajv.d.ts.map +1 -0
  60. package/dist/utils/ajv.js +3 -0
  61. package/dist/utils/ajv.js.map +1 -0
  62. package/dist/utils/generic.d.ts +7 -0
  63. package/dist/utils/generic.d.ts.map +1 -0
  64. package/dist/utils/generic.js +27 -0
  65. package/dist/utils/generic.js.map +1 -0
  66. package/dist/utils/pricing-info.d.ts +13 -0
  67. package/dist/utils/pricing-info.d.ts.map +1 -0
  68. package/dist/utils/pricing-info.js +93 -0
  69. package/dist/utils/pricing-info.js.map +1 -0
  70. package/dist/utils/ttl-lru.d.ts +35 -0
  71. package/dist/utils/ttl-lru.d.ts.map +1 -0
  72. package/dist/utils/ttl-lru.js +69 -0
  73. package/dist/utils/ttl-lru.js.map +1 -0
  74. package/package.json +4 -4
@@ -1,4 +1,7 @@
1
1
  import express from 'express';
2
- import { type ActorsMcpServer } from '../mcp/server.js';
3
- export declare function createExpressApp(host: string, mcpServer: ActorsMcpServer): express.Express;
2
+ export declare function createExpressApp(host: string, mcpServerOptions: {
3
+ enableAddingActors?: boolean;
4
+ enableDefaultActors?: boolean;
5
+ actors?: string[];
6
+ }): express.Express;
4
7
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/actor/server.ts"],"names":[],"mappings":"AASA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAqBxD,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,eAAe,GAC3B,OAAO,CAAC,OAAO,CA+IjB"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/actor/server.ts"],"names":[],"mappings":"AASA,OAAO,OAAO,MAAM,SAAS,CAAC;AA0B9B,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE;IACd,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB,GACF,OAAO,CAAC,OAAO,CA8LjB"}
@@ -6,7 +6,9 @@ import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js';
6
6
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
7
7
  import express from 'express';
8
8
  import log from '@apify/log';
9
- import { parseInputParamsFromUrl, processParamsGetTools } from '../mcp/utils.js';
9
+ import { ActorsMcpServer } from '../mcp/server.js';
10
+ import { parseInputParamsFromUrl } from '../mcp/utils.js';
11
+ import { getActorsAsTools } from '../tools/actor.js';
10
12
  import { getHelpMessage, HEADER_READINESS_PROBE, Routes } from './const.js';
11
13
  import { getActorRunData } from './utils.js';
12
14
  /**
@@ -24,9 +26,10 @@ async function loadToolsAndActors(mcpServer, url, apifyToken) {
24
26
  await mcpServer.loadDefaultActors(apifyToken);
25
27
  }
26
28
  }
27
- export function createExpressApp(host, mcpServer) {
29
+ export function createExpressApp(host, mcpServerOptions) {
28
30
  const app = express();
29
- let transportSSE;
31
+ const mcpServers = {};
32
+ const transportsSSE = {};
30
33
  const transports = {};
31
34
  function respondWithError(res, error, logMessage, statusCode = 500) {
32
35
  log.error(`${logMessage}: ${error}`);
@@ -49,11 +52,6 @@ export function createExpressApp(host, mcpServer) {
49
52
  }
50
53
  try {
51
54
  log.info(`Received GET message at: ${Routes.ROOT}`);
52
- // TODO: I think we should remove this logic, root should return only help message
53
- const tools = await processParamsGetTools(req.url, process.env.APIFY_TOKEN);
54
- if (tools) {
55
- mcpServer.upsertTools(tools);
56
- }
57
55
  res.setHeader('Content-Type', 'text/event-stream');
58
56
  res.setHeader('Cache-Control', 'no-cache');
59
57
  res.setHeader('Connection', 'keep-alive');
@@ -69,9 +67,24 @@ export function createExpressApp(host, mcpServer) {
69
67
  app.get(Routes.SSE, async (req, res) => {
70
68
  try {
71
69
  log.info(`Received GET message at: ${Routes.SSE}`);
70
+ const mcpServer = new ActorsMcpServer(mcpServerOptions, false);
71
+ // Load tools from Actor input for backwards compatibility
72
+ if (mcpServerOptions.actors && mcpServerOptions.actors.length > 0) {
73
+ const tools = await getActorsAsTools(mcpServerOptions.actors, process.env.APIFY_TOKEN);
74
+ mcpServer.upsertTools(tools);
75
+ }
72
76
  await loadToolsAndActors(mcpServer, req.url, process.env.APIFY_TOKEN);
73
- transportSSE = new SSEServerTransport(Routes.MESSAGE, res);
74
- await mcpServer.connect(transportSSE);
77
+ const transport = new SSEServerTransport(Routes.MESSAGE, res);
78
+ transportsSSE[transport.sessionId] = transport;
79
+ mcpServers[transport.sessionId] = mcpServer;
80
+ await mcpServer.connect(transport);
81
+ res.on('close', () => {
82
+ log.info('Connection closed, cleaning up', {
83
+ sessionId: transport.sessionId,
84
+ });
85
+ delete transportsSSE[transport.sessionId];
86
+ delete mcpServers[transport.sessionId];
87
+ });
75
88
  }
76
89
  catch (error) {
77
90
  respondWithError(res, error, `Error in GET ${Routes.SSE}`);
@@ -80,8 +93,22 @@ export function createExpressApp(host, mcpServer) {
80
93
  app.post(Routes.MESSAGE, async (req, res) => {
81
94
  try {
82
95
  log.info(`Received POST message at: ${Routes.MESSAGE}`);
83
- if (transportSSE) {
84
- await transportSSE.handlePostMessage(req, res);
96
+ const sessionId = new URL(req.url, `http://${req.headers.host}`).searchParams.get('sessionId');
97
+ if (!sessionId) {
98
+ log.error('No session ID provided in POST request');
99
+ res.status(400).json({
100
+ jsonrpc: '2.0',
101
+ error: {
102
+ code: -32000,
103
+ message: 'Bad Request: No session ID provided',
104
+ },
105
+ id: null,
106
+ });
107
+ return;
108
+ }
109
+ const transport = transportsSSE[sessionId];
110
+ if (transport) {
111
+ await transport.handlePostMessage(req, res);
85
112
  }
86
113
  else {
87
114
  log.error('Server is not connected to the client.');
@@ -119,6 +146,12 @@ export function createExpressApp(host, mcpServer) {
119
146
  sessionIdGenerator: () => randomUUID(),
120
147
  enableJsonResponse: false, // Use SSE response mode
121
148
  });
149
+ const mcpServer = new ActorsMcpServer(mcpServerOptions, false);
150
+ // Load tools from Actor input for backwards compatibility
151
+ if (mcpServerOptions.actors && mcpServerOptions.actors.length > 0) {
152
+ const tools = await getActorsAsTools(mcpServerOptions.actors, process.env.APIFY_TOKEN);
153
+ mcpServer.upsertTools(tools);
154
+ }
122
155
  // Load MCP server tools
123
156
  await loadToolsAndActors(mcpServer, req.url, process.env.APIFY_TOKEN);
124
157
  // Connect the transport to the MCP server BEFORE handling the request
@@ -128,6 +161,7 @@ export function createExpressApp(host, mcpServer) {
128
161
  // Store the transport by session ID for future requests
129
162
  if (transport.sessionId) {
130
163
  transports[transport.sessionId] = transport;
164
+ mcpServers[transport.sessionId] = mcpServer;
131
165
  }
132
166
  return; // Already handled
133
167
  }
@@ -156,6 +190,17 @@ export function createExpressApp(host, mcpServer) {
156
190
  // The spec requires returning 405 Method Not Allowed in this case
157
191
  res.status(405).set('Allow', 'POST').send('Method Not Allowed');
158
192
  });
193
+ app.delete(Routes.MCP, async (req, res) => {
194
+ const sessionId = req.headers['mcp-session-id'];
195
+ const transport = transports[sessionId || ''];
196
+ if (transport) {
197
+ log.info(`Deleting MCP session with ID: ${sessionId}`);
198
+ await transport.handleRequest(req, res, req.body);
199
+ return;
200
+ }
201
+ log.error('Session not found', { sessionId });
202
+ res.status(400).send('Bad Request: Session not found').end();
203
+ });
159
204
  // Catch-all for undefined routes
160
205
  app.use((req, res) => {
161
206
  res.status(404).json({ message: `There is nothing at route ${req.method} ${req.originalUrl}. ${getHelpMessage(host)}` }).end();
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/actor/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/actor/server.ts"],"names":[],"mappings":"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"}
package/dist/const.d.ts CHANGED
@@ -8,6 +8,7 @@ export declare const SERVER_VERSION = "1.0.0";
8
8
  export declare const USER_AGENT_ORIGIN = "Origin/mcp-server";
9
9
  export declare enum HelperTools {
10
10
  ACTOR_ADD = "add-actor",
11
+ ACTOR_CALL = "call-actor",
11
12
  ACTOR_GET = "get-actor",
12
13
  ACTOR_GET_DETAILS = "get-actor-details",
13
14
  ACTOR_REMOVE = "remove-actor",
@@ -30,9 +31,9 @@ export declare const defaults: {
30
31
  };
31
32
  export declare const ACTOR_OUTPUT_MAX_CHARS_PER_ITEM = 5000;
32
33
  export declare const ACTOR_OUTPUT_TRUNCATED_MESSAGE: string;
33
- export declare const ACTOR_ADDITIONAL_INSTRUCTIONS = "Never call/execute tool/Actor unless confirmed by the user.\n Workflow: When an Actor runs, it processes data and stores results in Apify storage,\n Datasets (for structured/tabular data) and Key-Value Store (for various data types like JSON, images, HTML).\n Each Actor run produces a dataset ID and key-value store ID for accessing the results.\n By default, the number of items returned from an Actor run is limited to 5.\n You can always use get-dataset-items tool to get more items from the dataset.\n Actor run input is always stored in the key-value store, recordKey: INPUT.";
34
- export declare const TOOL_CACHE_MAX_SIZE = 500;
35
- export declare const TOOL_CACHE_TTL_SECS: number;
34
+ export declare const ACTOR_ADDITIONAL_INSTRUCTIONS = "Never call/execute tool/Actor unless confirmed by the user.";
35
+ export declare const ACTOR_CACHE_MAX_SIZE = 500;
36
+ export declare const ACTOR_CACHE_TTL_SECS: number;
36
37
  export declare const ACTOR_PRICING_MODEL: {
37
38
  /** Rental actors */
38
39
  readonly FLAT_PRICE_PER_MONTH: "FLAT_PRICE_PER_MONTH";
@@ -47,4 +48,5 @@ export declare const ACTOR_PRICING_MODEL: {
47
48
  * so we can safely filter out rental Actors from the search and ensure we return some results.
48
49
  */
49
50
  export declare const ACTOR_SEARCH_ABOVE_LIMIT = 50;
51
+ export declare const MCP_STREAMABLE_ENDPOINT = "/mcp";
50
52
  //# sourceMappingURL=const.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAC7C,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAGpD,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAG7C,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAC9C,eAAO,MAAM,cAAc,UAAU,CAAC;AAGtC,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,oBAAY,WAAW;IACnB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,iBAAiB,sBAAsB;IACvC,YAAY,iBAAiB;IAC7B,gBAAgB,oBAAoB;IACpC,cAAc,kBAAkB;IAChC,cAAc,kBAAkB;IAChC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,wBAAwB,6BAA6B;IACrD,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,0BAA0B,+BAA+B;IACzD,mBAAmB,0BAA0B;IAC7C,YAAY,kBAAkB;CACjC;AAED,eAAO,MAAM,QAAQ;;CAIpB,CAAC;AAGF,eAAO,MAAM,+BAA+B,OAAQ,CAAC;AACrD,eAAO,MAAM,8BAA8B,QAC8F,CAAC;AAE1I,eAAO,MAAM,6BAA6B,kmBAMsC,CAAC;AAEjF,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,mBAAmB,QAAU,CAAC;AAE3C,eAAO,MAAM,mBAAmB;IAC5B,oBAAoB;;;IAGpB,kCAAkC;;IAElC,iCAAiC;;CAE3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAC"}
1
+ {"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAC7C,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,4BAA4B,MAAM,CAAC;AAEhD,eAAO,MAAM,kCAAkC,IAAI,CAAC;AAGpD,eAAO,MAAM,uBAAuB,OAAQ,CAAC;AAG7C,eAAO,MAAM,WAAW,qBAAqB,CAAC;AAC9C,eAAO,MAAM,cAAc,UAAU,CAAC;AAGtC,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD,oBAAY,WAAW;IACnB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,iBAAiB,sBAAsB;IACvC,YAAY,iBAAiB;IAC7B,gBAAgB,oBAAoB;IACpC,cAAc,kBAAkB;IAChC,cAAc,kBAAkB;IAChC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,wBAAwB,6BAA6B;IACrD,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,0BAA0B,+BAA+B;IACzD,mBAAmB,0BAA0B;IAC7C,YAAY,kBAAkB;CACjC;AAED,eAAO,MAAM,QAAQ;;CAIpB,CAAC;AAGF,eAAO,MAAM,+BAA+B,OAAQ,CAAC;AACrD,eAAO,MAAM,8BAA8B,QAC8F,CAAC;AAE1I,eAAO,MAAM,6BAA6B,gEAAgE,CAAC;AAE3G,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,oBAAoB,QAAU,CAAC;AAE5C,eAAO,MAAM,mBAAmB;IAC5B,oBAAoB;;;IAGpB,kCAAkC;;IAElC,iCAAiC;;CAE3B,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,eAAO,MAAM,uBAAuB,SAAS,CAAC"}
package/dist/const.js CHANGED
@@ -13,6 +13,7 @@ export const USER_AGENT_ORIGIN = 'Origin/mcp-server';
13
13
  export var HelperTools;
14
14
  (function (HelperTools) {
15
15
  HelperTools["ACTOR_ADD"] = "add-actor";
16
+ HelperTools["ACTOR_CALL"] = "call-actor";
16
17
  HelperTools["ACTOR_GET"] = "get-actor";
17
18
  HelperTools["ACTOR_GET_DETAILS"] = "get-actor-details";
18
19
  HelperTools["ACTOR_REMOVE"] = "remove-actor";
@@ -39,15 +40,9 @@ export const defaults = {
39
40
  export const ACTOR_OUTPUT_MAX_CHARS_PER_ITEM = 5000;
40
41
  export const ACTOR_OUTPUT_TRUNCATED_MESSAGE = `Output was truncated because it will not fit into context.`
41
42
  + `There is no reason to call this tool again! You can use ${HelperTools.DATASET_GET_ITEMS} tool to get more items from the dataset.`;
42
- export const ACTOR_ADDITIONAL_INSTRUCTIONS = `Never call/execute tool/Actor unless confirmed by the user.
43
- Workflow: When an Actor runs, it processes data and stores results in Apify storage,
44
- Datasets (for structured/tabular data) and Key-Value Store (for various data types like JSON, images, HTML).
45
- Each Actor run produces a dataset ID and key-value store ID for accessing the results.
46
- By default, the number of items returned from an Actor run is limited to ${ACTOR_RUN_DATASET_OUTPUT_MAX_ITEMS}.
47
- You can always use ${HelperTools.DATASET_GET_ITEMS} tool to get more items from the dataset.
48
- Actor run input is always stored in the key-value store, recordKey: INPUT.`;
49
- export const TOOL_CACHE_MAX_SIZE = 500;
50
- export const TOOL_CACHE_TTL_SECS = 30 * 60;
43
+ export const ACTOR_ADDITIONAL_INSTRUCTIONS = 'Never call/execute tool/Actor unless confirmed by the user.';
44
+ export const ACTOR_CACHE_MAX_SIZE = 500;
45
+ export const ACTOR_CACHE_TTL_SECS = 30 * 60; // 30 minutes
51
46
  export const ACTOR_PRICING_MODEL = {
52
47
  /** Rental actors */
53
48
  FLAT_PRICE_PER_MONTH: 'FLAT_PRICE_PER_MONTH',
@@ -62,4 +57,5 @@ export const ACTOR_PRICING_MODEL = {
62
57
  * so we can safely filter out rental Actors from the search and ensure we return some results.
63
58
  */
64
59
  export const ACTOR_SEARCH_ABOVE_LIMIT = 50;
60
+ export const MCP_STREAMABLE_ENDPOINT = '/mcp';
65
61
  //# sourceMappingURL=const.js.map
package/dist/const.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAK,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEhD,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AAEpD,kBAAkB;AAClB,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAK,CAAC,CAAC,kGAAkG;AAEhJ,aAAa;AACb,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,qBAAqB;AACrB,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAErD,MAAM,CAAN,IAAY,WAkBX;AAlBD,WAAY,WAAW;IACnB,sCAAuB,CAAA;IACvB,sCAAuB,CAAA;IACvB,sDAAuC,CAAA;IACvC,4CAA6B,CAAA;IAC7B,mDAAoC,CAAA;IACpC,+CAAgC,CAAA;IAChC,+CAAgC,CAAA;IAChC,wDAAyC,CAAA;IACzC,0CAA2B,CAAA;IAC3B,oDAAqC,CAAA;IACrC,sDAAuC,CAAA;IACvC,oEAAqD,CAAA;IACrD,0DAA2C,CAAA;IAC3C,oEAAqD,CAAA;IACrD,wEAAyD,CAAA;IACzD,4DAA6C,CAAA;IAC7C,6CAA8B,CAAA;AAClC,CAAC,EAlBW,WAAW,KAAX,WAAW,QAkBtB;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,MAAM,EAAE;QACJ,uBAAuB;KAC1B;CACJ,CAAC;AAEF,qBAAqB;AACrB,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAK,CAAC;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG,4DAA4D;MACpG,2DAA2D,WAAW,CAAC,iBAAiB,2CAA2C,CAAC;AAE1I,MAAM,CAAC,MAAM,6BAA6B,GAAG;;;;gFAImC,kCAAkC;0BACxF,WAAW,CAAC,iBAAiB;gFACyB,CAAC;AAEjF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,oBAAoB;IACpB,oBAAoB,EAAE,sBAAsB;IAC5C,IAAI,EAAE,MAAM;IACZ,kCAAkC;IAClC,sBAAsB,EAAE,wBAAwB;IAChD,iCAAiC;IACjC,aAAa,EAAE,eAAe;CACxB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA,oBAAoB;AACpB,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAK,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAC;AACzC,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,CAAC;AAEhD,MAAM,CAAC,MAAM,kCAAkC,GAAG,CAAC,CAAC;AAEpD,kBAAkB;AAClB,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAK,CAAC,CAAC,kGAAkG;AAEhJ,aAAa;AACb,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAC;AAC9C,MAAM,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC;AAEtC,qBAAqB;AACrB,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAErD,MAAM,CAAN,IAAY,WAmBX;AAnBD,WAAY,WAAW;IACnB,sCAAuB,CAAA;IACvB,wCAAyB,CAAA;IACzB,sCAAuB,CAAA;IACvB,sDAAuC,CAAA;IACvC,4CAA6B,CAAA;IAC7B,mDAAoC,CAAA;IACpC,+CAAgC,CAAA;IAChC,+CAAgC,CAAA;IAChC,wDAAyC,CAAA;IACzC,0CAA2B,CAAA;IAC3B,oDAAqC,CAAA;IACrC,sDAAuC,CAAA;IACvC,oEAAqD,CAAA;IACrD,0DAA2C,CAAA;IAC3C,oEAAqD,CAAA;IACrD,wEAAyD,CAAA;IACzD,4DAA6C,CAAA;IAC7C,6CAA8B,CAAA;AAClC,CAAC,EAnBW,WAAW,KAAX,WAAW,QAmBtB;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,MAAM,EAAE;QACJ,uBAAuB;KAC1B;CACJ,CAAC;AAEF,qBAAqB;AACrB,MAAM,CAAC,MAAM,+BAA+B,GAAG,IAAK,CAAC;AACrD,MAAM,CAAC,MAAM,8BAA8B,GAAG,4DAA4D;MACpG,2DAA2D,WAAW,CAAC,iBAAiB,2CAA2C,CAAC;AAE1I,MAAM,CAAC,MAAM,6BAA6B,GAAG,6DAA6D,CAAC;AAE3G,MAAM,CAAC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,aAAa;AAE1D,MAAM,CAAC,MAAM,mBAAmB,GAAG;IAC/B,oBAAoB;IACpB,oBAAoB,EAAE,sBAAsB;IAC5C,IAAI,EAAE,MAAM;IACZ,kCAAkC;IAClC,sBAAsB,EAAE,wBAAwB;IAChD,iCAAiC;IACjC,aAAa,EAAE,eAAe;CACxB,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAE3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC"}
package/dist/main.js CHANGED
@@ -7,8 +7,7 @@ import { Actor } from 'apify';
7
7
  import log from '@apify/log';
8
8
  import { createExpressApp } from './actor/server.js';
9
9
  import { processInput } from './input.js';
10
- import { ActorsMcpServer } from './mcp/server.js';
11
- import { callActorGetDataset, getActorsAsTools } from './tools/index.js';
10
+ import { callActorGetDataset } from './tools/index.js';
12
11
  const STANDBY_MODE = Actor.getEnv().metaOrigin === 'STANDBY';
13
12
  await Actor.init();
14
13
  const HOST = Actor.isAtHome() ? process.env.ACTOR_STANDBY_URL : 'http://localhost';
@@ -20,20 +19,22 @@ if (!process.env.APIFY_TOKEN) {
20
19
  const input = processInput((_a = (await Actor.getInput())) !== null && _a !== void 0 ? _a : {});
21
20
  log.info(`Loaded input: ${JSON.stringify(input)} `);
22
21
  if (STANDBY_MODE) {
23
- const mcpServer = new ActorsMcpServer({
24
- enableAddingActors: Boolean(input.enableAddingActors),
25
- enableDefaultActors: false,
26
- });
27
- const app = createExpressApp(HOST, mcpServer);
28
- log.info('Actor is running in the STANDBY mode.');
22
+ let actorsToLoad = [];
23
+ // TODO: in standby mode the input loading does not actually work,
24
+ // we should remove this since we are using the URL query parameters to load Actors
29
25
  // Load only Actors specified in the input
30
26
  // If you wish to start without any Actor, create a task and leave the input empty
31
27
  if (input.actors && input.actors.length > 0) {
32
28
  const { actors } = input;
33
- const actorsToLoad = Array.isArray(actors) ? actors : actors.split(',');
34
- const tools = await getActorsAsTools(actorsToLoad, process.env.APIFY_TOKEN);
35
- mcpServer.upsertTools(tools);
29
+ actorsToLoad = Array.isArray(actors) ? actors : actors.split(',');
36
30
  }
31
+ // Include Actors to load in the MCP server options for backwards compatibility
32
+ const app = createExpressApp(HOST, {
33
+ enableAddingActors: Boolean(input.enableAddingActors),
34
+ enableDefaultActors: false,
35
+ actors: actorsToLoad,
36
+ });
37
+ log.info('Actor is running in the STANDBY mode.');
37
38
  app.listen(PORT, () => {
38
39
  log.info(`The Actor web server is listening for user requests at ${HOST}`);
39
40
  });
@@ -44,9 +45,14 @@ else {
44
45
  await Actor.fail('If you need to debug a specific Actor, please provide the debugActor and debugActorInput fields in the input');
45
46
  }
46
47
  const options = { memory: input.maxActorMemoryBytes };
47
- const { datasetInfo, items } = await callActorGetDataset(input.debugActor, input.debugActorInput, process.env.APIFY_TOKEN, options);
48
+ const { items } = await callActorGetDataset(input.debugActor, input.debugActorInput, process.env.APIFY_TOKEN, options);
48
49
  await Actor.pushData(items);
49
- log.info(`Pushed ${datasetInfo === null || datasetInfo === void 0 ? void 0 : datasetInfo.itemCount} items to the dataset`);
50
+ log.info(`Pushed ${items.count} items to the dataset`);
50
51
  await Actor.exit();
51
52
  }
53
+ // So Ctrl+C works locally
54
+ process.on('SIGINT', async () => {
55
+ log.info('Received SIGINT, shutting down gracefully...');
56
+ await Actor.exit();
57
+ });
52
58
  //# sourceMappingURL=main.js.map
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":"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"}
@@ -1,22 +1,22 @@
1
1
  import type { ActorDefinition } from 'apify-client';
2
- export declare function isActorMCPServer(actorID: string, apifyToken: string): Promise<boolean>;
3
- export declare function getActorsMCPServerPath(actorID: string, apifyToken: string): Promise<string | undefined>;
4
- export declare function getActorsMCPServerURL(actorID: string, apifyToken: string): Promise<string>;
2
+ import type { ActorDefinitionPruned } from '../types.js';
3
+ /**
4
+ * Returns the MCP server path for the given Actor ID.
5
+ * Prioritizes the streamable transport path if available.
6
+ * The `webServerMcpPath` is a string containing MCP endpoint or endpoints separated by commas.
7
+ */
8
+ export declare function getActorMCPServerPath(actorDefinition: ActorDefinition | ActorDefinitionPruned): string | null;
9
+ /**
10
+ * Returns the MCP server URL for the given Actor ID.
11
+ */
12
+ export declare function getActorMCPServerURL(realActorId: string, mcpServerPath: string): Promise<string>;
5
13
  /**
6
14
  * Gets Actor ID from the Actor object.
7
- *
8
- * @param actorID
9
- * @param apifyToken
10
15
  */
11
- export declare function getRealActorID(actorID: string, apifyToken: string): Promise<string>;
16
+ export declare function getRealActorID(actorIdOrName: string, apifyToken: string): Promise<string>;
12
17
  /**
13
18
  * Returns standby URL for given Actor ID.
14
- *
15
- * @param actorID
16
- * @param standbyBaseUrl
17
- * @param apifyToken
18
- * @returns
19
19
  */
20
- export declare function getActorStandbyURL(actorID: string, apifyToken: string, standbyBaseUrl?: string): Promise<string>;
20
+ export declare function getActorStandbyURL(realActorId: string, standbyBaseUrl?: string): Promise<string>;
21
21
  export declare function getActorDefinition(actorID: string, apifyToken: string): Promise<ActorDefinition>;
22
22
  //# sourceMappingURL=actors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actors.d.ts","sourceRoot":"","sources":["../../src/mcp/actors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAG5F;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAQ7G;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAOhG;AAED;;;;;EAKE;AACF,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASzF;AAED;;;;;;;EAOE;AACF,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,SAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAG7H;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CActG"}
1
+ {"version":3,"file":"actors.d.ts","sourceRoot":"","sources":["../../src/mcp/actors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAIpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAEzD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,eAAe,EAAE,eAAe,GAAG,qBAAqB,GAAG,MAAM,GAAG,IAAI,CAqB7G;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAMtG;AAED;;EAEE;AACF,wBAAsB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS/F;AAED;;EAEE;AACF,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,SAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7G;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CActG"}
@@ -1,49 +1,56 @@
1
1
  import { ApifyClient } from '../apify-client.js';
2
- export async function isActorMCPServer(actorID, apifyToken) {
3
- const mcpPath = await getActorsMCPServerPath(actorID, apifyToken);
4
- return ((mcpPath === null || mcpPath === void 0 ? void 0 : mcpPath.length) || 0) > 0;
5
- }
6
- export async function getActorsMCPServerPath(actorID, apifyToken) {
7
- const actorDefinition = await getActorDefinition(actorID, apifyToken);
2
+ import { MCP_STREAMABLE_ENDPOINT } from '../const.js';
3
+ /**
4
+ * Returns the MCP server path for the given Actor ID.
5
+ * Prioritizes the streamable transport path if available.
6
+ * The `webServerMcpPath` is a string containing MCP endpoint or endpoints separated by commas.
7
+ */
8
+ export function getActorMCPServerPath(actorDefinition) {
8
9
  if ('webServerMcpPath' in actorDefinition && typeof actorDefinition.webServerMcpPath === 'string') {
9
- return actorDefinition.webServerMcpPath;
10
+ const webServerMcpPath = actorDefinition.webServerMcpPath.trim();
11
+ const paths = webServerMcpPath.split(',').map((path) => path.trim());
12
+ // If there is only one path, return it directly
13
+ if (paths.length === 1) {
14
+ return paths[0];
15
+ }
16
+ // If there are multiple paths, prioritize the streamable transport path
17
+ // otherwise return the first one.
18
+ const streamablePath = paths.find((path) => path === MCP_STREAMABLE_ENDPOINT);
19
+ if (streamablePath) {
20
+ return streamablePath;
21
+ }
22
+ // Otherwise, return the first path
23
+ return paths[0];
10
24
  }
11
- return undefined;
25
+ return null;
12
26
  }
13
- export async function getActorsMCPServerURL(actorID, apifyToken) {
27
+ /**
28
+ * Returns the MCP server URL for the given Actor ID.
29
+ */
30
+ export async function getActorMCPServerURL(realActorId, mcpServerPath) {
14
31
  // TODO: get from API instead
15
32
  const standbyBaseUrl = process.env.HOSTNAME === 'mcp-securitybyobscurity.apify.com'
16
33
  ? 'securitybyobscurity.apify.actor' : 'apify.actor';
17
- const standbyUrl = await getActorStandbyURL(actorID, apifyToken, standbyBaseUrl);
18
- const mcpPath = await getActorsMCPServerPath(actorID, apifyToken);
19
- return `${standbyUrl}${mcpPath}`;
34
+ const standbyUrl = await getActorStandbyURL(realActorId, standbyBaseUrl);
35
+ return `${standbyUrl}${mcpServerPath}`;
20
36
  }
21
37
  /**
22
38
  * Gets Actor ID from the Actor object.
23
- *
24
- * @param actorID
25
- * @param apifyToken
26
39
  */
27
- export async function getRealActorID(actorID, apifyToken) {
40
+ export async function getRealActorID(actorIdOrName, apifyToken) {
28
41
  const apifyClient = new ApifyClient({ token: apifyToken });
29
- const actor = apifyClient.actor(actorID);
42
+ const actor = apifyClient.actor(actorIdOrName);
30
43
  const info = await actor.get();
31
44
  if (!info) {
32
- throw new Error(`Actor ${actorID} not found`);
45
+ throw new Error(`Actor ${actorIdOrName} not found`);
33
46
  }
34
47
  return info.id;
35
48
  }
36
49
  /**
37
50
  * Returns standby URL for given Actor ID.
38
- *
39
- * @param actorID
40
- * @param standbyBaseUrl
41
- * @param apifyToken
42
- * @returns
43
51
  */
44
- export async function getActorStandbyURL(actorID, apifyToken, standbyBaseUrl = 'apify.actor') {
45
- const actorRealID = await getRealActorID(actorID, apifyToken);
46
- return `https://${actorRealID}.${standbyBaseUrl}`;
52
+ export async function getActorStandbyURL(realActorId, standbyBaseUrl = 'apify.actor') {
53
+ return `https://${realActorId}.${standbyBaseUrl}`;
47
54
  }
48
55
  export async function getActorDefinition(actorID, apifyToken) {
49
56
  const apifyClient = new ApifyClient({ token: apifyToken });
@@ -1 +1 @@
1
- {"version":3,"file":"actors.js","sourceRoot":"","sources":["../../src/mcp/actors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"actors.js","sourceRoot":"","sources":["../../src/mcp/actors.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
2
  /**
3
3
  * Creates and connects a ModelContextProtocol client.
4
+ * First tries streamable HTTP transport, then falls back to SSE transport.
4
5
  */
5
- export declare function createMCPClient(url: string, token: string): Promise<Client>;
6
+ export declare function connectMCPClient(url: string, token: string): Promise<Client>;
6
7
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAKnE;;GAEG;AACH,wBAAsB,eAAe,CACjC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAC3B,OAAO,CAAC,MAAM,CAAC,CA8BjB"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAQnE;;;GAGG;AACH,wBAAsB,gBAAgB,CAClC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAC3B,OAAO,CAAC,MAAM,CAAC,CAUjB"}
@@ -1,10 +1,28 @@
1
1
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
2
  import { SSEClientTransport } from '@modelcontextprotocol/sdk/client/sse.js';
3
+ import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
4
+ import log from '@apify/log';
3
5
  import { getMCPServerID } from './utils.js';
4
6
  /**
5
7
  * Creates and connects a ModelContextProtocol client.
8
+ * First tries streamable HTTP transport, then falls back to SSE transport.
6
9
  */
7
- export async function createMCPClient(url, token) {
10
+ export async function connectMCPClient(url, token) {
11
+ try {
12
+ return await createMCPStreamableClient(url, token);
13
+ }
14
+ catch {
15
+ // If streamable HTTP transport fails, fall back to SSE transport
16
+ log.info('Streamable HTTP transport failed, falling back to SSE transport', {
17
+ url,
18
+ });
19
+ return await createMCPSSEClient(url, token);
20
+ }
21
+ }
22
+ /**
23
+ * Creates and connects a ModelContextProtocol client.
24
+ */
25
+ async function createMCPSSEClient(url, token) {
8
26
  const transport = new SSEClientTransport(new URL(url), {
9
27
  requestInit: {
10
28
  headers: {
@@ -30,4 +48,22 @@ export async function createMCPClient(url, token) {
30
48
  await client.connect(transport);
31
49
  return client;
32
50
  }
51
+ /**
52
+ * Creates and connects a ModelContextProtocol client using the streamable HTTP transport.
53
+ */
54
+ async function createMCPStreamableClient(url, token) {
55
+ const transport = new StreamableHTTPClientTransport(new URL(url), {
56
+ requestInit: {
57
+ headers: {
58
+ authorization: `Bearer ${token}`,
59
+ },
60
+ },
61
+ });
62
+ const client = new Client({
63
+ name: getMCPServerID(url),
64
+ version: '1.0.0',
65
+ });
66
+ await client.connect(transport);
67
+ return client;
68
+ }
33
69
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACjC,GAAW,EAAE,KAAa;IAE1B,MAAM,SAAS,GAAG,IAAI,kBAAkB,CACpC,IAAI,GAAG,CAAC,GAAG,CAAC,EACZ;QACI,WAAW,EAAE;YACT,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,KAAK,EAAE;aACnC;SACJ;QACD,eAAe,EAAE;YACb,6EAA6E;YAC7E,sEAAsE;YACtE,2FAA2F;YAC3F,KAAK,CAAC,KAAK,CAAC,KAA6B,EAAE,IAAkB;gBACzD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,EAAE,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;gBAChD,OAAO,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9C,CAAC;YACL,8DAA8D;SACtD,EAAE,yDAAyD;KACtE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACtB,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC;QACzB,OAAO,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,MAAM,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/mcp/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAEnG,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAClC,GAAW,EAAE,KAAa;IAE1B,IAAI,CAAC;QACD,OAAO,MAAM,yBAAyB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACL,iEAAiE;QACjE,GAAG,CAAC,IAAI,CAAC,iEAAiE,EAAE;YACxE,GAAG;SACN,CAAC,CAAC;QACH,OAAO,MAAM,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB,CAC7B,GAAW,EAAE,KAAa;IAE1B,MAAM,SAAS,GAAG,IAAI,kBAAkB,CACpC,IAAI,GAAG,CAAC,GAAG,CAAC,EACZ;QACI,WAAW,EAAE;YACT,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,KAAK,EAAE;aACnC;SACJ;QACD,eAAe,EAAE;YACb,6EAA6E;YAC7E,sEAAsE;YACtE,2FAA2F;YAC3F,KAAK,CAAC,KAAK,CAAC,KAA6B,EAAE,IAAkB;gBACzD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,KAAI,EAAE,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;gBAChD,OAAO,KAAK,CAAC,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;YAC9C,CAAC;YACL,8DAA8D;SACtD,EAAE,yDAAyD;KACtE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACtB,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC;QACzB,OAAO,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,MAAM,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,yBAAyB,CACpC,GAAW,EAAE,KAAa;IAE1B,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAC/C,IAAI,GAAG,CAAC,GAAG,CAAC,EACZ;QACI,WAAW,EAAE;YACT,OAAO,EAAE;gBACL,aAAa,EAAE,UAAU,KAAK,EAAE;aACnC;SACJ;KACJ,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACtB,IAAI,EAAE,cAAc,CAAC,GAAG,CAAC;QACzB,OAAO,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,MAAM,CAAC;AAClB,CAAC"}
@@ -46,7 +46,7 @@ export declare class ActorsMcpServer {
46
46
  * Returns the list of all currently loaded Actor tool IDs.
47
47
  * @returns {string[]} - Array of loaded Actor tool IDs (e.g., 'apify/rag-web-browser')
48
48
  */
49
- private listActorToolNames;
49
+ listActorToolNames(): string[];
50
50
  /**
51
51
  * Returns a list of Actor IDs that are registered as MCP servers.
52
52
  * @returns {string[]} - An array of Actor MCP server Actor IDs (e.g., 'apify/actors-mcp-server').
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAsB/E,OAAO,KAAK,EAAuC,SAAS,EAAE,MAAM,aAAa,CAAC;AAKlF,KAAK,sBAAsB,GAAG;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAIF;;GAEG;AACH,qBAAa,eAAe;IACxB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9C,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,aAAa,CAAoC;gBAE7C,OAAO,GAAE,sBAA2B,EAAE,kBAAkB,UAAO;IAmC3E;;;OAGG;IACI,aAAa,IAAI,MAAM,EAAE;IAIhC;;;;;;;MAOE;IACK,2BAA2B,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI;IAOzE;;;MAGE;IACK,6BAA6B;IAOpC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;;OAGG;IACI,gBAAgB,IAAI,MAAM,EAAE;IAInC;;;;;MAKE;IACW,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM;IA6BpE;;;;MAIE;IACW,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAcnC;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxC;;;;OAIG;IACU,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASjE;;;OAGG;IACU,gBAAgB,CAAC,UAAU,EAAE,MAAM;IAIhD;;;;;;OAMG;IACU,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAQ7D;;OAEG;IACI,uBAAuB;IAKvB,wBAAwB;IAK/B;OACG;IACI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,+BAA+B,UAAQ,GAAG,MAAM,EAAE;IAahG;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,+BAA+B,UAAQ;IAQ9E,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,iBAAiB;IA0KnB,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB/B"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAqB/E,OAAO,KAAK,EAAuC,SAAS,EAAE,MAAM,aAAa,CAAC;AAKlF,KAAK,sBAAsB,GAAG;IAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,mBAAmB,CAAC,EAAE,OAAO,CAAC;CACjC,CAAC;AAIF;;GAEG;AACH,qBAAa,eAAe;IACxB,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9C,OAAO,CAAC,OAAO,CAAyB;IACxC,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,aAAa,CAAoC;gBAE7C,OAAO,GAAE,sBAA2B,EAAE,kBAAkB,UAAO;IAmC3E;;;OAGG;IACI,aAAa,IAAI,MAAM,EAAE;IAIhC;;;;;;;MAOE;IACK,2BAA2B,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,IAAI;IAOzE;;;MAGE;IACK,6BAA6B;IAOpC;;;OAGG;IACH,OAAO,CAAC,qBAAqB;IAM7B;;;OAGG;IACI,kBAAkB,IAAI,MAAM,EAAE;IAMrC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;;OAGG;IACI,gBAAgB,IAAI,MAAM,EAAE;IAInC;;;;;MAKE;IACW,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM;IA6BpE;;;;MAIE;IACW,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAcnC;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAMxC;;;;OAIG;IACU,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASjE;;;OAGG;IACU,gBAAgB,CAAC,UAAU,EAAE,MAAM;IAIhD;;;;;;OAMG;IACU,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;IAQ7D;;OAEG;IACI,uBAAuB;IAKvB,wBAAwB;IAK/B;OACG;IACI,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,+BAA+B,UAAQ,GAAG,MAAM,EAAE;IAahG;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,+BAA+B,UAAQ;IAQ9E,OAAO,CAAC,yBAAyB;IAQjC,OAAO,CAAC,gBAAgB;IASxB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,iBAAiB;IAqLnB,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB/B"}