UNPKG

mcp-proxy

Version:

A TypeScript SSE proxy for MCP servers that use stdio transport.

48 lines (43 loc) 1.49 kB
import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js'; import { JSONRPCMessage, ServerCapabilities } from '@modelcontextprotocol/sdk/types.js'; import { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { Client } from '@modelcontextprotocol/sdk/client/index.js'; import http from 'http'; type TransportEvent = { type: "close"; } | { type: "onclose"; } | { type: "onerror"; error: Error; } | { type: "onmessage"; message: JSONRPCMessage; } | { type: "send"; message: JSONRPCMessage; } | { type: "start"; }; declare const tapTransport: (transport: Transport, eventHandler: (event: TransportEvent) => void) => Transport; declare const proxyServer: ({ server, client, serverCapabilities, }: { server: Server; client: Client; serverCapabilities: ServerCapabilities; }) => Promise<void>; type SSEServer = { close: () => Promise<void>; }; type ServerLike = { connect: Server["connect"]; close: Server["close"]; }; declare const startSSEServer: <T extends ServerLike>({ port, createServer, endpoint, onConnect, onClose, onUnhandledRequest, }: { port: number; endpoint: string; createServer: (request: http.IncomingMessage) => Promise<T>; onConnect?: (server: T) => void; onClose?: (server: T) => void; onUnhandledRequest?: (req: http.IncomingMessage, res: http.ServerResponse) => Promise<void>; }) => Promise<SSEServer>; export { proxyServer, startSSEServer, tapTransport };