Package Exports
- mcp-proxy
- mcp-proxy/dist/MCPProxy.js
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);
});