A local MCP router that aggregates multiple MCPs into a single interface for Claude. No installation required - just use npx!
Super MCP Router allows you to configure multiple MCP servers (both local stdio and hosted HTTP) and access them through a single unified interface with these meta-tools:
list_tool_packages- List available MCP packages and discover their capabilitieslist_tools- List tools in a specific package with schemas and examplesuse_tool- Execute a tool from any packageget_help- Get detailed guidance on using Super-MCP effectivelyauthenticate- Start OAuth authentication for packages that require ithealth_check_all- Check the operational status of all configured packages
Super MCP Router supports two transport modes:
- STDIO (default): For local Claude Desktop integration
- HTTP: For remote access and running multiple instances in parallel
Add this to your Claude Desktop MCP settings:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"super-mcp": {
"command": "npx",
"args": ["-y", "super-mcp-router@latest"]
}
}
}When to use HTTP mode:
- 🔄 Running multiple instances in parallel (no tool call conflicts)
- 🌐 Remote access from multiple machines
- ☁️ Cloud deployments (AWS, GCP, Azure, etc.)
- 🔧 Load balancing across multiple servers
- 📊 Easier monitoring and debugging with HTTP tools
To run the server in HTTP mode:
# Run on default port 3000
npx super-mcp-router@latest --transport http
# Run on custom port
npx super-mcp-router@latest --transport http --port 8080
# With custom config
npx super-mcp-router@latest --transport http --config /path/to/config.jsonThen configure Claude Desktop to connect via HTTP:
{
"mcpServers": {
"super-mcp-http": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}Running Multiple Instances:
# Terminal 1 - Instance on port 3000
npx super-mcp-router@latest --transport http --port 3000
# Terminal 2 - Instance on port 3001
npx super-mcp-router@latest --transport http --port 3001
# Terminal 3 - Instance on port 3002
npx super-mcp-router@latest --transport http --port 3002Each instance runs independently with no shared state or conflicts.
That's it! Super MCP Router will automatically:
- Create
~/.super-mcp/directory - Create an empty config file
- Start working immediately (even with no MCPs configured)
Use the simple CLI to add MCP servers:
# Add common MCP servers
npx super-mcp-router add filesystem
npx super-mcp-router add github
npx super-mcp-router add memory
# See available servers
npx super-mcp-router add --helpOr manually edit ~/.super-mcp/config.json to add custom MCPs.
- ✅ Best for: Local Claude Desktop integration
- ✅ Zero configuration needed
- ✅ Lowest latency
⚠️ Single client only⚠️ Cannot run multiple instances in parallel
- ✅ Best for: Multiple parallel instances, remote access, cloud deployments
- ✅ Run unlimited instances simultaneously
- ✅ No tool call conflicts between instances
- ✅ Works with load balancers
- ✅ Easier to monitor and debug
⚠️ Requires port configuration⚠️ Slightly higher latency than stdio (minimal)
Super MCP Router supports the standard MCP mcpServers configuration format, making it easy to drop in existing MCP server configurations.
Create a super-mcp-config.json file:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"/path/to/directory"
]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_GITHUB_TOKEN"
}
},
"notion-api": {
"type": "sse",
"url": "https://mcp.notion.com/mcp",
"oauth": true,
"name": "Notion Integration",
"description": "Access and manage Notion workspaces"
}
}
}Standard MCP fields:
command: Command to execute (for stdio servers)args: Command argumentsenv: Environment variables (supports variable expansion - see below)cwd: Working directory for the server processtype: Transport type:"stdio": Local command execution"sse": HTTP+SSE transport (deprecated as of MCP spec 2025-03-26)"http": Streamable HTTP transport (recommended for HTTP servers)
url: Server URL (for HTTP servers)headers: HTTP headers for authentication
Extended fields (super-mcp specific):
oauth: Enable OAuth authentication (boolean)name: Human-readable name for the packagedescription: Description of the package's capabilitiesvisibility: "default" or "hidden" (controls display in tool lists)timeout: Tool execution timeout in milliseconds (default: 300000 = 5 minutes)
Super MCP Router supports environment variable expansion in the env field using ${VAR} or $VAR syntax:
{
"github": {
"command": "npx",
"args": ["@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
}
}
}This allows you to:
- Keep sensitive tokens out of configuration files
- Share configurations without exposing credentials
- Use different values across environments
Security Note: Only explicitly configured environment variables are passed to MCP servers. This prevents leaking system environment variables to individual servers.
Super MCP Router supports configurable timeouts for long-running tool executions. By default, tools timeout after 5 minutes (300,000ms), but you can customize this per-server or globally.
Per-Server Timeout:
{
"mcpServers": {
"deep-research": {
"command": "npx",
"args": ["-y", "octagon-deep-research-mcp@latest"],
"timeout": 600000, // 10 minutes for deep research tasks
"env": {
"OCTAGON_API_KEY": "your_api_key"
}
}
}
}Global Timeout (Environment Variable):
export SUPER_MCP_TOOL_TIMEOUT=600000 # 10 minutes default for all toolsHow Timeouts Work:
- Default timeout: 300,000ms (5 minutes)
- Per-server
timeoutconfig overrides the default SUPER_MCP_TOOL_TIMEOUTenvironment variable provides a global default- Timeout automatically resets when the tool sends progress notifications
- Useful for long-running operations like research, data processing, or complex queries
Super MCP Router includes a simple CLI for managing MCP servers:
# Add pre-configured MCP servers
npx super-mcp-router add filesystem # Adds filesystem access
npx super-mcp-router add github # Adds GitHub integration
npx super-mcp-router add memory # Adds persistent memory
# See available servers
npx super-mcp-router add --helpThe add command:
- Adds servers to
~/.super-mcp/config.json - Uses sensible defaults (e.g.,
~/Documentsfor filesystem) - Reminds you about required environment variables
If no --config is specified, Super MCP Router uses:
~/.super-mcp/config.json(auto-created if missing)
You can still use custom locations:
npx super-mcp-router --config /custom/path/config.jsonYou can split your MCP servers across multiple configuration files for better organization. This is useful for:
- Separating personal and work MCPs
- Grouping MCPs by functionality (e.g., dev tools, AI services, databases)
- Sharing common configurations across projects
- Managing team-wide vs personal tool configurations
In your Claude configuration, you can specify multiple config files:
{
"mcpServers": {
"Super-MCP": {
"command": "npx",
"args": [
"-y",
"super-mcp-router@latest",
"--config",
"/Users/YOU/.super-mcp/personal-mcps.json",
"--config",
"/Users/YOU/.super-mcp/work-mcps.json",
"--config",
"/Users/YOU/.super-mcp/shared-mcps.json"
]
}
}
}Set the environment variable with comma-separated paths:
export SUPER_MCP_CONFIG="/path/to/personal.json,/path/to/work.json,/path/to/shared.json"Then use Super MCP normally - it will automatically load all specified configs.
dev-tools.json:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/YOU/dev"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "YOUR_TOKEN" }
}
}
}ai-services.json:
{
"mcpServers": {
"brave-search": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
"env": { "BRAVE_API_KEY": "YOUR_KEY" }
}
}
}- Duplicate IDs: If the same server ID appears in multiple configs, the last one loaded takes precedence (with a warning logged)
- Error Handling: If any config file fails to load, the entire startup fails (fail-fast behavior)
- Backward Compatible: Single config files work exactly as before - no changes needed to existing setups
- Legacy Format: The old
packagesarray format is still supported and automatically converted
While npx is the recommended way to use Super MCP Router (no installation, always up-to-date), you can also:
npm install -g super-mcp-routerThen use in Claude config:
{
"mcpServers": {
"Super-MCP": {
"command": "super-mcp-router",
"args": [
"--config",
"/Users/YOUR_USERNAME/.super-mcp/super-mcp-config.json"
]
}
}
}To update: npm update -g super-mcp-router
git clone https://github.com/JoshuaWohle/Super-MCP.git
cd Super-MCP
npm install
npm run buildThen use in Claude config:
{
"mcpServers": {
"Super-MCP": {
"command": "node",
"args": [
"/absolute/path/to/Super-MCP/dist/cli.js",
"--config",
"/Users/YOUR_USERNAME/.super-mcp/super-mcp-config.json"
]
}
}
}To update:
cd /path/to/Super-MCP
git pull
npm install
npm run build- Single Interface: Access all your MCPs through one connection
- Mixed Transports: Combine stdio and HTTP MCPs seamlessly
- HTTP Transport Support: Both HTTP+SSE (legacy) and Streamable HTTP (recommended)
- OAuth Support: Browser-based OAuth flow with persistent token storage
- Tool Discovery: Automatic tool enumeration and caching
- Validation: Schema validation for all tool arguments
- Error Handling: Comprehensive error codes and messages with contextual help
- Improved Authentication: Clear error messages guiding users to authenticate when needed
- Built-in Help System: Interactive guidance with
get_helptool - Portable: Everything contained within this directory
src/
├── cli.ts # CLI entry point
├── server.ts # MCP server with meta-tools
├── registry.ts # Config loading & package management
├── catalog.ts # Tool caching & discovery
├── summarize.ts # Tool summaries & arg skeletons
├── validator.ts # Argument validation
├── logging.ts # Structured logging
├── types.ts # TypeScript definitions
├── auth/
│ ├── manager.ts # Token storage (keychain + file fallback)
│ ├── deviceCode.ts # Device code OAuth flow
│ ├── browserOAuthProvider.ts # Browser OAuth provider
│ ├── callbackServer.ts # OAuth callback server
│ └── globalOAuthLock.ts # OAuth flow coordination
└── clients/
├── stdioClient.ts # Stdio MCP client
└── httpClient.ts # HTTP MCP client
- Never commit your
super-mcp-config.json- it contains API keys and credentials - Tokens stored securely in OS keychain (with file fallback)
- All sensitive data redacted from logs
- File tokens created with 0600 permissions
- Device code flow (no local HTTP server required)
.gitignore file excludes your config file, but double-check before committing!
Super MCP includes comprehensive built-in help accessible through the get_help tool:
- getting_started: Basic workflow and examples
- workflow: Common usage patterns
- authentication: OAuth and API key setup
- tool_discovery: Finding and understanding available tools
- error_handling: Troubleshooting error codes
- common_patterns: Typical usage scenarios
- package_types: Understanding different MCP types
// Get started with Super MCP
get_help(topic: "getting_started")
// Get help for a specific package
get_help(package_id: "github")
// Get help for an error code
get_help(error_code: -32003)All errors now include contextual guidance pointing to relevant help resources and suggesting next steps.
# Install dependencies
npm install
# Run in development mode
npm run dev -- --config ./super-mcp-config.json
# Build for production
npm run build