/** * Transport Factory * * Creates MCP transports (Stdio, SSE, or Streamable HTTP) based on configuration. * Handles authentication, PATH setup, and runtime detection. * * Transport Types: * - Stdio: Local process communication (command-based) * - SSE: Legacy HTTP+SSE transport (deprecated but widely supported) * - Streamable HTTP: Modern HTTP transport with streaming (MCP 2025-03-26+) */ import { MCPOAuthProvider } from '../../auth/mcp-oauth-provider.js'; import type { MCPConfig, MCPTransport } from '../types/connection.js'; import type { TransportFactory } from './connection-pool.js'; /** * Auth token provider function type */ export type AuthTokenProvider = (config: MCPConfig) => Promise; /** * Default Transport Factory implementation * * Creates appropriate transports based on MCP configuration. */ export declare class DefaultTransportFactory implements TransportFactory { private authTokenProvider?; private oauthProviders; constructor(authTokenProvider?: AuthTokenProvider); /** * Get or create an OAuth provider for a server * Reuses existing providers to preserve token state */ getOAuthProvider(config: MCPConfig): MCPOAuthProvider; /** * Set the auth token provider */ setAuthTokenProvider(provider: AuthTokenProvider): void; /** * Create a transport based on config */ createTransport(config: MCPConfig, env?: Record): Promise; /** * Create SSE transport for HTTP-based MCPs (legacy) */ private createSSETransport; /** * Create Streamable HTTP transport for modern MCP servers * * Features: * - Single endpoint for bidirectional messaging * - Automatic SSE upgrade for streaming responses * - Session management with Mcp-Session-Id header * - Reconnection with exponential backoff * - OAuth 2.1 with PKCE (MCP 2025-03-26 spec) */ private createStreamableHTTPTransport; /** * Create Stdio transport for local process MCPs */ private createStdioTransport; /** * Setup environment variables with proper PATH */ private setupEnvironment; /** * Get authentication token for config */ getAuthToken(config: MCPConfig): Promise; } /** * Create a default transport factory instance */ export declare function createTransportFactory(authTokenProvider?: AuthTokenProvider): DefaultTransportFactory; //# sourceMappingURL=transport-factory.d.ts.map