super-mcp
super-mcp
Multiple MCP servers put together as one. A gateway that spawns each configured sub-MCP, namespaces and re-exposes all of their tools, and forwards calls — so the agent connects to one MCP and gets the whole stack.
┌────────────── super-mcp (gateway) ──────────────┐
Claude ── stdio ──▶ │ tools/list ─▶ cloudflare__list_zones │
│ owndomain__own_domain_fanout │
│ godaddy__list_domains ... │
│ tools/call ─▶ route by prefix ─▶ sub-MCP │
└───────┬───────────────┬───────────────┬──────────┘
stdio │ stdio │ stdio │
cloudflare-mcp own-domain-mcp godaddy-mcp
└─────────────── each → its vendor REST APIWhy this (and why MCP → API all the way down)
Every sub-server is itself an MCP wrapping a direct vendor REST API (Cloudflare, GoDaddy, …). The gateway changes nothing about that contract — it just unifies the surface. So the full path stays MCP → API: deterministic, least-privilege, no browser. The namespace prefix (cloudflare__, owndomain__, godaddy__) keeps it explicit which underlying API served any call, even through the aggregator.
Benefits:
One connection, whole stack. Register
super-mcponce instead of N servers.Add by config. Drop a server into
config/servers.json(orSUPER_MCP_SERVERS); no code change.Decoupled. Sub-servers run as their own processes with their own scoped creds; a crash in one doesn't take down the rest (it's skipped with a logged error).
Config
config/servers.json:
{
"servers": [
{ "name": "cloudflare", "command": "node", "args": ["/path/to/cloudflare-mcp/dist/index.js"] },
{ "name": "owndomain", "command": "node", "args": ["/path/to/own-domain-mcp/dist/index.js"] },
{ "name": "godaddy", "command": "node", "args": ["/path/to/godaddy-mcp/dist/index.js"] }
]
}Override with SUPER_MCP_SERVERS (a path to a JSON file, or inline JSON). Per-server env is merged over the parent environment.
Install
npm install && npm run build
# build the sub-servers too (they must have dist/ outputs)
claude mcp add super -- node ~/code/personal/super-mcp/dist/index.js
npm testNotes
Tools are advertised with their original JSON Schema passed straight through — no re-validation, no lossy Zod round-trip.
The gateway is a low-level MCP
Server; it answerstools/listandtools/callonly. Sub-server prompts/resources are intentionally not aggregated (tools are the surface families share).
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/nidamen/super-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server