diff --git a/package-lock.json b/package-lock.json index b3394a8e..ff9eff53 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,7 @@ "license": "MIT", "dependencies": { "@apify/log": "^2.5.16", - "@modelcontextprotocol/sdk": "^1.10.0", + "@modelcontextprotocol/sdk": "^1.10.1", "ajv": "^8.17.1", "apify": "^3.4.0", "apify-client": "^2.12.1", @@ -1065,9 +1065,9 @@ "license": "MIT" }, "node_modules/@modelcontextprotocol/sdk": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.10.0.tgz", - "integrity": "sha512-wijOavYZfSOADbVM0LA7mrQ17N4IKNdFcfezknCCsZ1Y1KstVWlkDZ5ebcxuQJmqTTxsNjBHLc7it1SV0TBiPg==", + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.10.1.tgz", + "integrity": "sha512-xNYdFdkJqEfIaTVP1gPKoEvluACHZsHZegIoICX8DM1o6Qf3G5u2BQJHmgd0n4YgRPqqK/u1ujQvrgAxxSJT9w==", "license": "MIT", "dependencies": { "content-type": "^1.0.5", diff --git a/package.json b/package.json index 54cfc314..51643f11 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ ], "dependencies": { "@apify/log": "^2.5.16", - "@modelcontextprotocol/sdk": "^1.10.0", + "@modelcontextprotocol/sdk": "^1.10.1", "ajv": "^8.17.1", "apify": "^3.4.0", "apify-client": "^2.12.1", diff --git a/src/actor/server.ts b/src/actor/server.ts index aaf4cc65..82609c8e 100644 --- a/src/actor/server.ts +++ b/src/actor/server.ts @@ -121,6 +121,14 @@ export function createExpressApp( sessionIdGenerator: () => randomUUID(), enableJsonResponse: true, // Enable JSON response mode }); + // Load MCP server tools + // TODO using query parameters in POST request is not standard + const urlSearchParams = new URLSearchParams(req.url.split('?')[1]); + if (urlSearchParams.get('actors')) { + await mcpServer.loadToolsFromUrl(req.url, process.env.APIFY_TOKEN as string); + } else { + await mcpServer.loadDefaultTools(process.env.APIFY_TOKEN as string); + } // Connect the transport to the MCP server BEFORE handling the request await mcpServer.connect(transport); diff --git a/src/mcp/server.ts b/src/mcp/server.ts index ae2d4e19..c0ed87d2 100644 --- a/src/mcp/server.ts +++ b/src/mcp/server.ts @@ -57,7 +57,10 @@ export class ActorsMcpServer { public async loadDefaultTools(apifyToken: string) { const missingDefaultTools = defaults.actors.filter((name) => !this.tools.has(actorNameToToolName(name))); const tools = await getActorsAsTools(missingDefaultTools, apifyToken); - if (tools.length > 0) this.updateTools(tools); + if (tools.length > 0) { + log.info('Loading default tools...'); + this.updateTools(tools); + } } /** @@ -69,7 +72,10 @@ export class ActorsMcpServer { */ public async loadToolsFromUrl(url: string, apifyToken: string) { const tools = await processParamsGetTools(url, apifyToken); - if (tools.length > 0) this.updateTools(tools); + if (tools.length > 0) { + log.info('Loading tools from query parameters...'); + this.updateTools(tools); + } } /**