@apify/actors-mcp-server 0.1.22 → 0.1.24-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.
- package/README.md +58 -2
- package/dist/actor/const.d.ts +12 -0
- package/dist/actor/const.d.ts.map +1 -0
- package/dist/actor/const.js +18 -0
- package/dist/actor/const.js.map +1 -0
- package/dist/actor/server.d.ts +4 -0
- package/dist/actor/server.d.ts.map +1 -0
- package/dist/actor/server.js +158 -0
- package/dist/actor/server.js.map +1 -0
- package/dist/actor/types.d.ts +23 -0
- package/dist/actor/types.d.ts.map +1 -0
- package/dist/actor/types.js +2 -0
- package/dist/actor/types.js.map +1 -0
- package/dist/actor/utils.d.ts +3 -0
- package/dist/actor/utils.d.ts.map +1 -0
- package/dist/actor/utils.js +26 -0
- package/dist/actor/utils.js.map +1 -0
- package/dist/apify-client.d.ts +7 -0
- package/dist/apify-client.d.ts.map +1 -0
- package/dist/apify-client.js +30 -0
- package/dist/apify-client.js.map +1 -0
- package/dist/const.d.ts +15 -19
- package/dist/const.d.ts.map +1 -1
- package/dist/const.js +23 -23
- package/dist/const.js.map +1 -1
- package/dist/examples/clientSse.d.ts +11 -1
- package/dist/examples/clientSse.d.ts.map +1 -1
- package/dist/examples/clientSse.js +13 -10
- package/dist/examples/clientSse.js.map +1 -1
- package/dist/examples/clientStdio.js +6 -6
- package/dist/examples/clientStdio.js.map +1 -1
- package/dist/examples/clientStdioChat.js +31 -16
- package/dist/examples/clientStdioChat.js.map +1 -1
- package/dist/examples/clientStreamableHttp.d.ts +2 -0
- package/dist/examples/clientStreamableHttp.d.ts.map +1 -0
- package/dist/examples/clientStreamableHttp.js +93 -0
- package/dist/examples/clientStreamableHttp.js.map +1 -0
- package/dist/index.d.ts +2 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -51
- package/dist/index.js.map +1 -1
- package/dist/input.d.ts +1 -1
- package/dist/input.d.ts.map +1 -1
- package/dist/input.js +15 -7
- package/dist/input.js.map +1 -1
- package/dist/main.d.ts +4 -0
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +22 -120
- package/dist/main.js.map +1 -1
- package/dist/mcp/actors.d.ts +22 -0
- package/dist/mcp/actors.d.ts.map +1 -0
- package/dist/mcp/actors.js +76 -0
- package/dist/mcp/actors.js.map +1 -0
- package/dist/mcp/client.d.ts +6 -0
- package/dist/mcp/client.d.ts.map +1 -0
- package/dist/mcp/client.js +33 -0
- package/dist/mcp/client.js.map +1 -0
- package/dist/mcp/const.d.ts +3 -0
- package/dist/mcp/const.d.ts.map +1 -0
- package/dist/mcp/const.js +3 -0
- package/dist/mcp/const.js.map +1 -0
- package/dist/mcp/proxy.d.ts +4 -0
- package/dist/mcp/proxy.d.ts.map +1 -0
- package/dist/mcp/proxy.js +29 -0
- package/dist/mcp/proxy.js.map +1 -0
- package/dist/mcp/server.d.ts +41 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +187 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/utils.d.ts +26 -0
- package/dist/mcp/utils.d.ts.map +1 -0
- package/dist/mcp/utils.js +53 -0
- package/dist/mcp/utils.js.map +1 -0
- package/dist/stdio.d.ts +15 -0
- package/dist/stdio.d.ts.map +1 -0
- package/dist/stdio.js +57 -0
- package/dist/stdio.js.map +1 -0
- package/dist/tools/actor.d.ts +40 -0
- package/dist/tools/actor.d.ts.map +1 -0
- package/dist/tools/actor.js +138 -0
- package/dist/tools/actor.js.map +1 -0
- package/dist/tools/build.d.ts +13 -0
- package/dist/tools/build.d.ts.map +1 -0
- package/dist/tools/build.js +122 -0
- package/dist/tools/build.js.map +1 -0
- package/dist/tools/helpers.d.ts +19 -0
- package/dist/tools/helpers.d.ts.map +1 -0
- package/dist/tools/helpers.js +62 -0
- package/dist/tools/helpers.js.map +1 -0
- package/dist/tools/index.d.ts +6 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +8 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/store_collection.d.ts +21 -0
- package/dist/tools/store_collection.d.ts.map +1 -0
- package/dist/tools/store_collection.js +82 -0
- package/dist/tools/store_collection.js.map +1 -0
- package/dist/tools/utils.d.ts +77 -0
- package/dist/tools/utils.d.ts.map +1 -0
- package/dist/tools/utils.js +202 -0
- package/dist/tools/utils.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +97 -10
- package/dist/types.d.ts.map +1 -1
- package/package.json +17 -14
- package/dist/actors.d.ts +0 -74
- package/dist/actors.d.ts.map +0 -1
- package/dist/actors.js +0 -327
- package/dist/actors.js.map +0 -1
- package/dist/logger.d.ts +0 -3
- package/dist/logger.d.ts.map +0 -1
- package/dist/logger.js +0 -4
- package/dist/logger.js.map +0 -1
- package/dist/server.d.ts +0 -43
- package/dist/server.d.ts.map +0 -1
- package/dist/server.js +0 -178
- package/dist/server.js.map +0 -1
- package/dist/tools.d.ts +0 -46
- package/dist/tools.d.ts.map +0 -1
- package/dist/tools.js +0 -128
- package/dist/tools.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientSse.js","sourceRoot":"","sources":["../../src/examples/clientSse.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"clientSse.js","sourceRoot":"","sources":["../../src/examples/clientSse.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,19 +5,19 @@
|
|
|
5
5
|
* You need to provide the path to the MCP server and `APIFY_TOKEN` in the `.env` file.
|
|
6
6
|
* You can choose actors to run in the server, for example: `apify/rag-web-browser`.
|
|
7
7
|
*/
|
|
8
|
-
import { execSync } from 'child_process';
|
|
9
|
-
import path from 'path';
|
|
10
|
-
import { fileURLToPath } from 'url';
|
|
8
|
+
import { execSync } from 'node:child_process';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import { fileURLToPath } from 'node:url';
|
|
11
11
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
12
12
|
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
13
13
|
import { CallToolResultSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
14
|
-
import dotenv from 'dotenv';
|
|
15
|
-
import { actorNameToToolName } from '../
|
|
14
|
+
import dotenv from 'dotenv'; // eslint-disable-line import/no-extraneous-dependencies
|
|
15
|
+
import { actorNameToToolName } from '../tools/utils.js';
|
|
16
16
|
// Resolve dirname equivalent in ES module
|
|
17
17
|
const filename = fileURLToPath(import.meta.url);
|
|
18
18
|
const dirname = path.dirname(filename);
|
|
19
19
|
dotenv.config({ path: path.resolve(dirname, '../../.env') });
|
|
20
|
-
const SERVER_PATH = path.resolve(dirname, '../../dist/
|
|
20
|
+
const SERVER_PATH = path.resolve(dirname, '../../dist/stdio.js');
|
|
21
21
|
const NODE_PATH = execSync(process.platform === 'win32' ? 'where node' : 'which node').toString().trim();
|
|
22
22
|
const TOOLS = 'apify/rag-web-browser,lukaskrivka/google-maps-with-contact-details';
|
|
23
23
|
const SELECTED_TOOL = actorNameToToolName('apify/rag-web-browser');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientStdio.js","sourceRoot":"","sources":["../../src/examples/clientStdio.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B;;;;;GAKG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"clientStdio.js","sourceRoot":"","sources":["../../src/examples/clientStdio.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,37 +16,52 @@
|
|
|
16
16
|
* This appears to be crawled content from AWS and IBM websites explaining what AI agents are.
|
|
17
17
|
* Let me summarize the key points:
|
|
18
18
|
*/
|
|
19
|
-
import { execSync } from 'child_process';
|
|
20
|
-
import path from 'path';
|
|
21
|
-
import * as readline from 'readline';
|
|
22
|
-
import { fileURLToPath } from 'url';
|
|
23
|
-
import { Anthropic } from '@anthropic-ai/sdk';
|
|
19
|
+
import { execSync } from 'node:child_process';
|
|
20
|
+
import path from 'node:path';
|
|
21
|
+
import * as readline from 'node:readline';
|
|
22
|
+
import { fileURLToPath } from 'node:url';
|
|
23
|
+
import { Anthropic } from '@anthropic-ai/sdk'; // eslint-disable-line import/no-extraneous-dependencies
|
|
24
24
|
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
25
25
|
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
26
26
|
import { CallToolResultSchema } from '@modelcontextprotocol/sdk/types.js';
|
|
27
|
-
import dotenv from 'dotenv';
|
|
27
|
+
import dotenv from 'dotenv'; // eslint-disable-line import/no-extraneous-dependencies
|
|
28
28
|
const filename = fileURLToPath(import.meta.url);
|
|
29
29
|
const dirname = path.dirname(filename);
|
|
30
30
|
dotenv.config({ path: path.resolve(dirname, '../../.env') });
|
|
31
|
-
const REQUEST_TIMEOUT =
|
|
31
|
+
const REQUEST_TIMEOUT = 120000; // 2 minutes
|
|
32
32
|
const MAX_TOKENS = 2048; // Maximum tokens for Claude response
|
|
33
33
|
// const CLAUDE_MODEL = 'claude-3-5-sonnet-20241022'; // the most intelligent model
|
|
34
34
|
// const CLAUDE_MODEL = 'claude-3-5-haiku-20241022'; // a fastest model
|
|
35
35
|
const CLAUDE_MODEL = 'claude-3-haiku-20240307'; // a fastest and most compact model for near-instant responsiveness
|
|
36
36
|
const DEBUG = true;
|
|
37
|
-
const DEBUG_SERVER_PATH = path.resolve(dirname, '../../dist/
|
|
37
|
+
const DEBUG_SERVER_PATH = path.resolve(dirname, '../../dist/stdio.js');
|
|
38
38
|
const NODE_PATH = execSync('which node').toString().trim();
|
|
39
39
|
dotenv.config(); // Load environment variables from .env
|
|
40
40
|
class MCPClient {
|
|
41
|
-
anthropic;
|
|
42
|
-
client = new Client({
|
|
43
|
-
name: 'example-client',
|
|
44
|
-
version: '0.1.0',
|
|
45
|
-
}, {
|
|
46
|
-
capabilities: {}, // Optional capabilities
|
|
47
|
-
});
|
|
48
|
-
tools = [];
|
|
49
41
|
constructor() {
|
|
42
|
+
Object.defineProperty(this, "anthropic", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
configurable: true,
|
|
45
|
+
writable: true,
|
|
46
|
+
value: void 0
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(this, "client", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
configurable: true,
|
|
51
|
+
writable: true,
|
|
52
|
+
value: new Client({
|
|
53
|
+
name: 'example-client',
|
|
54
|
+
version: '0.1.0',
|
|
55
|
+
}, {
|
|
56
|
+
capabilities: {}, // Optional capabilities
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
Object.defineProperty(this, "tools", {
|
|
60
|
+
enumerable: true,
|
|
61
|
+
configurable: true,
|
|
62
|
+
writable: true,
|
|
63
|
+
value: []
|
|
64
|
+
});
|
|
50
65
|
this.anthropic = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });
|
|
51
66
|
}
|
|
52
67
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clientStdioChat.js","sourceRoot":"","sources":["../../src/examples/clientStdioChat.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"clientStdioChat.js","sourceRoot":"","sources":["../../src/examples/clientStdioChat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clientStreamableHttp.d.ts","sourceRoot":"","sources":["../../src/examples/clientStreamableHttp.ts"],"names":[],"mappings":""}
|
|
@@ -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,15 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* This script initializes and starts the Apify MCP server using the Stdio transport.
|
|
4
|
-
*
|
|
5
|
-
* Usage:
|
|
6
|
-
* node <script_name> --actors=<actor1,actor2,...>
|
|
7
|
-
*
|
|
8
|
-
* Command-line arguments:
|
|
9
|
-
* --actors - A comma-separated list of actor full names to add to the server.
|
|
10
|
-
*
|
|
11
|
-
* Example:
|
|
12
|
-
* node index.js --actors=apify/google-search-scraper,apify/instagram-scraper
|
|
13
|
-
*/
|
|
14
|
-
export {};
|
|
1
|
+
import { ActorsMcpServer } from './mcp/server.js';
|
|
2
|
+
export { ActorsMcpServer };
|
|
15
3
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";
|
|
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
|
@@ -1,52 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
* Command-line arguments:
|
|
9
|
-
* --actors - A comma-separated list of actor full names to add to the server.
|
|
10
|
-
*
|
|
11
|
-
* Example:
|
|
12
|
-
* node index.js --actors=apify/google-search-scraper,apify/instagram-scraper
|
|
13
|
-
*/
|
|
14
|
-
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
15
|
-
import parser from 'yargs-parser';
|
|
16
|
-
import { log } from './logger.js';
|
|
17
|
-
import { ApifyMcpServer } from './server.js';
|
|
18
|
-
import { getActorDiscoveryTools, getActorAutoLoadingTools } from './tools.js';
|
|
19
|
-
log.setLevel(log.LEVELS.ERROR);
|
|
20
|
-
const argv = parser(process.argv.slice(2), {
|
|
21
|
-
boolean: [
|
|
22
|
-
'enable-adding-actors',
|
|
23
|
-
'enableActorAutoLoading', // deprecated
|
|
24
|
-
],
|
|
25
|
-
string: ['actors'],
|
|
26
|
-
default: {
|
|
27
|
-
'enable-adding-actors': false,
|
|
28
|
-
},
|
|
29
|
-
});
|
|
30
|
-
const argEnableAddingActors = argv['enable-adding-actors'] || argv.enableActorAutoLoading || false;
|
|
31
|
-
const argActors = argv.actors?.split(',').map((actor) => actor.trim()) || [];
|
|
32
|
-
if (!process.env.APIFY_TOKEN) {
|
|
33
|
-
log.error('APIFY_TOKEN is required but not set in the environment variables.');
|
|
34
|
-
process.exit(1);
|
|
35
|
-
}
|
|
36
|
-
async function main() {
|
|
37
|
-
const server = new ApifyMcpServer();
|
|
38
|
-
await (argActors.length !== 0
|
|
39
|
-
? server.addToolsFromActors(argActors)
|
|
40
|
-
: server.addToolsFromDefaultActors());
|
|
41
|
-
server.updateTools(getActorDiscoveryTools());
|
|
42
|
-
if (argEnableAddingActors) {
|
|
43
|
-
server.updateTools(getActorAutoLoadingTools());
|
|
44
|
-
}
|
|
45
|
-
const transport = new StdioServerTransport();
|
|
46
|
-
await server.connect(transport);
|
|
47
|
-
}
|
|
48
|
-
main().catch((error) => {
|
|
49
|
-
console.error('Server error:', error); // eslint-disable-line no-console
|
|
50
|
-
process.exit(1);
|
|
51
|
-
});
|
|
1
|
+
/*
|
|
2
|
+
This file provides essential functions and tools for MCP servers, serving as a library.
|
|
3
|
+
The ActorsMcpServer should be the only class exported from the package
|
|
4
|
+
*/
|
|
5
|
+
import { ActorsMcpServer } from './mcp/server.js';
|
|
6
|
+
export { ActorsMcpServer };
|
|
52
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":";
|
|
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"}
|
package/dist/input.d.ts
CHANGED
|
@@ -4,5 +4,5 @@ import type { Input } from './types.js';
|
|
|
4
4
|
* @param originalInput
|
|
5
5
|
* @returns input
|
|
6
6
|
*/
|
|
7
|
-
export declare function processInput(originalInput: Partial<Input>):
|
|
7
|
+
export declare function processInput(originalInput: Partial<Input>): Input;
|
|
8
8
|
//# sourceMappingURL=input.d.ts.map
|
package/dist/input.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,CAoBjE"}
|
package/dist/input.js
CHANGED
|
@@ -1,22 +1,30 @@
|
|
|
1
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Actor input processing.
|
|
3
|
+
*/
|
|
4
|
+
import log from '@apify/log';
|
|
2
5
|
/**
|
|
3
6
|
* Process input parameters, split actors string into an array
|
|
4
7
|
* @param originalInput
|
|
5
8
|
* @returns input
|
|
6
9
|
*/
|
|
7
|
-
export
|
|
10
|
+
export function processInput(originalInput) {
|
|
8
11
|
const input = originalInput;
|
|
9
12
|
// actors can be a string or an array of strings
|
|
10
13
|
if (input.actors && typeof input.actors === 'string') {
|
|
11
14
|
input.actors = input.actors.split(',').map((format) => format.trim());
|
|
12
15
|
}
|
|
13
16
|
// enableAddingActors is deprecated, use enableActorAutoLoading instead
|
|
14
|
-
if (input.
|
|
15
|
-
|
|
16
|
-
|
|
17
|
+
if (input.enableAddingActors === undefined) {
|
|
18
|
+
if (input.enableActorAutoLoading !== undefined) {
|
|
19
|
+
log.warning('enableActorAutoLoading is deprecated, use enableAddingActors instead');
|
|
20
|
+
input.enableAddingActors = input.enableActorAutoLoading === true || input.enableActorAutoLoading === 'true';
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
input.enableAddingActors = false;
|
|
24
|
+
}
|
|
17
25
|
}
|
|
18
|
-
|
|
19
|
-
input.enableAddingActors =
|
|
26
|
+
else {
|
|
27
|
+
input.enableAddingActors = input.enableAddingActors === true || input.enableAddingActors === 'true';
|
|
20
28
|
}
|
|
21
29
|
return input;
|
|
22
30
|
}
|
package/dist/input.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"input.js","sourceRoot":"","sources":["../src/input.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,GAAG,MAAM,YAAY,CAAC;AAI7B;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,aAA6B;IACtD,MAAM,KAAK,GAAG,aAAsB,CAAC;IAErC,gDAAgD;IAChD,IAAI,KAAK,CAAC,MAAM,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QACnD,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAa,CAAC;IAC9F,CAAC;IAED,uEAAuE;IACvE,IAAI,KAAK,CAAC,kBAAkB,KAAK,SAAS,EAAE,CAAC;QACzC,IAAI,KAAK,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;YAC7C,GAAG,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC;YACpF,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,sBAAsB,KAAK,IAAI,IAAI,KAAK,CAAC,sBAAsB,KAAK,MAAM,CAAC;QAChH,CAAC;aAAM,CAAC;YACJ,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC;QACrC,CAAC;IACL,CAAC;SAAM,CAAC;QACJ,KAAK,CAAC,kBAAkB,GAAG,KAAK,CAAC,kBAAkB,KAAK,IAAI,IAAI,KAAK,CAAC,kBAAkB,KAAK,MAAM,CAAC;IACxG,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC"}
|
package/dist/main.d.ts
CHANGED
package/dist/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
package/dist/main.js
CHANGED
|
@@ -1,134 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Serves as an Actor MCP SSE server entry point.
|
|
3
|
+
* This file needs to be named `main.ts` to be recognized by the Apify platform.
|
|
4
|
+
*/
|
|
5
|
+
var _a;
|
|
3
6
|
import { Actor } from 'apify';
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
7
|
+
import log from '@apify/log';
|
|
8
|
+
import { createExpressApp } from './actor/server.js';
|
|
6
9
|
import { processInput } from './input.js';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { getActorDiscoveryTools, getActorAutoLoadingTools } from './tools.js';
|
|
10
|
-
await Actor.init();
|
|
10
|
+
import { ActorsMcpServer } from './mcp/server.js';
|
|
11
|
+
import { actorDefinitionTool, addTool, callActorGetDataset, removeTool, searchTool } from './tools/index.js';
|
|
11
12
|
const STANDBY_MODE = Actor.getEnv().metaOrigin === 'STANDBY';
|
|
13
|
+
await Actor.init();
|
|
12
14
|
const HOST = Actor.isAtHome() ? process.env.ACTOR_STANDBY_URL : 'http://localhost';
|
|
13
|
-
const PORT = Actor.isAtHome() ? process.env.ACTOR_STANDBY_PORT : 3001;
|
|
15
|
+
const PORT = Actor.isAtHome() ? Number(process.env.ACTOR_STANDBY_PORT) : 3001;
|
|
14
16
|
if (!process.env.APIFY_TOKEN) {
|
|
15
17
|
log.error('APIFY_TOKEN is required but not set in the environment variables.');
|
|
16
18
|
process.exit(1);
|
|
17
19
|
}
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
let transport;
|
|
21
|
-
const HELP_MESSAGE = `Connect to the server with GET request to ${HOST}/sse?token=YOUR-APIFY-TOKEN`
|
|
22
|
-
+ ` and then send POST requests to ${HOST}/message?token=YOUR-APIFY-TOKEN`;
|
|
23
|
-
const actorRun = Actor.isAtHome() ? {
|
|
24
|
-
id: process.env.ACTOR_RUN_ID,
|
|
25
|
-
actId: process.env.ACTOR_ID,
|
|
26
|
-
userId: process.env.APIFY_USER_ID,
|
|
27
|
-
startedAt: process.env.ACTOR_STARTED_AT,
|
|
28
|
-
finishedAt: null,
|
|
29
|
-
status: 'RUNNING',
|
|
30
|
-
meta: {
|
|
31
|
-
origin: process.env.APIFY_META_ORIGIN,
|
|
32
|
-
},
|
|
33
|
-
options: {
|
|
34
|
-
build: process.env.ACTOR_BUILD_NUMBER,
|
|
35
|
-
memoryMbytes: process.env.ACTOR_MEMORY_MBYTES,
|
|
36
|
-
},
|
|
37
|
-
buildId: process.env.ACTOR_BUILD_ID,
|
|
38
|
-
defaultKeyValueStoreId: process.env.ACTOR_DEFAULT_KEY_VALUE_STORE_ID,
|
|
39
|
-
defaultDatasetId: process.env.ACTOR_DEFAULT_DATASET_ID,
|
|
40
|
-
defaultRequestQueueId: process.env.ACTOR_DEFAULT_REQUEST_QUEUE_ID,
|
|
41
|
-
buildNumber: process.env.ACTOR_BUILD_NUMBER,
|
|
42
|
-
containerUrl: process.env.ACTOR_WEB_SERVER_URL,
|
|
43
|
-
standbyUrl: process.env.ACTOR_STANDBY_URL,
|
|
44
|
-
} : {};
|
|
45
|
-
/**
|
|
46
|
-
* Process input parameters and update tools.
|
|
47
|
-
* If URL contains query parameter `actors`, add Actors as tools.
|
|
48
|
-
* Otherwise, add default Actors but only if there are no tools added yet.
|
|
49
|
-
* @param url
|
|
50
|
-
*/
|
|
51
|
-
async function processParamsAndUpdateTools(url) {
|
|
52
|
-
const params = parse(url.split('?')[1] || '');
|
|
53
|
-
delete params.token;
|
|
54
|
-
log.debug(`Received input parameters: ${JSON.stringify(params)}`);
|
|
55
|
-
const input = await processInput(params);
|
|
56
|
-
if (input.actors) {
|
|
57
|
-
await mcpServer.addToolsFromActors(input.actors);
|
|
58
|
-
}
|
|
59
|
-
else if (mcpServer.getToolNames().length === 0) {
|
|
60
|
-
await mcpServer.addToolsFromDefaultActors();
|
|
61
|
-
}
|
|
62
|
-
if (input.enableAddingActors) {
|
|
63
|
-
mcpServer.updateTools(getActorAutoLoadingTools());
|
|
64
|
-
}
|
|
65
|
-
log.debug(`Server is running in STANDBY mode with the following Actors (tools): ${mcpServer.getToolNames()}.
|
|
66
|
-
To use different Actors, provide them in query parameter "actors" or include them in the Actor Task input.`);
|
|
67
|
-
}
|
|
68
|
-
app.route(Routes.ROOT)
|
|
69
|
-
.get(async (req, res) => {
|
|
70
|
-
if (req.headers && req.get(HEADER_READINESS_PROBE) !== undefined) {
|
|
71
|
-
log.debug('Received readiness probe');
|
|
72
|
-
res.status(200).json({ message: 'Server is ready' }).end();
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
try {
|
|
76
|
-
log.info(`Received GET message at: ${Routes.ROOT}`);
|
|
77
|
-
await processParamsAndUpdateTools(req.url);
|
|
78
|
-
res.status(200).json({ message: `Actor is using Model Context Protocol. ${HELP_MESSAGE}`, data: actorRun }).end();
|
|
79
|
-
}
|
|
80
|
-
catch (error) {
|
|
81
|
-
log.error(`Error in GET ${Routes.ROOT} ${error}`);
|
|
82
|
-
res.status(500).json({ message: 'Internal Server Error' }).end();
|
|
83
|
-
}
|
|
84
|
-
})
|
|
85
|
-
.head((_req, res) => {
|
|
86
|
-
res.status(200).end();
|
|
87
|
-
});
|
|
88
|
-
app.route(Routes.SSE)
|
|
89
|
-
.get(async (req, res) => {
|
|
90
|
-
try {
|
|
91
|
-
log.info(`Received GET message at: ${Routes.SSE}`);
|
|
92
|
-
await processParamsAndUpdateTools(req.url);
|
|
93
|
-
transport = new SSEServerTransport(Routes.MESSAGE, res);
|
|
94
|
-
await mcpServer.connect(transport);
|
|
95
|
-
}
|
|
96
|
-
catch (error) {
|
|
97
|
-
log.error(`Error in GET ${Routes.SSE}: ${error}`);
|
|
98
|
-
res.status(500).json({ message: 'Internal Server Error' }).end();
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
app.route(Routes.MESSAGE)
|
|
102
|
-
.post(async (req, res) => {
|
|
103
|
-
try {
|
|
104
|
-
log.info(`Received POST message at: ${Routes.MESSAGE}`);
|
|
105
|
-
if (transport) {
|
|
106
|
-
await transport.handlePostMessage(req, res);
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
res.status(400).json({
|
|
110
|
-
message: 'Server is not connected to the client. '
|
|
111
|
-
+ 'Connect to the server with GET request to /sse endpoint',
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
catch (error) {
|
|
116
|
-
log.error(`Error in POST ${Routes.MESSAGE}: ${error}`);
|
|
117
|
-
res.status(500).json({ message: 'Internal Server Error' }).end();
|
|
118
|
-
}
|
|
119
|
-
});
|
|
120
|
-
// Catch-all for undefined routes
|
|
121
|
-
app.use((req, res) => {
|
|
122
|
-
res.status(404).json({ message: `There is nothing at route ${req.method} ${req.originalUrl}. ${HELP_MESSAGE}` }).end();
|
|
123
|
-
});
|
|
124
|
-
const input = await processInput((await Actor.getInput()) ?? {});
|
|
20
|
+
const mcpServer = new ActorsMcpServer();
|
|
21
|
+
const input = processInput((_a = (await Actor.getInput())) !== null && _a !== void 0 ? _a : {});
|
|
125
22
|
log.info(`Loaded input: ${JSON.stringify(input)} `);
|
|
126
23
|
if (STANDBY_MODE) {
|
|
24
|
+
const app = createExpressApp(HOST, mcpServer);
|
|
127
25
|
log.info('Actor is running in the STANDBY mode.');
|
|
128
|
-
|
|
26
|
+
// Do not load default Actors here, for mastra.ai template we need to start without default Actors
|
|
27
|
+
const tools = [searchTool, actorDefinitionTool];
|
|
129
28
|
if (input.enableAddingActors) {
|
|
130
|
-
|
|
29
|
+
tools.push(addTool, removeTool);
|
|
131
30
|
}
|
|
31
|
+
mcpServer.updateTools(tools);
|
|
132
32
|
app.listen(PORT, () => {
|
|
133
33
|
log.info(`The Actor web server is listening for user requests at ${HOST}`);
|
|
134
34
|
});
|
|
@@ -136,10 +36,12 @@ if (STANDBY_MODE) {
|
|
|
136
36
|
else {
|
|
137
37
|
log.info('Actor is not designed to run in the NORMAL model (use this mode only for debugging purposes)');
|
|
138
38
|
if (input && !input.debugActor && !input.debugActorInput) {
|
|
139
|
-
await Actor.fail('If you need to debug a specific
|
|
39
|
+
await Actor.fail('If you need to debug a specific Actor, please provide the debugActor and debugActorInput fields in the input');
|
|
140
40
|
}
|
|
141
41
|
const options = { memory: input.maxActorMemoryBytes };
|
|
142
|
-
await
|
|
42
|
+
const items = await callActorGetDataset(input.debugActor, input.debugActorInput, process.env.APIFY_TOKEN, options);
|
|
43
|
+
await Actor.pushData(items);
|
|
44
|
+
log.info(`Pushed ${items.length} items to the dataset`);
|
|
143
45
|
await Actor.exit();
|
|
144
46
|
}
|
|
145
47
|
//# 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":"
|
|
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,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG7G,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,kGAAkG;IAClG,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;IAChD,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;QAC3B,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"}
|