JSPM

  • Created
  • Published
  • Downloads 59778
  • Score
    100M100P100Q145112F
  • License MIT

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

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (mcp-proxy) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    MCP Proxy

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

    [!NOTE] CORS is enabled by default.

    [!NOTE] For a Python implementation, see mcp-proxy.

    [!NOTE] MCP Proxy is what FastMCP uses to enable SSE.

    Installation

    npm install mcp-proxy

    Quickstart

    Command-line

    npx mcp-proxy --port 8080 --endpoint /sse tsx server.js

    This starts an SSE server and stdio server (tsx server.js). The SSE server listens on port 8080 and endpoint /sse, and forwards messages to the stdio server.

    Node.js SDK

    The Node.js SDK provides several utilities that are used to create a proxy.

    proxyServer

    Sets up a proxy between a server and a client.

    const transport = new StdioClientTransport();
    const client = new Client();
    
    const server = new Server(serverVersion, {
      capabilities: {},
    });
    
    proxyServer({
      server,
      client,
      capabilities: {},
    });

    In this example, the server will proxy all requests to the client and vice versa.

    startSSEServer

    Starts a proxy that listens on a port and endpoint, and sends messages to the attached server via SSEServerTransport.

    import { Server } from "@modelcontextprotocol/sdk/server/index.js";
    import { startSSEServer } from "mcp-proxy";
    
    const { close } = await startSSEServer({
      port: 8080,
      endpoint: "/sse",
      createServer: async () => {
        return new Server();
      },
    });
    
    close();

    tapTransport

    Taps into a transport and logs events.

    import { tapTransport } from "mcp-proxy";
    
    const transport = tapTransport(new StdioClientTransport(), (event) => {
      console.log(event);
    });