MCP Gateway
Aggregates the Ceph Storage Assistant MCP server, providing tools for managing Ceph storage clusters, such as health summaries and cluster capacity.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Gatewayshow connected servers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Gateway
A TypeScript gateway that aggregates multiple MCP (Model Context Protocol) servers into a single endpoint, enabling AI agents to access tools from many backends through one connection.
AI Agent
│
▼
MCP Gateway ←─── servers.json (config)
│
├── Ceph Storage Assistant (fastmcp)
├── Other MCP Server (sse / streamable-http)
└── Local Tool (stdio)⚠️ Agent Support
Currently, MCP Gateway officially supports Hermes Agent only.
Hermes connects using the MCP Streamable HTTP protocol (2025-11-25) via
mcp.client.streamable_http. Support for other agents (LangChain, AutoGen, OpenAI Agents SDK, etc.) is planned for future development.
Related MCP server: super-mcp
Features
Multi-server aggregation — connect as many MCP servers as needed, tools are merged into one list
Namespace isolation — tools are prefixed with server ID (
ceph_alpha__get_health_summary) so agents know exactly which backend to target, even when multiple servers expose the same tool names4 transport types — supports all current MCP transport protocols plus a custom Ceph-compatible transport
Persistent config —
servers.jsonis the single source of truth; adding/removing servers via the dashboard persists across restartsWeb dashboard — visual overview of connected servers and aggregated tools
Docker-ready — runs in a container with host networking for internal backend access
Transport Types
Value | Protocol | Use when |
| MCP 2025-11-25 | Server uses modern Streamable HTTP |
| MCP 2024-11-05 | Server uses legacy SSE protocol |
| Custom (Ceph) | Ceph Storage Assistant — persistent POST stream |
| stdio | Local process (npx, python, etc.) |
Quick Start
1. Start the gateway
docker compose up -d --buildDashboard: http://localhost:3010
2. Add MCP servers
Open the dashboard and click "Add New MCP-Client". Select the transport type, enter the URL and an ID — the server connects immediately and is saved automatically.
servers.jsonis automatically updated by the gateway whenever you add or remove a server via the dashboard or API. There is no need to edit this file manually.Only edit it directly if you want to pre-configure servers before the very first
docker compose up.
3. Connect Hermes
In your Hermes config.yaml:
mcp_servers:
Ceph-Alpha:
url: http://localhost:3010/sse?apiKey=mcp_gateway_secret_123Hermes will discover all aggregated tools automatically. Tools are namespaced by server ID:
ceph_alpha__get_health_summaryceph_alpha__get_cluster_capacitymy_other_mcp__some_tool
Configuration
Environment variables (docker-compose.yaml)
Variable | Default | Description |
|
| Gateway listen port |
|
| Auth key required in |
|
| Path to servers config file |
servers.json schema
[
{ "id": "string", "transport": "streamable-http", "url": "http://..." },
{ "id": "string", "transport": "sse", "url": "http://..." },
{ "id": "string", "transport": "fastmcp", "url": "http://..." },
{ "id": "string", "transport": "stdio", "command": "npx", "args": ["pkg"] }
]servers.json is automatically updated whenever you add or remove a server via the dashboard or API. Only edit it manually to pre-configure servers before the first docker compose up — after that, use the dashboard.
Management API
# List connected servers + status
curl http://localhost:3010/api/status
# List all aggregated tools
curl http://localhost:3010/api/tools
# Add a server at runtime (persisted to servers.json)
curl -X POST http://localhost:3010/api/servers \
-H "Content-Type: application/json" \
-d '{"id":"new-server","transport":"streamable-http","url":"http://..."}'
# Remove a server at runtime (removed from servers.json)
curl -X DELETE http://localhost:3010/api/servers/new-server
# Test tools/list as an agent would
curl -X POST "http://localhost:3010/sse?apiKey=mcp_gateway_secret_123" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1,"params":{}}'Development
# Install dependencies
npm install
# Run in dev mode (hot reload)
npm run dev
# Build
npm run build
# Start production
npm start
# Docker
docker compose up -d --build # build & start
docker compose restart # restart (picks up servers.json changes)
docker compose logs -f # stream logsProject Structure
mcp-gateway/
├── src/
│ ├── index.ts # Express app, /sse endpoint, management API
│ ├── aggregator.ts # Tool/resource/prompt fan-out + namespace prefixing
│ ├── upstream.ts # Transport classes, UpstreamManager
│ └── config.ts # Zod schema for servers.json
├── public/ # Web dashboard (HTML/CSS/JS)
├── docs/
│ └── plan.md # Architecture & issue history
├── servers.json # Upstream server registry (persistent)
└── docker-compose.yamlRoadmap
Support for additional AI agents (LangChain, AutoGen, OpenAI Agents SDK, ...)
Auto-reconnect on upstream stream drop
Health check endpoint per upstream server
Authentication per upstream (API key injection)
This server cannot be deployed
Maintenance
Related MCP Connectors
Zero-setup MCP gateway securely connecting AI to your tools with authentication and workflows
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
A registry of AI agent tools — MCP servers, APIs, CLIs, SDKs — kept current by automated ingestion.
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA unified gateway and web dashboard that aggregates multiple MCP servers into a single Streamable HTTP endpoint. It supports stdio, SSE, and HTTP protocols, featuring optimized tool exposure modes to reduce token consumption for AI clients.5MIT
- AlicenseNot gradedqualityCmaintenanceA gateway that aggregates multiple MCP servers into a single endpoint, namespacing their tools and forwarding calls, so an agent connects to one MCP to access the entire stack.MIT
- AlicenseNot gradedqualityDmaintenanceA TypeScript gateway for Model Context Protocol servers that aggregates multiple downstream MCP servers, providing tool discovery, routing, smart search, and recommendations.MIT
- FlicenseNot gradedqualityBmaintenanceSingle gateway that aggregates dozens of upstream MCP servers, enabling AI clients to connect once and access all tools.-