import type { OtelInfoType } from './types'; /** * Interface designed to abstract the connection to a Model Context Protocol (MCP) Server. * * Implementing this interface allows Arvo Agents to connect to the standardized MCP ecosystem * (e.g. Filesystems, GitHub, PostgreSQL, Slack) as if they were native tools. */ export interface IMCPClient { /** * Establishes the transport session (e.g. SSE, Stdio, HTTP) with the MCP Server. * Should perform handshake and capability negotiation. */ connect: (config: { otelInfo: OtelInfoType; }) => Promise; /** * Executes a specific capability on the remote MCP server. * * @param param - The tool name and arguments generated by the LLM. * @returns The tool's output as a string, to be fed back into the LLM's context window. */ invokeTool: (param: { name: string; arguments?: Record | null; }, config: { otelInfo: OtelInfoType; }) => Promise; /** * Closes the transport session and releases resources. */ disconnect: (config: { otelInfo: OtelInfoType; }) => Promise; /** * Discovers available capabilities from the MCP Server. * These definitions are converted by Arvo into the specific format required by the LLM (e.g. OpenAI Tool specs). */ getTools: (config: { otelInfo: OtelInfoType; }) => Promise<{ name: string; description: string; inputSchema: Record; }[]>; /** * Retrieves the priority mapping for the MCP tools. * * This allows external MCP tools to participate in Arvo's **Priority Batch Execution** logic, * ensuring critical tools take precedence over optional ones during orchestration. */ getToolPriority(config: { otelInfo: OtelInfoType; }): Promise>; } //# sourceMappingURL=interfaces.mcp.d.ts.map