import type { FabricMcpConfig } from "../config.js"; import type { FabricActionDescriptor, FabricInvocationContext, FabricProvider, FabricProviderListRequest, FabricToolAnnotations } from "../protocol.js"; import { McpDescriptorCacheStore } from "./mcp-descriptor-cache.js"; export interface McpProviderHooks { /** Full provider-fidelity descriptor slice after any tool-list change. */ onSliceChanged?: (descriptors: FabricActionDescriptor[]) => void; } export interface HostedMcpTool { name: string; description?: string; inputSchema?: Record; outputSchema?: Record; annotations?: FabricToolAnnotations; } /** Authorized metadata and transport only; never configuration or credentials. */ export interface HostedMcpSource { listServers(): string[]; listTools(server: string): Promise; callTool(server: string, tool: string, options: { args: Record; signal?: AbortSignal; timeoutMs?: number; disableOAuth?: boolean; }): Promise; close?(server?: string): Promise; } export interface McpProviderOptions { source?: HostedMcpSource; cache?: McpDescriptorCacheStore; hooks?: McpProviderHooks; } export declare class McpProvider implements FabricProvider { #private; readonly cwd: string; readonly config: FabricMcpConfig; readonly name = "mcp"; readonly description = "External MCP tools discovered and pooled by mcporter"; constructor(cwd: string, config: FabricMcpConfig, options?: McpProviderOptions); list(request: FabricProviderListRequest, context: FabricInvocationContext): Promise; describe(actionName: string, context: FabricInvocationContext): Promise; invoke(actionName: string, args: Record, context: FabricInvocationContext): Promise; close(): Promise; warmup(): void; sliceDescriptors(): FabricActionDescriptor[]; settle(): Promise; } //# sourceMappingURL=mcp-provider.d.ts.map