/** * Canonical, SDK-agnostic MCP server transport. Each SDK runtime keeps a thin * projector that maps these onto its own constructor shape, so the * name-collision `translateMcpServers` variants converge on one parser. */ export type NormalizedMcpTransport = "http" | "sse" | "stdio"; /** * One parsed MCP server entry. `transport` is decided up front from the raw * record; the projectors switch on it instead of re-classifying. Only the fields * relevant to the chosen transport are populated. */ export interface NormalizedMcpServer { readonly name: string; readonly transport: NormalizedMcpTransport; /** Present for http/sse transports. */ readonly url?: string; /** Header map for http/sse transports, when supplied. */ readonly headers?: Record; /** Present for the stdio transport. */ readonly command?: string; /** stdio argv (string entries only). */ readonly args?: readonly string[]; /** stdio environment overrides (string values only). */ readonly env?: Record; /** stdio working directory. */ readonly cwd?: string; } /** * Parses the loosely-typed `mcpServers` map (the runtime-contract * `Record`) into the canonical model. Entries with invalid * names or shapes are dropped rather than throwing, matching the historical * lenient behaviour of every per-runtime translateMcpServers. Returns an empty * array (never undefined) when there is nothing to parse, so callers decide * their own empty-handling. */ export declare function parseMcpServers(input: Record | undefined): readonly NormalizedMcpServer[]; //# sourceMappingURL=mcp-servers.d.ts.map