Skip to main content
Glama

SuperMCP

SuperMCP is an orchestration layer for Model Context Protocol (MCP) servers. It gives an AI assistant a single entry point to dynamically discover, inspect, and call tools across many MCP servers — without hard-coding anything.

How It Works

SuperMCP starts └─ reads SUPERMCP_REGISTRY (env var, or from .env file) └─ points to a registry file anywhere on disk └─ loads mcpServers from that file └─ resolves relative paths from the registry's directory

Because the registry file can live anywhere, you can keep your servers and their configuration wherever makes sense — a project folder, a shared drive, a dotfiles repo — and just point SuperMCP at it.

Related MCP server: MCPfinder Server

Quick Start

  1. Clone & install dependencies

git clone https://github.com/YakupAtahanov/SuperMCP.git cd SuperMCP uv pip install "mcp[cli]"
  1. Configure the registry path

cp .env.example .env

Edit .env:

SUPERMCP_REGISTRY=C:/Users/you/my-servers/mcp.json

The path can be absolute or relative (relative paths resolve from the SuperMCP directory).

Alternatively, pass it as an environment variable when launching:

SUPERMCP_REGISTRY=/path/to/mcp.json python SuperMCP.py

Or set it in your MCP host (e.g. Cursor):

{ "command": "python", "args": ["C:/path/to/SuperMCP.py"], "env": { "SUPERMCP_REGISTRY": "C:/Users/you/my-servers/mcp.json" } }
  1. Create your registry file at that location:

{ "mcpServers": { "ShellMCP": { "command": "python", "args": [".mcps/ShellMCP/server.py"], "type": "stdio", "description": "Shell command execution", "enabled": true } } }

Relative paths inside the registry (like .mcps/ShellMCP/server.py) resolve from the registry file's directory.

  1. Run

python SuperMCP.py

Available Tools

Tool

Description

reload_servers

Reload the registry and rebuild the in-memory server list

list_servers

List all registered MCP servers

inspect_server

Inspect a server's tools, prompts, and resources

call_server_tool

Call a tool on any registered server

add_server

Add a new server (SSE or stdio) to the registry

remove_server

Remove a server from the registry

update_server

Update a server's configuration

Server Types

Stdio (local process)

{ "mcpServers": { "my-server": { "command": "python", "args": ["path/to/server.py"], "type": "stdio", "description": "A local MCP server", "enabled": true } } }

SSE (remote endpoint)

{ "mcpServers": { "remote-server": { "url": "https://example.com/mcp/sse", "type": "sse", "description": "A remote SSE server", "enabled": true, "env": { "API_KEY": "your-key" } } } }

Environment variables in the env field are sent as HTTP headers in the format X-MCP-{VAR_NAME}.

Git-based Stdio

{ "mcpServers": { "weather-mcp": { "command": "python", "args": [".mcps/remote/weather-mcp/server.py"], "type": "stdio", "url": "https://github.com/user/weather-mcp.git", "description": "Cloned from Git, runs locally", "enabled": true } } }

When a stdio server has a url field, SuperMCP clones the repository into .mcps/remote/<name>/ (relative to the registry) and installs its dependencies.

Project Structure

SuperMCP/ ├── SuperMCP.py # Main orchestration server ├── server_manager.py # Git cloning, SSE testing, dependency install ├── .env.example # Template — copy to .env and set SUPERMCP_REGISTRY ├── pyproject.toml # Python dependencies ├── ARCHITECTURE.md # Architecture overview └── README.md

Contributing

Contributions welcome. Whether you're building new MCP servers, improving the orchestration layer, or enhancing documentation — all help is appreciated.

License

See LICENSE.

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

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/YakupAtahanov/SuperMCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server