@apify/actors-mcp-server 0.4.7 → 0.4.9
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.
- package/README.md +3 -0
- package/dist/actor/server.d.ts.map +1 -1
- package/dist/actor/server.js +7 -4
- package/dist/actor/server.js.map +1 -1
- package/dist/apify-client.d.ts +6 -1
- package/dist/apify-client.d.ts.map +1 -1
- package/dist/apify-client.js +18 -3
- package/dist/apify-client.js.map +1 -1
- package/dist/const.d.ts +5 -0
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +5 -0
- package/dist/const.js.map +1 -1
- package/dist/index-internals.d.ts +2 -1
- package/dist/index-internals.d.ts.map +1 -1
- package/dist/index-internals.js +2 -1
- package/dist/index-internals.js.map +1 -1
- package/dist/main.js +3 -1
- package/dist/main.js.map +1 -1
- package/dist/mcp/actors.d.ts +0 -1
- package/dist/mcp/actors.d.ts.map +1 -1
- package/dist/mcp/actors.js +0 -14
- package/dist/mcp/actors.js.map +1 -1
- package/dist/mcp/server.d.ts +14 -4
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +91 -13
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/utils.d.ts +2 -1
- package/dist/mcp/utils.d.ts.map +1 -1
- package/dist/mcp/utils.js +2 -2
- package/dist/mcp/utils.js.map +1 -1
- package/dist/stdio.js +3 -1
- package/dist/stdio.js.map +1 -1
- package/dist/tools/actor.d.ts +5 -4
- package/dist/tools/actor.d.ts.map +1 -1
- package/dist/tools/actor.js +111 -79
- package/dist/tools/actor.js.map +1 -1
- package/dist/tools/build.d.ts +2 -1
- package/dist/tools/build.d.ts.map +1 -1
- package/dist/tools/build.js +4 -4
- package/dist/tools/build.js.map +1 -1
- package/dist/tools/fetch-actor-details.d.ts.map +1 -1
- package/dist/tools/fetch-actor-details.js +3 -1
- package/dist/tools/fetch-actor-details.js.map +1 -1
- package/dist/tools/get-actor-output.d.ts.map +1 -1
- package/dist/tools/get-actor-output.js +26 -5
- package/dist/tools/get-actor-output.js.map +1 -1
- package/dist/tools/helpers.d.ts.map +1 -1
- package/dist/tools/helpers.js +3 -1
- package/dist/tools/helpers.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +6 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/actor-details.d.ts +2 -1
- package/dist/utils/actor-details.d.ts.map +1 -1
- package/dist/utils/actor-details.js +3 -5
- package/dist/utils/actor-details.js.map +1 -1
- package/dist/utils/progress.d.ts +2 -1
- package/dist/utils/progress.d.ts.map +1 -1
- package/dist/utils/progress.js +2 -4
- package/dist/utils/progress.js.map +1 -1
- package/dist/utils/tools-loader.d.ts +2 -1
- package/dist/utils/tools-loader.d.ts.map +1 -1
- package/dist/utils/tools-loader.js +2 -2
- package/dist/utils/tools-loader.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -313,6 +313,9 @@ To create a canary release, add the `beta` tag to your PR branch.
|
|
|
313
313
|
This publishes the package to [pkg.pr.new](https://pkg.pr.new/) for staging and testing before merging.
|
|
314
314
|
See [the workflow file](.github/workflows/pre_release.yaml) for details.
|
|
315
315
|
|
|
316
|
+
## 🐋 Docker Hub integration
|
|
317
|
+
The Apify MCP Server is also available on [Docker Hub](https://hub.docker.com/mcp/server/apify-mcp-server/overview), registered via the [mcp-registry](https://github.com/docker/mcp-registry) repository. The entry in `servers/apify-mcp-server/server.yaml` should be deployed automatically by the Docker Hub MCP registry (deployment frequency is unknown). **Before making major changes to the `stdio` server version, be sure to test it locally to ensure the Docker build passes.** To test, change the `source.branch` to your PR branch and run `task build -- apify-mcp-server`. For more details, see [CONTRIBUTING.md](https://github.com/docker/mcp-registry/blob/main/CONTRIBUTING.md).
|
|
318
|
+
|
|
316
319
|
# 🐛 Troubleshooting (local MCP server)
|
|
317
320
|
|
|
318
321
|
- Make sure you have `node` installed by running `node -v`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/actor/server.ts"],"names":[],"mappings":"AASA,OAAO,OAAO,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/actor/server.ts"],"names":[],"mappings":"AASA,OAAO,OAAO,MAAM,SAAS,CAAC;AAS9B,wBAAgB,gBAAgB,CAC5B,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAgNjB"}
|
package/dist/actor/server.js
CHANGED
|
@@ -6,6 +6,7 @@ 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 { ApifyClient } from '../apify-client.js';
|
|
9
10
|
import { ActorsMcpServer } from '../mcp/server.js';
|
|
10
11
|
import { getHelpMessage, HEADER_READINESS_PROBE, Routes, TransportType } from './const.js';
|
|
11
12
|
import { getActorRunData } from './utils.js';
|
|
@@ -58,12 +59,13 @@ export function createExpressApp(host) {
|
|
|
58
59
|
rt: Routes.SSE,
|
|
59
60
|
tr: TransportType.SSE,
|
|
60
61
|
});
|
|
61
|
-
const mcpServer = new ActorsMcpServer(false);
|
|
62
|
+
const mcpServer = new ActorsMcpServer({ setupSigintHandler: false });
|
|
62
63
|
const transport = new SSEServerTransport(Routes.MESSAGE, res);
|
|
63
64
|
// Load MCP server tools
|
|
64
65
|
const apifyToken = process.env.APIFY_TOKEN;
|
|
65
66
|
log.debug('Loading tools from URL', { sessionId: transport.sessionId, tr: TransportType.SSE });
|
|
66
|
-
|
|
67
|
+
const apifyClient = new ApifyClient({ token: apifyToken });
|
|
68
|
+
await mcpServer.loadToolsFromUrl(req.url, apifyClient);
|
|
67
69
|
transportsSSE[transport.sessionId] = transport;
|
|
68
70
|
mcpServers[transport.sessionId] = mcpServer;
|
|
69
71
|
await mcpServer.connect(transport);
|
|
@@ -139,11 +141,12 @@ export function createExpressApp(host) {
|
|
|
139
141
|
sessionIdGenerator: () => randomUUID(),
|
|
140
142
|
enableJsonResponse: false, // Use SSE response mode
|
|
141
143
|
});
|
|
142
|
-
const mcpServer = new ActorsMcpServer(false);
|
|
144
|
+
const mcpServer = new ActorsMcpServer({ setupSigintHandler: false });
|
|
143
145
|
// Load MCP server tools
|
|
144
146
|
const apifyToken = process.env.APIFY_TOKEN;
|
|
145
147
|
log.debug('Loading tools from URL', { sessionId: transport.sessionId, tr: TransportType.HTTP });
|
|
146
|
-
|
|
148
|
+
const apifyClient = new ApifyClient({ token: apifyToken });
|
|
149
|
+
await mcpServer.loadToolsFromUrl(req.url, apifyClient);
|
|
147
150
|
// Connect the transport to the MCP server BEFORE handling the request
|
|
148
151
|
await mcpServer.connect(transport);
|
|
149
152
|
// After handling the request, if we get a session ID back, store the transport
|
package/dist/actor/server.js.map
CHANGED
|
@@ -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/apify-client.d.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import type { ApifyClientOptions } from 'apify';
|
|
2
2
|
import { ApifyClient as _ApifyClient } from 'apify-client';
|
|
3
|
+
interface ExtendedApifyClientOptions extends Omit<ApifyClientOptions, 'token'> {
|
|
4
|
+
token?: string | null | undefined;
|
|
5
|
+
skyfirePayId?: string;
|
|
6
|
+
}
|
|
3
7
|
export declare function getApifyAPIBaseUrl(): string;
|
|
4
8
|
export declare class ApifyClient extends _ApifyClient {
|
|
5
|
-
constructor(options:
|
|
9
|
+
constructor(options: ExtendedApifyClientOptions);
|
|
6
10
|
}
|
|
11
|
+
export {};
|
|
7
12
|
//# sourceMappingURL=apify-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apify-client.d.ts","sourceRoot":"","sources":["../src/apify-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"apify-client.d.ts","sourceRoot":"","sources":["../src/apify-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAK3D,UAAU,0BAA2B,SAAQ,IAAI,CAAC,kBAAkB,EAAE,OAAO,CAAC;IAC1E,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAcD,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED,qBAAa,WAAY,SAAQ,YAAY;gBAC7B,OAAO,EAAE,0BAA0B;CAiClD"}
|
package/dist/apify-client.js
CHANGED
|
@@ -27,14 +27,29 @@ export class ApifyClient extends _ApifyClient {
|
|
|
27
27
|
* So if we encounter this dummy value, we remove it to use Apify client as unauthenticated, which is sufficient
|
|
28
28
|
* for server start and listing of tools.
|
|
29
29
|
*/
|
|
30
|
-
if (((_a = options.token) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'your-apify-token') {
|
|
30
|
+
if (((_a = options.token) === null || _a === void 0 ? void 0 : _a.toLowerCase()) === 'your-apify-token' || options.token === null) {
|
|
31
31
|
// eslint-disable-next-line no-param-reassign
|
|
32
32
|
delete options.token;
|
|
33
33
|
}
|
|
34
|
+
const { skyfirePayId, ...clientOptions } = options;
|
|
35
|
+
const requestInterceptors = [addUserAgent];
|
|
36
|
+
/**
|
|
37
|
+
* Add skyfire-pay-id header if provided.
|
|
38
|
+
*/
|
|
39
|
+
if (skyfirePayId) {
|
|
40
|
+
requestInterceptors.push((config) => {
|
|
41
|
+
var _a;
|
|
42
|
+
const updatedConfig = { ...config };
|
|
43
|
+
updatedConfig.headers = (_a = updatedConfig.headers) !== null && _a !== void 0 ? _a : {};
|
|
44
|
+
updatedConfig.headers['skyfire-pay-id'] = skyfirePayId;
|
|
45
|
+
return updatedConfig;
|
|
46
|
+
});
|
|
47
|
+
}
|
|
34
48
|
super({
|
|
35
|
-
|
|
49
|
+
// token null case is handled, we can assert type here
|
|
50
|
+
...clientOptions,
|
|
36
51
|
baseUrl: getApifyAPIBaseUrl(),
|
|
37
|
-
requestInterceptors
|
|
52
|
+
requestInterceptors,
|
|
38
53
|
});
|
|
39
54
|
}
|
|
40
55
|
}
|
package/dist/apify-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apify-client.js","sourceRoot":"","sources":["../src/apify-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAG3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"apify-client.js","sourceRoot":"","sources":["../src/apify-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,cAAc,CAAC;AAG3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAO/C;;;;GAIG;AACH,SAAS,YAAY,CAAC,MAA0B;;IAC5C,MAAM,aAAa,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;IACpC,aAAa,CAAC,OAAO,GAAG,MAAA,aAAa,CAAC,OAAO,mCAAI,EAAE,CAAC;IACpD,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,GAAG,MAAA,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC,mCAAI,EAAE,KAAK,iBAAiB,EAAE,CAAC;IAC3G,OAAO,aAAa,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,kBAAkB;IAC9B,wHAAwH;IACxH,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB;QAAE,OAAO,uBAAuB,CAAC;IACjE,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,uBAAuB,CAAC;AACrE,CAAC;AAED,MAAM,OAAO,WAAY,SAAQ,YAAY;IACzC,YAAY,OAAmC;;QAC3C;;;;;WAKG;QACH,IAAI,CAAA,MAAA,OAAO,CAAC,KAAK,0CAAE,WAAW,EAAE,MAAK,kBAAkB,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;YAChF,6CAA6C;YAC7C,OAAO,OAAO,CAAC,KAAK,CAAC;QACzB,CAAC;QAED,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;QACnD,MAAM,mBAAmB,GAAG,CAAC,YAAY,CAAC,CAAC;QAC3C;;WAEG;QACH,IAAI,YAAY,EAAE,CAAC;YACf,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;;gBAChC,MAAM,aAAa,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;gBACpC,aAAa,CAAC,OAAO,GAAG,MAAA,aAAa,CAAC,OAAO,mCAAI,EAAE,CAAC;gBACpD,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,YAAY,CAAC;gBACvD,OAAO,aAAa,CAAC;YACzB,CAAC,CAAC,CAAC;QACP,CAAC;QAED,KAAK,CAAC;YACF,sDAAsD;YACtD,GAAG,aAAmC;YACtC,OAAO,EAAE,kBAAkB,EAAE;YAC7B,mBAAmB;SACtB,CAAC,CAAC;IACP,CAAC;CACJ"}
|
package/dist/const.d.ts
CHANGED
|
@@ -38,6 +38,11 @@ export declare const defaults: {
|
|
|
38
38
|
actors: string[];
|
|
39
39
|
};
|
|
40
40
|
export declare const ACTOR_ADDITIONAL_INSTRUCTIONS = "Never call/execute tool/Actor unless confirmed by the user.";
|
|
41
|
+
export declare const SKYFIRE_MIN_CHARGE_USD = 5;
|
|
42
|
+
export declare const SKYFIRE_SELLER_ID: string | undefined;
|
|
43
|
+
export declare const SKYFIRE_TOOL_INSTRUCTIONS: string;
|
|
44
|
+
export declare const SKYFIRE_PAY_ID_PROPERTY_DESCRIPTION = "Skyfire PAY token ID used for billing purposes.";
|
|
45
|
+
export declare const SKYFIRE_README_CONTENT: string;
|
|
41
46
|
export declare const ACTOR_CACHE_MAX_SIZE = 500;
|
|
42
47
|
export declare const ACTOR_CACHE_TTL_SECS: number;
|
|
43
48
|
export declare const APIFY_DOCS_CACHE_MAX_SIZE = 500;
|
package/dist/const.d.ts.map
CHANGED
|
@@ -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;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAG3C,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,iBAAiB,wBAAwB;IACzC,gBAAgB,qBAAqB;IACrC,gBAAgB,oBAAoB;IACpC,cAAc,kBAAkB;IAChC,cAAc,kBAAkB;IAChC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IACrD,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,0BAA0B,+BAA+B;IACzD,YAAY,kBAAkB;IAC9B,WAAW,sBAAsB;IACjC,UAAU,qBAAqB;CAClC;AAED,eAAO,MAAM,QAAQ;;CAIpB,CAAC;AAEF,eAAO,MAAM,6BAA6B,gEAAgE,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;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAG3C,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,iBAAiB,wBAAwB;IACzC,gBAAgB,qBAAqB;IACrC,gBAAgB,oBAAoB;IACpC,cAAc,kBAAkB;IAChC,cAAc,kBAAkB;IAChC,kBAAkB,uBAAuB;IACzC,WAAW,gBAAgB;IAC3B,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,wBAAwB,6BAA6B;IACrD,mBAAmB,wBAAwB;IAC3C,wBAAwB,6BAA6B;IACrD,0BAA0B,+BAA+B;IACzD,YAAY,kBAAkB;IAC9B,WAAW,sBAAsB;IACjC,UAAU,qBAAqB;CAClC;AAED,eAAO,MAAM,QAAQ;;CAIpB,CAAC;AAEF,eAAO,MAAM,6BAA6B,gEAAgE,CAAC;AAC3G,eAAO,MAAM,sBAAsB,IAAM,CAAC;AAC1C,eAAO,MAAM,iBAAiB,oBAAwC,CAAC;AAEvE,eAAO,MAAM,yBAAyB,QAAisB,CAAC;AAExuB,eAAO,MAAM,mCAAmC,oDAAoD,CAAC;AAErG,eAAO,MAAM,sBAAsB,QAA0wB,CAAC;AAG9yB,eAAO,MAAM,oBAAoB,MAAM,CAAC;AACxC,eAAO,MAAM,oBAAoB,QAAU,CAAC;AAC5C,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,yBAAyB,QAAU,CAAC;AAEjD,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;AAE9C,eAAO,MAAM,OAAO;;;;CAInB,CAAC;AAEF,eAAO,MAAM,iCAAiC,OAAQ,CAAC;AAEvD,eAAO,MAAM,eAAe,sBAAsB,CAAC"}
|
package/dist/const.js
CHANGED
|
@@ -46,6 +46,11 @@ export const defaults = {
|
|
|
46
46
|
],
|
|
47
47
|
};
|
|
48
48
|
export const ACTOR_ADDITIONAL_INSTRUCTIONS = 'Never call/execute tool/Actor unless confirmed by the user.';
|
|
49
|
+
export const SKYFIRE_MIN_CHARGE_USD = 5.0;
|
|
50
|
+
export const SKYFIRE_SELLER_ID = process.env.SKYFIRE_SELLER_SERVICE_ID;
|
|
51
|
+
export const SKYFIRE_TOOL_INSTRUCTIONS = `To run the Actor, you need to provide a Skyfire payment ID in the \`skyfire-pay-id\` input property. You first need to create the Skyfire PAY token by calling the \`create-pay-token\` tool from the Skyfire MCP server and then provide the created token in the \`skyfire-pay-id\` input property when calling Actor tool. The Skyfire PAY token is used for billing purposes and needs to be charged with at least ${SKYFIRE_MIN_CHARGE_USD} USD.${SKYFIRE_SELLER_ID ? ` The Skyfire seller ID for Apify MCP server is "${SKYFIRE_SELLER_ID}".` : ''} When retrieving Actor output using the \`get-actor-output\` tool, you also need to provide the same Skyfire PAY token ID in the \`skyfire-pay-id\` input property.`;
|
|
52
|
+
export const SKYFIRE_PAY_ID_PROPERTY_DESCRIPTION = `Skyfire PAY token ID used for billing purposes.`;
|
|
53
|
+
export const SKYFIRE_README_CONTENT = `The Apify MCP Server allows clients to interact with Apify Actors, storage, and documentation. Before running any Apify Actor, you need to set up a Skyfire PAY token for billing purposes. To set up the PAY token you need to use the create-pay-token tool from the Skyfire MCP server. The PAY token must be charged with a minimum of ${SKYFIRE_MIN_CHARGE_USD} USD to be valid.${SKYFIRE_SELLER_ID ? ` The Skyfire seller ID for Apify MCP server is "${SKYFIRE_SELLER_ID}".` : ''} When running an Actor using the call-actor tool, you must provide the Skyfire PAY token ID in the \`skyfire-pay-id\` input property. Similarly, when retrieving Actor output using the get-actor-output tool, you must also provide the same Skyfire PAY token ID in the \`skyfire-pay-id\` input property.`;
|
|
49
54
|
// Cache
|
|
50
55
|
export const ACTOR_CACHE_MAX_SIZE = 500;
|
|
51
56
|
export const ACTOR_CACHE_TTL_SECS = 30 * 60; // 30 minutes
|
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,cAAc;AACd;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C,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,WAoBX;AApBD,WAAY,WAAW;IACnB,sCAAuB,CAAA;IACvB,wCAAyB,CAAA;IACzB,wDAAyC,CAAA;IACzC,oDAAqC,CAAA;IACrC,mDAAoC,CAAA;IACpC,+CAAgC,CAAA;IAChC,+CAAgC,CAAA;IAChC,wDAAyC,CAAA;IACzC,0CAA2B,CAAA;IAC3B,oDAAqC,CAAA;IACrC,sDAAuC,CAAA;IACvC,wDAAyC,CAAA;IACzC,oEAAqD,CAAA;IACrD,0DAA2C,CAAA;IAC3C,oEAAqD,CAAA;IACrD,wEAAyD,CAAA;IACzD,6CAA8B,CAAA;IAC9B,gDAAiC,CAAA;IACjC,8CAA+B,CAAA;AACnC,CAAC,EApBW,WAAW,KAAX,WAAW,QAoBtB;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,MAAM,EAAE;QACJ,uBAAuB;KAC1B;CACJ,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,6DAA6D,CAAC;
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ApifyClient } from './apify-client.js';
|
|
1
2
|
import { defaults, HelperTools } from './const.js';
|
|
2
3
|
import { processParamsGetTools } from './mcp/utils.js';
|
|
3
4
|
import { addTool } from './tools/helpers.js';
|
|
@@ -6,5 +7,5 @@ import { actorNameToToolName } from './tools/utils.js';
|
|
|
6
7
|
import type { ToolCategory } from './types.js';
|
|
7
8
|
import { getExpectedToolNamesByCategories, getToolPublicFieldOnly } from './utils/tools.js';
|
|
8
9
|
import { TTLLRUCache } from './utils/ttl-lru.js';
|
|
9
|
-
export { getExpectedToolNamesByCategories, TTLLRUCache, actorNameToToolName, HelperTools, defaults, defaultTools, addTool, toolCategories, toolCategoriesEnabledByDefault, type ToolCategory, processParamsGetTools, getActorsAsTools, getToolPublicFieldOnly, };
|
|
10
|
+
export { ApifyClient, getExpectedToolNamesByCategories, TTLLRUCache, actorNameToToolName, HelperTools, defaults, defaultTools, addTool, toolCategories, toolCategoriesEnabledByDefault, type ToolCategory, processParamsGetTools, getActorsAsTools, getToolPublicFieldOnly, };
|
|
10
11
|
//# sourceMappingURL=index-internals.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-internals.d.ts","sourceRoot":"","sources":["../src/index-internals.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAClH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EACH,gCAAgC,EAChC,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,cAAc,EACd,8BAA8B,EAC9B,KAAK,YAAY,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index-internals.d.ts","sourceRoot":"","sources":["../src/index-internals.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAClH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EACH,WAAW,EACX,gCAAgC,EAChC,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,cAAc,EACd,8BAA8B,EAC9B,KAAK,YAAY,EACjB,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACzB,CAAC"}
|
package/dist/index-internals.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
This file provides essential internal functions for Apify MCP servers, serving as an internal library.
|
|
3
3
|
*/
|
|
4
|
+
import { ApifyClient } from './apify-client.js';
|
|
4
5
|
import { defaults, HelperTools } from './const.js';
|
|
5
6
|
import { processParamsGetTools } from './mcp/utils.js';
|
|
6
7
|
import { addTool } from './tools/helpers.js';
|
|
@@ -8,5 +9,5 @@ import { defaultTools, getActorsAsTools, toolCategories, toolCategoriesEnabledBy
|
|
|
8
9
|
import { actorNameToToolName } from './tools/utils.js';
|
|
9
10
|
import { getExpectedToolNamesByCategories, getToolPublicFieldOnly } from './utils/tools.js';
|
|
10
11
|
import { TTLLRUCache } from './utils/ttl-lru.js';
|
|
11
|
-
export { getExpectedToolNamesByCategories, TTLLRUCache, actorNameToToolName, HelperTools, defaults, defaultTools, addTool, toolCategories, toolCategoriesEnabledByDefault, processParamsGetTools, getActorsAsTools, getToolPublicFieldOnly, };
|
|
12
|
+
export { ApifyClient, getExpectedToolNamesByCategories, TTLLRUCache, actorNameToToolName, HelperTools, defaults, defaultTools, addTool, toolCategories, toolCategoriesEnabledByDefault, processParamsGetTools, getActorsAsTools, getToolPublicFieldOnly, };
|
|
12
13
|
//# sourceMappingURL=index-internals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-internals.js","sourceRoot":"","sources":["../src/index-internals.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAClH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EACH,gCAAgC,EAChC,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,cAAc,EACd,8BAA8B,EAE9B,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index-internals.js","sourceRoot":"","sources":["../src/index-internals.ts"],"names":[],"mappings":"AAAA;;EAEE;AAEF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,8BAA8B,EAAE,MAAM,kBAAkB,CAAC;AAClH,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,EAAE,gCAAgC,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,OAAO,EACH,WAAW,EACX,gCAAgC,EAChC,WAAW,EACX,mBAAmB,EACnB,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,cAAc,EACd,8BAA8B,EAE9B,qBAAqB,EACrB,gBAAgB,EAChB,sBAAsB,GACzB,CAAC"}
|
package/dist/main.js
CHANGED
|
@@ -6,6 +6,7 @@ var _a;
|
|
|
6
6
|
import { Actor } from 'apify';
|
|
7
7
|
import log from '@apify/log';
|
|
8
8
|
import { createExpressApp } from './actor/server.js';
|
|
9
|
+
import { ApifyClient } from './apify-client.js';
|
|
9
10
|
import { processInput } from './input.js';
|
|
10
11
|
import { callActorGetDataset } from './tools/index.js';
|
|
11
12
|
const STANDBY_MODE = Actor.getEnv().metaOrigin === 'STANDBY';
|
|
@@ -33,7 +34,8 @@ else {
|
|
|
33
34
|
await Actor.fail('If you need to debug a specific Actor, please provide the debugActor and debugActorInput fields in the input');
|
|
34
35
|
}
|
|
35
36
|
const options = { memory: input.maxActorMemoryBytes };
|
|
36
|
-
const
|
|
37
|
+
const apifyClient = new ApifyClient({ token: process.env.APIFY_TOKEN });
|
|
38
|
+
const callResult = await callActorGetDataset(input.debugActor, input.debugActorInput, apifyClient, options);
|
|
37
39
|
if (callResult && callResult.previewItems.length > 0) {
|
|
38
40
|
await Actor.pushData(callResult.previewItems);
|
|
39
41
|
log.info('Pushed items to dataset', { itemCount: callResult.previewItems.length });
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGvD,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,KAAK,GAAG,YAAY,CAAC,MAAA,CAAC,MAAM,KAAK,CAAC,QAAQ,EAAkB,CAAC,mCAAK,EAAY,CAAC,CAAC;AACtF,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAE3D,IAAI,YAAY,EAAE,CAAC;IACf,kFAAkF;IAClF,oBAAoB;IACpB,MAAM,GAAG,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACnC,GAAG,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IAElD,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QAClB,GAAG,CAAC,IAAI,CAAC,4BAA4B,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvE,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;
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/actors.d.ts
CHANGED
|
@@ -18,5 +18,4 @@ export declare function getRealActorID(actorIdOrName: string, apifyToken: string
|
|
|
18
18
|
* Returns standby URL for given Actor ID.
|
|
19
19
|
*/
|
|
20
20
|
export declare function getActorStandbyURL(realActorId: string, standbyBaseUrl?: string): Promise<string>;
|
|
21
|
-
export declare function getActorDefinition(actorID: string, apifyToken: string): Promise<ActorDefinition>;
|
|
22
21
|
//# sourceMappingURL=actors.d.ts.map
|
package/dist/mcp/actors.d.ts.map
CHANGED
|
@@ -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,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAGzD;;;;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
|
|
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;AAGzD;;;;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"}
|
package/dist/mcp/actors.js
CHANGED
|
@@ -53,18 +53,4 @@ export async function getRealActorID(actorIdOrName, apifyToken) {
|
|
|
53
53
|
export async function getActorStandbyURL(realActorId, standbyBaseUrl = 'apify.actor') {
|
|
54
54
|
return `https://${realActorId}.${standbyBaseUrl}`;
|
|
55
55
|
}
|
|
56
|
-
export async function getActorDefinition(actorID, apifyToken) {
|
|
57
|
-
const apifyClient = new ApifyClient({ token: apifyToken });
|
|
58
|
-
const actor = apifyClient.actor(actorID);
|
|
59
|
-
const defaultBuildClient = await actor.defaultBuild();
|
|
60
|
-
const buildInfo = await defaultBuildClient.get();
|
|
61
|
-
if (!buildInfo) {
|
|
62
|
-
throw new Error(`Default build for Actor ${actorID} not found`);
|
|
63
|
-
}
|
|
64
|
-
const { actorDefinition } = buildInfo;
|
|
65
|
-
if (!actorDefinition) {
|
|
66
|
-
throw new Error(`Actor default build ${actorID} does not have Actor definition`);
|
|
67
|
-
}
|
|
68
|
-
return actorDefinition;
|
|
69
|
-
}
|
|
70
56
|
//# sourceMappingURL=actors.js.map
|
package/dist/mcp/actors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actors.js","sourceRoot":"","sources":["../../src/mcp/actors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,eAAwD;IAC1F,IAAI,kBAAkB,IAAI,eAAe,IAAI,OAAO,eAAe,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAChG,MAAM,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAEjE,MAAM,KAAK,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;QACxD,gDAAgD;QAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,wEAAwE;QACxE,kCAAkC;QAClC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,uBAAuB,CAAC,CAAC;QAC9E,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,cAAc,CAAC;QAC1B,CAAC;QACD,mCAAmC;QACnC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB,EAAE,aAAqB;IACjF,6BAA6B;IAC7B,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,mCAAmC;QAC/E,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,aAAa,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACzE,OAAO,GAAG,UAAU,GAAG,aAAa,EAAE,CAAC;AAC3C,CAAC;AAED;;EAEE;AACF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,aAAqB,EAAE,UAAkB;IAC1E,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,SAAS,aAAa,YAAY,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC,EAAE,CAAC;AACnB,CAAC;AAED;;EAEE;AACF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAmB,EAAE,cAAc,GAAG,aAAa;IACxF,OAAO,WAAW,WAAW,IAAI,cAAc,EAAE,CAAC;AACtD,CAAC
|
|
1
|
+
{"version":3,"file":"actors.js","sourceRoot":"","sources":["../../src/mcp/actors.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE9D;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,eAAwD;IAC1F,IAAI,kBAAkB,IAAI,eAAe,IAAI,OAAO,eAAe,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAChG,MAAM,gBAAgB,GAAG,eAAe,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;QAEjE,MAAM,KAAK,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,CAAC;QACxD,gDAAgD;QAChD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACrB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAED,wEAAwE;QACxE,kCAAkC;QAClC,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,uBAAuB,CAAC,CAAC;QAC9E,IAAI,cAAc,EAAE,CAAC;YACjB,OAAO,cAAc,CAAC;QAC1B,CAAC;QACD,mCAAmC;QACnC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,WAAmB,EAAE,aAAqB;IACjF,6BAA6B;IAC7B,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,mCAAmC;QAC/E,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,aAAa,CAAC;IACxD,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IACzE,OAAO,GAAG,UAAU,GAAG,aAAa,EAAE,CAAC;AAC3C,CAAC;AAED;;EAEE;AACF,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,aAAqB,EAAE,UAAkB;IAC1E,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,CAAC;IAE3D,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC;IAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,MAAM,IAAI,KAAK,CAAC,SAAS,aAAa,YAAY,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,IAAI,CAAC,EAAE,CAAC;AACnB,CAAC;AAED;;EAEE;AACF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,WAAmB,EAAE,cAAc,GAAG,aAAa;IACxF,OAAO,WAAW,WAAW,IAAI,cAAc,EAAE,CAAC;AACtD,CAAC"}
|
package/dist/mcp/server.d.ts
CHANGED
|
@@ -3,7 +3,15 @@
|
|
|
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 { ApifyClient } from '../apify-client.js';
|
|
6
7
|
import type { ToolEntry } from '../types.js';
|
|
8
|
+
interface ActorsMcpServerOptions {
|
|
9
|
+
setupSigintHandler?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* Switch to enable Skyfire agentic payment mode.
|
|
12
|
+
*/
|
|
13
|
+
skyfireMode?: boolean;
|
|
14
|
+
}
|
|
7
15
|
/**
|
|
8
16
|
* Create Apify MCP server
|
|
9
17
|
*/
|
|
@@ -13,7 +21,8 @@ export declare class ActorsMcpServer {
|
|
|
13
21
|
private toolsChangedHandler;
|
|
14
22
|
private sigintHandler;
|
|
15
23
|
private currentLogLevel;
|
|
16
|
-
|
|
24
|
+
readonly options: ActorsMcpServerOptions;
|
|
25
|
+
constructor(options?: ActorsMcpServerOptions);
|
|
17
26
|
/**
|
|
18
27
|
* Returns an array of tool names.
|
|
19
28
|
* @returns {string[]} - An array of tool names.
|
|
@@ -59,7 +68,7 @@ export declare class ActorsMcpServer {
|
|
|
59
68
|
* @param toolNames - Array of tool names to ensure are loaded
|
|
60
69
|
* @param apifyToken - Apify API token for authentication
|
|
61
70
|
*/
|
|
62
|
-
loadToolsByName(toolNames: string[],
|
|
71
|
+
loadToolsByName(toolNames: string[], apifyClient: ApifyClient): Promise<void>;
|
|
63
72
|
/**
|
|
64
73
|
* Load actors as tools, upsert them to the server, and return the tool entries.
|
|
65
74
|
* This is a public method that wraps getActorsAsTools and handles the upsert operation.
|
|
@@ -67,7 +76,7 @@ export declare class ActorsMcpServer {
|
|
|
67
76
|
* @param apifyToken - Apify API token for authentication
|
|
68
77
|
* @returns Promise<ToolEntry[]> - Array of loaded tool entries
|
|
69
78
|
*/
|
|
70
|
-
loadActorsAsTools(actorIdsOrNames: string[],
|
|
79
|
+
loadActorsAsTools(actorIdsOrNames: string[], apifyClient: ApifyClient): Promise<ToolEntry[]>;
|
|
71
80
|
/**
|
|
72
81
|
* Loads tools from URL params.
|
|
73
82
|
*
|
|
@@ -75,7 +84,7 @@ export declare class ActorsMcpServer {
|
|
|
75
84
|
*
|
|
76
85
|
* Used primarily for SSE.
|
|
77
86
|
*/
|
|
78
|
-
loadToolsFromUrl(url: string,
|
|
87
|
+
loadToolsFromUrl(url: string, apifyClient: ApifyClient): Promise<void>;
|
|
79
88
|
/** Delete tools from the server and notify the handler.
|
|
80
89
|
*/
|
|
81
90
|
removeToolsByName(toolNames: string[], shouldNotifyToolsChangedHandler?: boolean): string[];
|
|
@@ -100,4 +109,5 @@ export declare class ActorsMcpServer {
|
|
|
100
109
|
connect(transport: Transport): Promise<void>;
|
|
101
110
|
close(): Promise<void>;
|
|
102
111
|
}
|
|
112
|
+
export {};
|
|
103
113
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -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;
|
|
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;AAoB/E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAYjD,OAAO,KAAK,EAAuC,SAAS,EAAE,MAAM,aAAa,CAAC;AAUlF,UAAU,sBAAsB;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;CACzB;AAED;;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,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,eAAe,CAAU;IACjC,SAAgB,OAAO,EAAE,sBAAsB,CAAC;gBAEpC,OAAO,GAAE,sBAA2B;IAiChD;;;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,WAAW,EAAE,WAAW;IA6B1E;;;;;;OAMG;IACU,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAQzG;;;;;;OAMG;IACU,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW;IAQnE;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;IAczB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,qBAAqB;IA8C7B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,iBAAiB;IA+PnB,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB/B"}
|
package/dist/mcp/server.js
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
* Model Context Protocol (MCP) server for Apify Actors
|
|
3
3
|
*/
|
|
4
4
|
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
|
|
5
|
-
import { CallToolRequestSchema, CallToolResultSchema, ErrorCode, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ListToolsRequestSchema, McpError, ServerNotificationSchema, SetLevelRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import { CallToolRequestSchema, CallToolResultSchema, ErrorCode, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListResourceTemplatesRequestSchema, ListToolsRequestSchema, McpError, ReadResourceRequestSchema, ServerNotificationSchema, SetLevelRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
6
6
|
import { ApifyApiError } from 'apify-client';
|
|
7
7
|
import log from '@apify/log';
|
|
8
|
-
import {
|
|
8
|
+
import { ApifyClient } from '../apify-client.js';
|
|
9
|
+
import { HelperTools, SERVER_NAME, SERVER_VERSION, SKYFIRE_PAY_ID_PROPERTY_DESCRIPTION, SKYFIRE_README_CONTENT, SKYFIRE_TOOL_INSTRUCTIONS, } from '../const.js';
|
|
9
10
|
import { prompts } from '../prompts/index.js';
|
|
10
11
|
import { callActorGetDataset, defaultTools, getActorsAsTools, toolCategories } from '../tools/index.js';
|
|
11
12
|
import { decodeDotPropertyNames } from '../tools/utils.js';
|
|
@@ -19,7 +20,7 @@ import { processParamsGetTools } from './utils.js';
|
|
|
19
20
|
* Create Apify MCP server
|
|
20
21
|
*/
|
|
21
22
|
export class ActorsMcpServer {
|
|
22
|
-
constructor(
|
|
23
|
+
constructor(options = {}) {
|
|
23
24
|
Object.defineProperty(this, "server", {
|
|
24
25
|
enumerable: true,
|
|
25
26
|
configurable: true,
|
|
@@ -50,6 +51,14 @@ export class ActorsMcpServer {
|
|
|
50
51
|
writable: true,
|
|
51
52
|
value: 'info'
|
|
52
53
|
});
|
|
54
|
+
Object.defineProperty(this, "options", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
configurable: true,
|
|
57
|
+
writable: true,
|
|
58
|
+
value: void 0
|
|
59
|
+
});
|
|
60
|
+
this.options = options;
|
|
61
|
+
const { setupSigintHandler = true } = options;
|
|
53
62
|
this.server = new Server({
|
|
54
63
|
name: SERVER_NAME,
|
|
55
64
|
version: SERVER_VERSION,
|
|
@@ -149,7 +158,7 @@ export class ActorsMcpServer {
|
|
|
149
158
|
* @param toolNames - Array of tool names to ensure are loaded
|
|
150
159
|
* @param apifyToken - Apify API token for authentication
|
|
151
160
|
*/
|
|
152
|
-
async loadToolsByName(toolNames,
|
|
161
|
+
async loadToolsByName(toolNames, apifyClient) {
|
|
153
162
|
const loadedTools = this.listAllToolNames();
|
|
154
163
|
const actorsToLoad = [];
|
|
155
164
|
const toolsToLoad = [];
|
|
@@ -174,7 +183,7 @@ export class ActorsMcpServer {
|
|
|
174
183
|
this.upsertTools(toolsToLoad);
|
|
175
184
|
}
|
|
176
185
|
if (actorsToLoad.length > 0) {
|
|
177
|
-
await this.loadActorsAsTools(actorsToLoad,
|
|
186
|
+
await this.loadActorsAsTools(actorsToLoad, apifyClient);
|
|
178
187
|
}
|
|
179
188
|
}
|
|
180
189
|
/**
|
|
@@ -184,8 +193,8 @@ export class ActorsMcpServer {
|
|
|
184
193
|
* @param apifyToken - Apify API token for authentication
|
|
185
194
|
* @returns Promise<ToolEntry[]> - Array of loaded tool entries
|
|
186
195
|
*/
|
|
187
|
-
async loadActorsAsTools(actorIdsOrNames,
|
|
188
|
-
const actorTools = await getActorsAsTools(actorIdsOrNames,
|
|
196
|
+
async loadActorsAsTools(actorIdsOrNames, apifyClient) {
|
|
197
|
+
const actorTools = await getActorsAsTools(actorIdsOrNames, apifyClient);
|
|
189
198
|
if (actorTools.length > 0) {
|
|
190
199
|
this.upsertTools(actorTools, true);
|
|
191
200
|
}
|
|
@@ -198,8 +207,8 @@ export class ActorsMcpServer {
|
|
|
198
207
|
*
|
|
199
208
|
* Used primarily for SSE.
|
|
200
209
|
*/
|
|
201
|
-
async loadToolsFromUrl(url,
|
|
202
|
-
const tools = await processParamsGetTools(url,
|
|
210
|
+
async loadToolsFromUrl(url, apifyClient) {
|
|
211
|
+
const tools = await processParamsGetTools(url, apifyClient);
|
|
203
212
|
if (tools.length > 0) {
|
|
204
213
|
log.debug('Loading tools from query parameters');
|
|
205
214
|
this.upsertTools(tools, false);
|
|
@@ -287,9 +296,42 @@ export class ActorsMcpServer {
|
|
|
287
296
|
}
|
|
288
297
|
setupResourceHandlers() {
|
|
289
298
|
this.server.setRequestHandler(ListResourcesRequestSchema, async () => {
|
|
290
|
-
|
|
299
|
+
/**
|
|
300
|
+
* Return the usage guide resource only if Skyfire mode is enabled. No resources otherwise for normal mode.
|
|
301
|
+
*/
|
|
302
|
+
if (this.options.skyfireMode) {
|
|
303
|
+
return {
|
|
304
|
+
resources: [
|
|
305
|
+
{
|
|
306
|
+
uri: 'file://readme.md',
|
|
307
|
+
name: 'readme',
|
|
308
|
+
description: `Apify MCP Server usage guide. Read this to understand how to use the server, especially in Skyfire mode before interacting with it.`,
|
|
309
|
+
mimeType: 'text/markdown',
|
|
310
|
+
},
|
|
311
|
+
],
|
|
312
|
+
};
|
|
313
|
+
}
|
|
291
314
|
return { resources: [] };
|
|
292
315
|
});
|
|
316
|
+
if (this.options.skyfireMode) {
|
|
317
|
+
this.server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
318
|
+
const { uri } = request.params;
|
|
319
|
+
if (uri === 'file://readme.md') {
|
|
320
|
+
return {
|
|
321
|
+
contents: [{
|
|
322
|
+
uri: 'file://readme.md',
|
|
323
|
+
mimeType: 'text/markdown',
|
|
324
|
+
text: SKYFIRE_README_CONTENT,
|
|
325
|
+
}],
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
return {
|
|
329
|
+
contents: [{
|
|
330
|
+
uri, mimeType: 'text/plain', text: `Resource ${uri} not found`,
|
|
331
|
+
}],
|
|
332
|
+
};
|
|
333
|
+
});
|
|
334
|
+
}
|
|
293
335
|
this.server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => {
|
|
294
336
|
// No resource templates available, return empty response
|
|
295
337
|
return { resourceTemplates: [] };
|
|
@@ -338,6 +380,26 @@ export class ActorsMcpServer {
|
|
|
338
380
|
* @returns {object} - The response object containing the tools.
|
|
339
381
|
*/
|
|
340
382
|
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
383
|
+
/**
|
|
384
|
+
* Hack for the Skyfire agentic payments, we check if Skyfire mode is enabled we ad-hoc add
|
|
385
|
+
* the `skyfire-pay-id` input property to all Actor tools and `call-actor` and `get-actor-output` tool.
|
|
386
|
+
*/
|
|
387
|
+
if (this.options.skyfireMode) {
|
|
388
|
+
for (const toolEntry of this.tools.values()) {
|
|
389
|
+
if (toolEntry.type === 'actor'
|
|
390
|
+
|| (toolEntry.type === 'internal' && toolEntry.tool.name === HelperTools.ACTOR_CALL)
|
|
391
|
+
|| (toolEntry.type === 'internal' && toolEntry.tool.name === HelperTools.ACTOR_OUTPUT_GET)) {
|
|
392
|
+
if (toolEntry.tool.inputSchema && 'properties' in toolEntry.tool.inputSchema) {
|
|
393
|
+
toolEntry.tool.inputSchema.properties['skyfire-pay-id'] = {
|
|
394
|
+
type: 'string',
|
|
395
|
+
description: SKYFIRE_PAY_ID_PROPERTY_DESCRIPTION,
|
|
396
|
+
};
|
|
397
|
+
}
|
|
398
|
+
// Update description to include Skyfire instructions
|
|
399
|
+
toolEntry.tool.description += `\n\n${SKYFIRE_TOOL_INSTRUCTIONS}`;
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
}
|
|
341
403
|
const tools = Array.from(this.tools.values()).map((tool) => getToolPublicFieldOnly(tool.tool));
|
|
342
404
|
return { tools };
|
|
343
405
|
});
|
|
@@ -358,7 +420,7 @@ export class ActorsMcpServer {
|
|
|
358
420
|
// Remove other custom params passed from apify-mcp-server
|
|
359
421
|
delete request.params.userRentedActorIds;
|
|
360
422
|
// Validate token
|
|
361
|
-
if (!apifyToken) {
|
|
423
|
+
if (!apifyToken && !this.options.skyfireMode) {
|
|
362
424
|
const msg = 'APIFY_TOKEN is required. It must be set in the environment variables or passed as a parameter in the body.';
|
|
363
425
|
log.error(msg);
|
|
364
426
|
await this.server.sendLoggingMessage({ level: 'error', data: msg });
|
|
@@ -462,13 +524,29 @@ export class ActorsMcpServer {
|
|
|
462
524
|
}
|
|
463
525
|
// Handle actor tool
|
|
464
526
|
if (tool.type === 'actor') {
|
|
527
|
+
if (this.options.skyfireMode
|
|
528
|
+
&& args['skyfire-pay-id'] === undefined) {
|
|
529
|
+
return {
|
|
530
|
+
content: [{
|
|
531
|
+
type: 'text',
|
|
532
|
+
text: SKYFIRE_TOOL_INSTRUCTIONS,
|
|
533
|
+
}],
|
|
534
|
+
};
|
|
535
|
+
}
|
|
465
536
|
const actorTool = tool.tool;
|
|
466
537
|
// Create progress tracker if progressToken is available
|
|
467
538
|
const progressTracker = createProgressTracker(progressToken, extra.sendNotification);
|
|
468
539
|
const callOptions = { memory: actorTool.memoryMbytes };
|
|
540
|
+
/**
|
|
541
|
+
* Create Apify token, for Skyfire mode use `skyfire-pay-id` and for normal mode use `apifyToken`.
|
|
542
|
+
*/
|
|
543
|
+
const { 'skyfire-pay-id': skyfirePayId, ...actorArgs } = args;
|
|
544
|
+
const apifyClient = this.options.skyfireMode && typeof skyfirePayId === 'string'
|
|
545
|
+
? new ApifyClient({ skyfirePayId })
|
|
546
|
+
: new ApifyClient({ token: apifyToken });
|
|
469
547
|
try {
|
|
470
|
-
log.info('Calling Actor', { actorName: actorTool.actorFullName, input:
|
|
471
|
-
const callResult = await callActorGetDataset(actorTool.actorFullName,
|
|
548
|
+
log.info('Calling Actor', { actorName: actorTool.actorFullName, input: actorArgs });
|
|
549
|
+
const callResult = await callActorGetDataset(actorTool.actorFullName, actorArgs, apifyClient, callOptions, progressTracker, extra.signal);
|
|
472
550
|
if (!callResult) {
|
|
473
551
|
// Receivers of cancellation notifications SHOULD NOT send a response for the cancelled request
|
|
474
552
|
// https://modelcontextprotocol.io/specification/2025-06-18/basic/utilities/cancellation#behavior-requirements
|