LABSCO SUMMARY
A one-line fix for the transport mismatch, with the auth and CORS flags you need to actually deploy it.
The conversion itself is trivial to describe; what makes this usable beyond a demo is the surrounding flags — repeated headers and a bearer token for authenticated remotes, CORS by origin or regex, a health endpoint, and quiet logging. If you expose a stdio server on a port, those are the settings that decide whether it is safe.
What it is
A transport converter. Point it at a stdio MCP server and it serves that server over the network; point it at a remote SSE or Streamable HTTP server and it exposes it locally over stdio. Useful when the server you have and the client you want speak different transports.
What you get
- Stdio to SSE: subscribe at
/sse, post messages to/message, with--port,--baseUrl,--ssePathand--messagePathall configurable - Stdio to Streamable HTTP, stateless by default or
--statefulwith a--sessionTimeout, at/mcpby default - Stdio to WebSocket, exposing
ws://localhost:8000/message - SSE to stdio and Streamable HTTP to stdio, for pulling a remote server into a command-line client
- Authentication passed through:
--oauth2Beareradds an Authorization header, and--headercan be repeated for anything else - Operational flags that matter when it is exposed:
--corsallowing all origins or a list you supply including regex matching,--healthEndpointfor monitoring, and--logLevelset to debug, info or none
Requirements
Node, and npx -y supergateway with --stdio, --sse or --streamableHttp naming what to connect to. Nothing to install and no account. The package is supergateway 3.4.3.
Setup effort
One command — npx -y supergateway --stdio "uvx mcp-server-git"
USE CASES
01
Using a stdio-only server from a client that needs HTTP
Wrap it in one command and hand the client an SSE or Streamable HTTP URL instead of a process to spawn.
02
Reaching a remote MCP server from a command-line client
Run the gateway in the other direction so the remote server appears as a local stdio process, with the bearer token attached.
03
Debugging a server without wiring it into a client
Serve it over SSE on a port and point the MCP Inspector at it.
04
Putting a stdio server behind a browser-based client
Enable CORS for the specific origin rather than all of them, add a health endpoint for monitoring, and keep the bearer token on the gateway.
BEFORE YOU INSTALL
What to know first
Requires
npx on PATH
INSTALLATION
Connect your client
Server setup
TERMINAL
npx -y supergateway --stdio "uvx mcp-server-git"MCP Clients
Claude Desktop — npx
CLAUDE DESKTOP — NPX · JSON
{
"mcpServers": {
"supermachineExampleNpx": {
"command": "npx",
"args": [
"-y",
"supergateway",
"--sse",
"https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app"
]
}
}
}https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app is the project's example Supermachine server; yours is the SSE address of the remote MCP server you want to reach.
Claude Desktop — Docker
CLAUDE DESKTOP — DOCKER · JSON
{
"mcpServers": {
"supermachineExampleDocker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"supercorp/supergateway",
"--sse",
"https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app"
]
}
}
}https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app is the project's example Supermachine server; yours is the SSE address of the remote MCP server you want to reach.
Cursor — npx
CURSOR — NPX · JSON
{
"mcpServers": {
"cursorExampleNpx": {
"command": "npx",
"args": [
"-y",
"supergateway",
"--sse",
"https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app"
]
}
}
}https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app is the project's example Supermachine server; yours is the SSE address of the remote MCP server you want to reach.
Cursor — Docker
CURSOR — DOCKER · JSON
{
"mcpServers": {
"cursorExampleDocker": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"supercorp/supergateway",
"--sse",
"https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app"
]
}
}
}https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app is the project's example Supermachine server; yours is the SSE address of the remote MCP server you want to reach.
MCP Inspector
MCP INSPECTOR · TERMINAL
npx -y supergateway --port 8000 --stdio "npx -y @modelcontextprotocol/server-filesystem /Users/MyName/Desktop"
npx @modelcontextprotocol/inspector