@@ -15,8 +15,11 @@ import {
1515 SERVER_NAME ,
1616 SERVER_VERSION ,
1717} from './const.js' ;
18- import { actorDefinitionTool , callActorGetDataset , searchTool } from './tools/index.js' ;
18+ import { actorDefinitionTool , callActorGetDataset , getActorsAsTools , searchTool } from './tools/index.js' ;
1919import type { ActorTool , HelperTool , ToolWrap } from './types.js' ;
20+ import { defaults } from './actor/const.js' ;
21+ import { actorNameToToolName } from './tools/utils.js' ;
22+ import { processParamsGetTools } from './actor/utils.js' ;
2023
2124/**
2225 * Create Apify MCP server
@@ -45,6 +48,25 @@ export class ActorsMcpServer {
4548 this . updateTools ( [ searchTool , actorDefinitionTool ] ) ;
4649 }
4750
51+ /**
52+ * Loads missing default tools.
53+ */
54+ public async loadDefaultTools ( ) {
55+ const missingDefaultTools = defaults . actors . filter ( name => ! this . tools . has ( actorNameToToolName ( name ) ) ) ;
56+ const tools = await getActorsAsTools ( missingDefaultTools ) ;
57+ if ( tools . length > 0 ) this . updateTools ( tools ) ;
58+ }
59+
60+ /**
61+ * Loads tools from URL params.
62+ *
63+ * Used primarily for SSE.
64+ */
65+ public async loadToolsFromUrl ( url : string ) {
66+ const tools = await processParamsGetTools ( url ) ;
67+ if ( tools . length > 0 ) this . updateTools ( tools ) ;
68+ }
69+
4870 /**
4971 * Upsert new tools.
5072 * @param tools - Array of tool wrappers.
@@ -83,7 +105,7 @@ export class ActorsMcpServer {
83105 * @returns {object } - The response object containing the tools.
84106 */
85107 this . server . setRequestHandler ( ListToolsRequestSchema , async ( ) => {
86- // TODO if there is actor-mcp as a tool, also list the tools from that Actor
108+ // TODO if there is actor-mcp as a tool, also list the tools from that Actor
87109 const tools = Array . from ( this . tools . values ( ) ) . map ( ( tool ) => ( tool . tool ) ) ;
88110 return { tools } ;
89111 } ) ;
0 commit comments