MCP Simple Gateway
by denwakeup
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. It simplifies the management of multiple MCP servers by providing a unified access point.
View on GitHub
Last updated: N/A
MCP 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.authTokens
for 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 themcpServers
configuration
Roadmap
- [x] CORS support
- [x] Streamable HTTP support
License
MIT