Supergateway runs a MCP stdio-based servers over SSE (Server-Sent Events) with one command. This is useful for remote access, debugging, or connecting to SSE-based clients when your MCP server only speaks stdio.
Supported by superinterface.ai and supercorp.ai.
Run Supergateway via npx
:
npx -y supergateway --stdio "uvx mcp-server-git"
-
--port 8000
: Port to listen on (default:8000
) -
--stdio
: Command that runs an MCP server over stdio
Once started:
-
SSE endpoint:
GET http://localhost:8000/sse
-
POST messages:
POST http://localhost:8000/message
-
Run Supergateway:
npx -y supergateway --port 8000 \ --stdio "npx -y @modelcontextprotocol/server-filesystem /Users/MyName/Desktop"
-
Use MCP Inspector:
You can then read resources, list tools, or run other MCP actions through Supergateway.
npx @modelcontextprotocol/inspector --uri http://localhost:8000/sse
You can use ngrok to share your local MCP server with remote clients:
npx -y supergateway --port 8000 \
--stdio "npx -y @modelcontextprotocol/server-filesystem ."
# In another terminal:
ngrok http 8000
ngrok then provides a public URL.
You can use a Smithery config by running (locally):
cat examples/exa.yaml | npx . --config -
MCP clients can configure the server over the wire using the experimental config
capability. Here's how:
-
Check Capabilities: First verify the server supports config by checking its capabilities:
{ "capabilities": { "experimental": { "config": {} } } }
-
Send Config Request: Send a JSON-RPC request to the
experimental/config
method:{ "jsonrpc": "2.0", "method": "config", "params": { "config": ... // The config object over MCP } }
The server will validate the config against its schema and apply it if valid. Any errors in the config will be returned in the JSON-RPC response.