About MCP Simple Gateway
MCP Simple Gateway is a proxy for consolidating and managing multiple MCP servers through one interface. It is intended for deployments that need token authentication and configurable transport support.
Key features
- 01Aggregate multiple MCP servers
- 02Token-based authentication
- 03JSON configuration
- 04Docker support
- 05SSE, stdio, and StreamableHTTP support
Use cases
- 01Expose several MCP servers through one address
- 02Require tokens when accessing proxied servers
- 03Configure servers and proxy options in JSON
MCP support
Acts as an MCP proxy, aggregating configured servers and supporting SSE, stdio, and StreamableHTTP connections. It can apply authentication tokens globally or per server.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEMCP Simple Gateway
MCP Simple Gateway is a proxy server for Model Context Protocol (MCP) that allows you to aggregate and manage multiple MCP servers through a single interface.
Key Features
- 🚀 Aggregation of multiple MCP servers
- 🔒 Token-based authentication support
- 📝 Flexible JSON-based configuration
- 🐳 Docker support
- 🔌 SSE, stdio and StreamableHTTP MCP supported
Usage
Running via CLI
npx mcp-simple-gateway --config config.json
Running via Docker Compose
Example docker-compose.yml:
services:
mcp-gateway:
platform: linux/amd64 # For Apple Silicon Users
image: ghcr.io/denwakeup/mcp-simple-gateway:latest
volumes:
- ./config.json:/app/config.json
ports:
- '3000:3000'
environment:
- CONFIG_PATH=/app/config.json
Configuration
Example configuration file (config.json):
{
"proxyServer": {
"logLevel": "debug",
"logPretty": true,
"authTokens": ["your-auth-token"],
"cors": {
"origin": true
}
},
"mcpServers": {
"time": {
"command": "uvx",
"args": ["mcp-server-time", "--local-timezone=Europe/Moscow"],
"proxyOptions": {
"authTokens": ["server-specific-token"]
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/app/files"]
},
"echo": {
"type": "streamableHttp",
"url": "http://localhost:8080/mcp"
}
}
}
Configuration Parameters
-
proxyServer.options:logLevel: Logging level (debug, info, warn, error)logPretty: Log formattingauthTokens: Array of authentication tokens (used as default for all servers)cors: CORS configuration options (optional)
-
mcpServers: MCP servers configuration[serverName]:command: Command to start the server (for stdio servers)args: Command arguments (for stdio servers)url: URL of the server (for SSE and StreamableHTTP servers)type: Server type (optional for stdio and SSE, required for StreamableHTTP)proxyOptions: Proxy options for a specific serverauthTokens: Array of authentication tokens (overridesproxyServer.options.authTokensfor the specific server)
Based on the configuration above, the URLs for accessing MCP servers will be as follows:
http://localhost:3000/time/sse
http://localhost:3000/filesystem/sse
http://localhost:3000/echo/sse
localhost:3000- proxy server address and port (default)/time/sse,/filesystem/sse, and/echo/sse- paths to corresponding MCP servers that match the keys in themcpServersconfiguration
Roadmap
- CORS support
- Streamable HTTP support
License
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.