UNPKG

@apify/actors-mcp-server

Version:

Model Context Protocol Server for Apify

123 lines 4.7 kB
/** * Model Context Protocol (MCP) server for Apify Actors */ import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import type { Transport } from '@modelcontextprotocol/sdk/shared/transport.js'; import type { ToolEntry } from '../types.js'; type ActorsMcpServerOptions = { enableAddingActors?: boolean; enableDefaultActors?: boolean; }; /** * Create Apify MCP server */ export declare class ActorsMcpServer { readonly server: Server; readonly tools: Map<string, ToolEntry>; private options; private toolsChangedHandler; private sigintHandler; constructor(options?: ActorsMcpServerOptions, setupSigintHandler?: boolean); /** * Returns an array of tool names. * @returns {string[]} - An array of tool names. */ listToolNames(): string[]; /** * Register handler to get notified when tools change. * The handler receives an array of tool names that the server has after the change. * This is primarily used to store the tools in shared state (e.g., Redis) for recovery * when the server loses local state. * @throws {Error} - If a handler is already registered. * @param handler - The handler function to be called when tools change. */ registerToolsChangedHandler(handler: (toolNames: string[]) => void): void; /** * Unregister the handler for tools changed event. * @throws {Error} - If no handler is currently registered. */ unregisterToolsChangedHandler(): void; /** * Returns the list of all internal tool names * @returns {string[]} - Array of loaded tool IDs (e.g., 'apify/rag-web-browser') */ private listInternalToolNames; /** * Returns the list of all currently loaded Actor tool IDs. * @returns {string[]} - Array of loaded Actor tool IDs (e.g., 'apify/rag-web-browser') */ listActorToolNames(): string[]; /** * Returns a list of Actor IDs that are registered as MCP servers. * @returns {string[]} - An array of Actor MCP server Actor IDs (e.g., 'apify/actors-mcp-server'). */ private listActorMcpServerToolIds; /** * Returns a list of Actor name and MCP server tool IDs. * @returns {string[]} - An array of Actor MCP server Actor IDs (e.g., 'apify/actors-mcp-server'). */ listAllToolNames(): string[]; /** * Loads missing toolNames from a provided list of tool names. * Skips toolNames that are already loaded and loads only the missing ones. * @param toolNames - Array of tool names to ensure are loaded * @param apifyToken - Apify API token for authentication */ loadToolsByName(toolNames: string[], apifyToken: string): Promise<void>; /** * Resets the server to the default state. * This method clears all tools and loads the default tools. * Used primarily for testing purposes. */ reset(): Promise<void>; /** * Initialize the server with default tools if enabled */ initialize(): Promise<void>; /** * Loads default tools if not already loaded. * @param apifyToken - Apify API token for authentication * @returns {Promise<void>} - A promise that resolves when the tools are loaded */ loadDefaultActors(apifyToken: string): Promise<void>; /** * @deprecated Use `loadDefaultActors` instead. * Loads default tools if not already loaded. */ loadDefaultTools(apifyToken: string): Promise<void>; /** * Loads tools from URL params. * * This method also handles enabling of Actor autoloading via the processParamsGetTools. * * Used primarily for SSE. */ loadToolsFromUrl(url: string, apifyToken: string): Promise<void>; /** * Add Actors to server dynamically */ enableDynamicActorTools(): void; disableDynamicActorTools(): void; /** Delete tools from the server and notify the handler. */ removeToolsByName(toolNames: string[], shouldNotifyToolsChangedHandler?: boolean): string[]; /** * Upsert new tools. * @param tools - Array of tool wrappers to add or update * @param shouldNotifyToolsChangedHandler - Whether to notify the tools changed handler * @returns Array of added/updated tool wrappers */ upsertTools(tools: ToolEntry[], shouldNotifyToolsChangedHandler?: boolean): ToolEntry[]; private notifyToolsChangedHandler; private removeToolByName; private setupErrorHandling; /** * Sets up MCP request handlers for prompts. */ private setupPromptHandlers; private setupToolHandlers; connect(transport: Transport): Promise<void>; close(): Promise<void>; } export {}; //# sourceMappingURL=server.d.ts.map