Skip to main content
Glama

claude-mcp-server-gateway

Claude MCP server gateway

A Python MCP server gateway for Claude Desktop, Claude Code, Cline and Roo. Instead of loading all MCP tools at startup, it loads them on demand.

Works with: Claude Desktop (app), Claude Code (terminal), Cline and Roo (VSCode extensions)

Compatibility

Platform

Config File

Supported

Claude Desktop

claude_desktop_config.json

Yes

Claude Code

.claude.json

or

.mcp.json

Yes

Cline (VSCode)

cline_mcp_settings.json

Yes

The MCP server problem

When you connect multiple MCP servers to Claude:

  • GitHub MCP server: 51 tools

  • Slack MCP server: 20 tools

  • Google Drive MCP: 15 tools

  • Filesystem MCP: 12 tools

That's 100+ MCP tool definitions loaded before you even start. Each tool's JSON schema eats up tokens.

What this Claude MCP server gateway does

The gateway acts as a single MCP server with 3 tools:

  1. list_available_mcps - shows configured MCP servers

  2. load_mcp_tools - loads tools from a specific MCP server

  3. call_mcp_tool - executes the tool

Model Context Protocol servers only start when Claude actually needs them.

Setup

Requirements

  • Python 3.11+ (for MCP Python SDK)

  • Claude Desktop, Claude Code, or Cline/Roo

  • MCP servers you want to use

Install

git clone https://github.com/bzsasson/claude-mcp-server-gateway.git cd claude-mcp-server-gateway python3.11 -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install mcp python-dotenv

Configure API keys

cp .env.example .env # Edit .env with your tokens

Claude Desktop MCP server configuration

Add to your Claude Desktop config:

Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json

{ "mcpServers": { "gateway": { "command": "/path/to/.venv/bin/python", "args": ["/path/to/claude-mcp-server-gateway/dcl_wrapper.py"] } } }

Restart Claude Desktop.

How to add MCP server to Claude Code

Claude Code MCP server setup uses a similar config with one additional field.

User-level configuration (all projects)

Edit ~/.claude.json:

{ "mcpServers": { "gateway": { "type": "stdio", "command": "/path/to/.venv/bin/python", "args": ["/path/to/claude-mcp-server-gateway/dcl_wrapper.py"] } } }

Project-level configuration

For project-specific MCP servers, create .mcp.json in your project root:

{ "mcpServers": { "gateway": { "type": "stdio", "command": "/path/to/.venv/bin/python", "args": ["/path/to/claude-mcp-server-gateway/dcl_wrapper.py"] } } }

Claude Code will prompt for approval when using project-scoped servers.

Alternative: Claude Code CLI

# Add the gateway using CLI claude mcp add gateway --scope user \ --command /path/to/.venv/bin/python \ -- /path/to/claude-mcp-server-gateway/dcl_wrapper.py # Verify it's added claude mcp list

Cline/Roo MCP server configuration

For Cline and Roo (VSCode extensions), the MCP server gateway configuration goes in:

Mac: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Windows: %APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

{ "mcpServers": { "gateway": { "command": "/path/to/.venv/bin/python", "args": ["/path/to/claude-mcp-server-gateway/dcl_wrapper.py"], "disabled": false } } }

Restart VSCode after updating.

How it works

  1. Claude starts - sees gateway (3 tools)

  2. You ask about GitHub - Claude calls list_available_mcps

  3. Claude sees GitHub available - calls load_mcp_tools("github")

  4. Gateway returns GitHub's tool list

  5. Claude picks the right tool - calls call_mcp_tool("github", "search_repositories", {...})

  6. Gateway spins up GitHub MCP, runs the tool, returns results

Adding MCP servers to the gateway

Edit dcl_wrapper.py and add to the MCP_SERVERS dict:

MCP_SERVERS = { "your-server": { "command": "npx", "args": ["-y", "your-mcp-package"], "env": { "API_KEY": os.getenv("YOUR_API_KEY", "") }, "description": "What it does" } }

Currently configured servers

  • github

  • slack

  • google-drive

  • filesystem

  • postgres

  • memory

  • brave-search

(Check dcl_wrapper.py for the full list)

Limitations

  • Small delay on first tool use (server startup)

  • Each MCP server connection is temporary

  • No persistence between calls

Troubleshooting

Gateway not appearing

  • Check Python path in config points to virtual environment

  • Verify dcl_wrapper.py path is correct

  • Restart Claude Desktop/Code/VSCode completely

MCP server connection errors

  • Check API keys in .env file

  • Verify MCP server package is installed

  • Check gateway logs for errors

Claude Code specific issues

  • Make sure to include "type": "stdio" in config

  • For project configs, approve when prompted

  • Use claude mcp list to verify installation

Files

  • dcl_wrapper.py - The gateway server

  • .env - Your API keys

  • requirements.txt - Python dependencies

License

MIT

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

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/bzsasson/claude-mcp-server-gateway'

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