MCP服务器网关

一个Python MCP服务器网关,用于按需加载Claude生态工具中的MCP工具,减少启动时的资源消耗。

  • by bzsasson
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 bzsasson/claude-mcp-server-gateway

使用说明

Claude MCP服务器网关

用于Claude Desktop、Claude Code、Cline和Roo的Python MCP服务器网关。它不是在启动时加载所有MCP工具,而是按需加载它们。

适用于: Claude Desktop(应用程序)、Claude Code(终端)、Cline和Roo(VSCode扩展)

兼容性

平台 配置文件 支持
克劳德桌面 claude_desktop_config.json 是的
克劳德代码 .claude.json 或 .mcp.json 是的
Cline(VSCode) cline_mcp_settings.json 是的

MCP服务器问题

当您将多个MCP服务器连接到Claude时:

  • GitHub MCP服务器:51个工具
  • Slack MCP服务器:20个工具
  • 谷歌云端硬盘MCP:15个工具
  • 文件系统MCP:12个工具

在您开始之前,已经加载了100多个MCP工具定义。每个工具的JSON模式都会消耗令牌。

这个Claude MCP服务器网关做什么

网关充当具有3个工具的单个MCP服务器:

  1. list_available_mcps -显示已配置的MCP服务器
  2. load_mcp_tools -从特定MCP服务器加载工具
  3. call_mcp_tool -执行该工具

模型上下文协议服务器仅在Claude实际需要时启动。

设置

需求

  • Python 3.11+(适用于MCP Python SDK)
  • Claude Desktop、Claude Code或Cline/Roo
  • 您要使用的MCP服务器

安装

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

配置API密钥

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

Claude Desktop MCP服务器配置

添加到您的Claude Desktop配置中:

苹果电脑: ~/Library/Application Support/Claude/claude_desktop_config.json
视窗: %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"]
    }
  }
}

重新启动克劳德桌面。

如何将MCP服务器添加到Claude Code

Claude Code MCP服务器设置使用了类似的配置,并增加了一个字段。

用户级配置(所有项目)

编辑 ~/.claude.json:

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

项目级配置

对于特定于项目的MCP服务器,创建 .mcp.json 在项目根目录中:

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

使用项目范围的服务器时,Claude Code将提示批准。

替代方案: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服务器配置

对于Cline和Roo(VSCode扩展),MCP服务器网关配置如下:

苹果电脑: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
视窗: %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
    }
  }
}

更新后重新启动VSCode。

运作原理

  1. Claude开始-看到网关(3个工具)
  2. 你问起GitHub——克劳德打电话 list_available_mcps
  3. Claude看到GitHub可用-调用 load_mcp_tools("github")
  4. Gateway返回GitHub的工具列表
  5. 克劳德选择了正确的工具调用 call_mcp_tool("github", "search_repositories", {...})
  6. Gateway启动GitHub MCP,运行该工具,返回结果

将MCP服务器添加到网关

编辑 dcl_wrapper.py 并添加到 MCP_SERVERS 字典

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

当前配置的服务器

  • GitHub
  • 松弛
  • 谷歌驱动器
  • 文件系统
  • Postgres
  • 记忆
  • 勇敢的搜寻

(检查 dcl_wrapper.py 完整列表)

局限性

  • 首次使用工具时出现轻微延迟(服务器启动)
  • 每个MCP服务器连接都是临时的
  • 通话之间没有持久性

故障排除

网关未出现

  • 检查配置中指向虚拟环境的Python路径
  • 验证 dcl_wrapper.py 路径正确
  • 完全重新启动克劳德桌面/代码/VCode

MCP服务器连接错误

  • 在中检查API密钥 .env 文件
  • 验证MCP服务器包是否已安装
  • 检查网关日志是否有错误

Claude Code特定问题

  • 确保包括 "type": "stdio" 在配置中
  • 对于项目配置,在提示时批准
  • 使用 claude mcp list 验证安装

文件

  • dcl_wrapper.py -网关服务器
  • .env -您的API密钥
  • requirements.txt -Python依赖关系

许可证

麻省理工学院