/ 目录 / 演练场 / MCPJungle
● 社区 mcpjungle ⚡ 即开即用

MCPJungle

作者 mcpjungle · mcpjungle/MCPJungle

一个 Go 二进制文件,一个端点——将 Claude / Cursor / 任意 MCP 客户端同时连接到你所有的 MCP 服务器。最省力的 MCP 聚合器。

MCPJungle 是一个小巧、快速的 Go 聚合器:注册 N 个上游 MCP 服务器,得到一个供客户端指向的复合端点。它按上游对工具进行命名空间隔离,支持 stdio 和 HTTP 传输,以单个静态二进制或 Docker 镜像发布。适用于已经不想再编辑 claude_desktop_config.json 中 8 条不同路径,但又不需要像 Archestra 那样的企业平台的场景。

为什么要用

核心特性

实时演示

实际使用效果

mcpjungle-mcp.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcpjungle-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-p",
        "9090:9090",
        "ghcr.io/mcpjungle/mcpjungle:latest"
      ]
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcpjungle-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-p",
        "9090:9090",
        "ghcr.io/mcpjungle/mcpjungle:latest"
      ]
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcpjungle-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-p",
        "9090:9090",
        "ghcr.io/mcpjungle/mcpjungle:latest"
      ]
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcpjungle-mcp": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-p",
        "9090:9090",
        "ghcr.io/mcpjungle/mcpjungle:latest"
      ]
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcpjungle-mcp",
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-p",
        "9090:9090",
        "ghcr.io/mcpjungle/mcpjungle:latest"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "mcpjungle-mcp": {
      "command": {
        "path": "docker",
        "args": [
          "run",
          "--rm",
          "-i",
          "-p",
          "9090:9090",
          "ghcr.io/mcpjungle/mcpjungle:latest"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add mcpjungle-mcp -- docker run --rm -i -p 9090:9090 ghcr.io/mcpjungle/mcpjungle:latest

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: MCPJungle

如何将 8 条 MCP 配置合并为客户端单行配置

👤 在 Claude Desktop / Cursor 中配置了大量 MCP 的高级用户 ⏱ ~20 min intermediate

何时使用: 你的 claude_desktop_config.json 已经有 200 行,改起来很痛苦。

前置条件
  • MCPJungle 在本地运行docker run -p 9090:9090 ghcr.io/mcpjungle/mcpjungle:latest 或下载二进制文件
步骤
  1. 注册上游
    Register github, postgres, filesystem, fetch, and time as upstream MCPs in MCPJungle.✓ 已复制
    → 5 个上游已列出;tool_namespaces 显示对应内容
  2. 切换客户端
    Replace my 5 entries in claude_desktop_config.json with one entry pointing at MCPJungle on localhost:9090.✓ 已复制
    → 单条 MCP 配置;Claude 通过它列出所有 5 个服务器的工具
  3. 验证路由
    Run a github tool and a postgres tool — confirm both reach their respective upstreams.✓ 已复制
    → 两者均成功;日志显示正确的路由

结果: 客户端配置更干净,能力完全相同,延迟不变。

注意事项
  • 两个上游暴露了同名工具 — MCPJungle 自动按上游名称添加前缀——github.search_repositories vs gitlab.search_repositories

运行共享团队 MCPJungle,让开发者共用一套精心挑选的 MCP

👤 小团队(2-10 名开发者) ⏱ ~60 min advanced

何时使用: 大家各自安装了略有不同的 MCP 版本;一个团队级端点可以消除这种版本漂移。

前置条件
  • 一台共享主机(小型虚拟机或共享开发机) — 用 Docker 运行 mcpjungle;通过 Tailscale 或 VPN 暴露 9090 端口
步骤
  1. 搭建共享实例
    Deploy MCPJungle on the team VM via docker compose. Bind to 100.x.x.x:9090 (Tailscale).✓ 已复制
    → 服务在团队 URL 响应
  2. 固定上游版本
    Add github + filesystem + postgres MCPs at specific versions. Save the registration as a YAML file in the team repo.✓ 已复制
    → registered.yaml 已提交;所有人的机器上保持一致

结果: 整个团队使用相同的 MCP 版本和工具。

注意事项
  • 共享 MCP 会共享凭据——任何使用该端点的人都能使用这些凭据 — 不要将有写权限的 MCP 放在共享实例中,除非你明确接受这一点
搭配使用: github

无需重启 Claude 即可添加和移除 MCP

👤 正在试用新 MCP 服务器的开发者 ⏱ ~5 min beginner

何时使用: 你想试用一个新 MCP,但不想退出 Claude 再编辑配置。

步骤
  1. 热添加
    Register a new MCP arxiv upstream into MCPJungle without restarting.✓ 已复制
    → 下次 Claude 会话刷新后工具出现
  2. 热移除
    Unregister the slack MCP, since I'm done with that experiment.✓ 已复制
    → slack 工具不再出现在工具列表中

结果: 更快的 MCP 迭代节奏。

注意事项
  • 部分客户端会缓存工具列表 — 在 Claude Desktop 中重新加载对话以刷新工具列表

组合

与其他 MCP 搭配,撬动十倍杠杆

mcpjungle-mcp + github

将 registered.yaml 作为代码管理,使团队配置有版本控制

Sync MCPJungle's registered upstreams from /infra/mcp/registered.yaml in the repo.✓ 已复制
mcpjungle-mcp + filesystem

持久化启动时的注册配置

Save the current upstream list to ./mcpjungle.json on shutdown.✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
register name, transport: 'stdio'|'http', command_or_url, env 添加上游 MCP 免费
unregister name 移除上游 MCP 免费
list_upstreams (无) 查看已注册的内容 免费
<upstream>.<tool> 各不相同 调用任意已注册上游的任意工具 1 次上游调用

成本与限制

运行它的成本

API 配额
无(代理上游)
每次调用 Token 数
极少量开销
费用
免费(MIT)
提示
在能满足所有上游内存需求的最小机器上运行

安全

权限、密钥、影响范围

凭据存储: 通过环境变量传递给上游子进程
数据出站: 与上游 MCP 相同

故障排查

常见错误与修复

上游已注册但不显示工具

MCPJungle 在注册时代理一次工具列表——如果服务器是在启动后动态声明工具的,可能需要重启上游

验证: 单独运行上游并使用 `mcptools list` 确认它能列出工具
stdio 上游变成僵尸进程

MCPJungle 在注销时回收子进程——如果服务器成了孤儿进程,重启 MCPJungle

验证: ps aux | grep <server>
客户端报「工具名称冲突」

MCPJungle 按上游命名空间——调用 <upstream>.<tool>,不要直接调用 <tool>

替代方案

MCPJungle 对比其他方案

替代方案何时用它替代权衡
Archestra你在聚合功能之上还需要 SSO、审计和策略Archestra 面向企业;MCPJungle 适合开发环境
samanhappy/mcphub你需要更丰富的 Web UIMCPHub 有 UI;MCPJungle 纯二进制 + API

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills