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.
Installation & Usage
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
Example with MCP Inspector
Using with ngrok
You can use ngrok to share your local MCP server with remote clients:
npx -y supergateway --port 8000 \
--stdio "npx -y @modelcontextprotocol/server-filesystem ."
ngrok http 8000
ngrok then provides a public URL.
Configs
Starting the MCP with Smithery configs
You can use a Smithery config by running (locally):
cat examples/exa.yaml | npx . --config -
Using Config Over MCP Wire Protocol
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 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.