MCPJungle
MCPJungle 是一款开源的自托管 MCP(模型上下文协议)网关,旨在为私有 AI 智能体提供统一的工具接入中心。在 AI 开发中,开发者往往需要管理多个分散的 MCP 服务器,导致配置繁琐且难以统一管控。MCPJungle 通过充当“中间人”解决了这一痛点:开发者只需将各类 MCP 服务注册到该平台,AI 客户端(如 Claude、Cursor 或 Copilot)便仅需连接这一个网关,即可自动发现并调用所有已注册的工具。
这款工具特别适合需要构建生产级 AI 应用的开发者、希望集中管理内部工具的企业团队,以及追求数据隐私与安全、倾向于在本地数据中心部署服务的组织。其核心技术亮点在于提供了内置的访问控制、安全隔离机制以及完整的可观测性支持(如 OpenTelemetry),有效解决了多服务集成时的冷启动与状态管理难题。通过 Docker 即可快速部署,配合命令行工具轻松完成服务的注册与管理,让 AI 智能体能够更安全、高效地扩展能力边界,无需再为复杂的连接配置而烦恼。
使用场景
某中型金融科技公司的后端团队正在构建一个内部 AI 助手,需要让 Claude 和 Cursor 同时调用数据库查询、日志分析及合规检查等多个私有 MCP 服务。
没有 MCPJungle 时
- 配置繁琐且易错:每位开发者需在 Claude、Cursor 等不同客户端中重复配置所有 MCP 服务器的连接信息,一旦服务地址变更,需手动更新所有终端配置。
- 权限管理缺失:无法精细控制哪些 AI 代理能访问敏感的数据库工具,存在数据泄露风险,只能依赖网络层面的粗粒度隔离。
- 监控盲区:缺乏统一视图来追踪哪个 Agent 调用了什么工具、频率如何,出现异常调用时难以快速定位源头。
- 资源浪费:每个客户端都独立维持与多个后端服务的长连接,导致服务器连接数激增,冷启动延迟明显。
使用 MCPJungle 后
- 统一接入入口:开发者只需在各类 AI 客户端中配置唯一的 MCPJungle 网关地址,即可自动发现并调用所有已注册的内部工具,运维效率大幅提升。
- 细粒度访问控制:通过 MCPJungle 内置的鉴权模块,可精确设定“合规检查工具”仅对审计类 Agent 开放,从应用层保障数据安全。
- 全链路可观测:管理员能在中央控制台实时查看工具调用日志与流量分布,迅速识别并阻断异常的批量查询行为。
- 连接复用优化:MCPJungle 作为中间层复用后端连接,显著降低服务器负载,解决了多客户端并发时的冷启动卡顿问题。
MCPJungle 将分散杂乱的 MCP 生态整合为企业级可控的统一能力底座,让 AI 代理的安全落地变得简单高效。
运行环境要求
- Linux
- macOS
未说明
未说明

快速开始
:deciduous_tree: MCPJungle :deciduous_tree:
为您的私有 AI 助手提供的自托管 MCP 网关
MCPJungle 是一个开源、自托管的网关,适用于您所有的 Model Context Protocol 服务器。
🧑💻 开发者使用它可以从一个中心位置注册和管理 MCP 服务器及其提供的工具。
🤖 MCP 客户端使用它可以从单个“网关”MCP 服务器发现并使用所有这些工具。

MCPJungle 是您的 AI 助手连接所需的唯一 MCP 服务器!
谁应该使用 MCPJungle?
- 使用像 Claude 和 Cursor 这样的 MCP 客户端,并需要访问 MCP 服务器以进行工具调用的 开发者。
- 构建生产级 AI 助手,并需要访问具有内置安全、隐私和访问控制功能的 MCP 服务器的 开发者。
- 希望从一个中心位置查看和管理所有 MCP 客户端-服务器交互的 组织。托管在他们自己的数据中心 🔒
📋 目录
快速入门指南
本快速入门指南将向您展示如何:
- 使用
docker compose在本地启动 MCPJungle 服务器。 - 在 MCPJungle 中注册一个简单的 MCP 服务器。
- 将您的 Claude 连接到 MCPJungle,以访问您的 MCP 工具。
启动服务器
curl -O https://raw.githubusercontent.com/mcpjungle/MCPJungle/refs/heads/main/docker-compose.yaml
docker compose up -d
注册 MCP 服务器
在您的本地机器上,您可以使用 brew 或直接从 发布页面 下载 mcpjungle CLI。
brew install mcpjungle/mcpjungle/mcpjungle
该 CLI 允许您管理 MCPJungle 中的所有内容。
接下来,让我们使用 CLI 将一个 MCP 服务器添加到 MCPJungle 中。在此示例中,我们将使用 context7。
mcpjungle register --name context7 --url https://mcp.context7.com/mcp
连接到 MCPJungle
请在您的 Claude 的 MCP 服务器配置中使用以下设置:
{
"mcpServers": {
"mcpjungle": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8080/mcp",
"--allow-http"
]
}
}
}
一旦 MCPJungle 被添加为 Claude 的 MCP,您可以尝试向它提出以下请求:
使用 context7 获取 `/lodash/lodash` 的文档。
Claude 将会尝试通过 MCPJungle 调用 context7__get-library-docs 工具,从而返回 Lodash 库的文档。
恭喜您!🎉
您已成功在 MCPJungle 中注册了一个远程 MCP 服务器,并通过 Claude 调用了其中的一个工具。
现在您可以继续探索 MCPJungle,并查阅文档和 CLI 以获取更多详细信息。
安装
MCPJungle 以独立二进制文件的形式提供。
您可以从 发布页面 下载,也可以使用 Homebrew 进行安装:
brew install mcpjungle/mcpjungle/mcpjungle
通过运行以下命令验证您的安装:
mcpjungle version
[!重要] 在 macOS 上,您必须使用 Homebrew,因为编译后的二进制文件尚未获得 公证。
MCPJungle 提供了一个 Docker 镜像,可用于运行注册服务器(稍后会详细介绍)。
docker pull ghcr.io/mcpjungle/mcpjungle
使用
MCPJungle 采用客户端-服务器架构,该二进制文件允许您同时运行服务器和客户端。
服务器
MCPJungle 服务器负责管理所有在其内注册的 MCP 服务器,并为 AI 助手提供统一的 MCP 网关,以便发现和调用这些注册服务器所提供的工具。
该网关本身运行在可流式的 HTTP 传输之上,可通过 /mcp 端点访问。
在 Docker 中运行
要在本地运行 MCPJungle 服务器,推荐使用 docker compose:
# docker-compose.yaml 已针对个人在本地机器上出于个人用途运行 MCPJungle 进行优化。
# 默认情况下,MCPJungle 将以“开发”模式运行。
curl -O https://raw.githubusercontent.com/mcpjungle/MCPJungle/refs/heads/main/docker-compose.yaml
docker compose up -d
# docker-compose.prod.yaml 则针对希望在远程服务器上部署 MCPJungle 以供多用户使用的组织进行了优化。
# mcpjungle 默认将以 `enterprise` 模式运行,该模式启用了企业级功能。
curl -O https://raw.githubusercontent.com/mcpjungle/MCPJungle/refs/heads/main/docker-compose.prod.yaml
docker compose -f docker-compose.prod.yaml up -d
[!NOTE]
enterprise模式以前称为production模式。 为了更清晰地表达,该模式现已更名为enterprise。其他方面保持不变。
这将启动 MCPJungle 服务器以及一个持久化的 Postgres 数据库容器。
您可以快速验证服务器是否正在运行:
curl http://localhost:8080/health
如果您计划注册依赖 npx 或 uvx 的基于 stdio 的 MCP 服务器,请改用 mcpjungle 的 stdio 标签 Docker 镜像。
MCPJUNGLE_IMAGE_TAG=latest-stdio docker compose up -d
[!NOTE] 如果您使用的是
docker-compose.yaml,那么默认镜像标签已经是stdio。 只有在使用docker-compose.prod.yaml时,才需要指定stdio镜像标签。
此镜像体积较大。但在本地运行依赖 stdio 的 MCP 服务器时,它非常方便且推荐使用。
例如,如果您只想注册 context7 和 deepwiki 等远程 MCP 服务器,可以使用标准(最小)镜像。
但如果您还想使用 filesystem、time、github 等基于 stdio 的服务器,则应改用 stdio 标签的镜像。
[!NOTE] 如果您的 stdio 服务器依赖于
npx或uvx之外的工具,您需要创建一个自定义 Docker 镜像,其中包含这些依赖项以及 mcpjungle 二进制文件。
生产部署
默认的 MCPJungle Docker 镜像 非常轻量——它仅包含一个最小的基础镜像和 mcpjungle 二进制文件。
因此,它非常适合并推荐用于生产环境部署。
对于数据库,我们建议您部署一个独立的 Postgres 数据库集群,并将其端点提供给 mcpjungle(请参阅下方的 [数据库] 部分)。
您可以查看 标准 Docker 镜像 和 stdio Docker 镜像 的定义。
直接在主机上运行
您也可以直接在主机上使用二进制文件运行服务器:
mcpjungle start
这将启动主注册中心服务器和 MCP 网关,默认在端口 8080 上可访问。
关闭
让 mcpjungle 服务器优雅地关闭非常重要,以确保正确清理资源。
停止服务器进程的推荐方法是向其发送 SIGTERM 信号。
数据库
MCPJungle 服务器依赖于数据库,默认会在当前工作目录下创建一个 SQLite 数据库文件 mcpjungle.db。
当您只是在本地测试时,这样做是可以的。
对于更正式的部署,MCPJungle 也支持 PostgreSQL。您可以提供 DSN 来连接到它:
# 您可以将数据库 DSN 作为环境变量提供
export DATABASE_URL=postgres://admin:root@localhost:5432/mcpjungle_db
# 以容器方式运行
docker run ghcr.io/mcpjungle/mcpjungle:latest
# 或者直接运行
mcpjungle start
如果您不喜欢使用 DSN,也可以提供特定于 PostgreSQL 的环境变量或文件:
# 如果使用特定于 PostgreSQL 的环境变量,host 是必填项
export POSTGRES_HOST=localhost
export POSTGRES_PORT=5432
export POSTGRES_USER=admin
export POSTGRES_USER_FILE=/path/to/user-file
export POSTGRES_PASSWORD=secret
export POSTGRES_PASSWORD_FILE=/path/to/password-file
export POSTGRES_DB=mcpjungle_db
export POSTGRES_DB_FILE=/path/to/db-file
mcpjungle start
客户端
一旦服务器启动,您就可以使用 mcpjungle CLI 与其交互。
MCPJungle 目前支持使用 stdio 和 可流式 HTTP 传输协议的 MCP 服务器。
[!NOTE] 对 SSE(服务器推送事件)的支持也存在,但目前尚未成熟。
下面我们来看看如何在 MCPJungle 中注册它们。
注册基于可流式 HTTP 的服务器
假设您已经在本地运行了一个可流式 HTTP 的 MCP 服务器,地址为 http://127.0.0.1:8000/mcp,它提供了诸如 add、subtract 等基本数学工具。
您可以将此 MCP 服务器注册到 MCPJungle 中:
mcpjungle register --name calculator --description "提供一些基本数学工具" --url http://127.0.0.1:8000/mcp
如果您使用 Docker Compose 运行该服务器,并且不在 Linux 系统上,那么您需要使用 host.docker.internal 而不是本地回环地址。
mcpjungle register --name calculator --description "提供一些基本数学工具" --url http://host.docker.internal:8000/mcp
现在,注册中心将开始跟踪该 MCP 服务器并加载其工具。

您也可以通过配置文件来注册 MCP 服务器:
cat ./calculator.json
{
"name": "calculator",
"transport": "streamable_http",
"description": "提供一些基本数学工具",
"url": "http://127.0.0.1:8000/mcp"
}
mcpjungle register -c ./calculator.json
该服务器提供的所有工具现在都可以通过 MCPJungle 访问:
mcpjungle list tools
# 查看工具使用方法
mcpjungle usage calculator__multiply
# 调用工具
mcpjungle invoke calculator__multiply --input '{"a": 100, "b": 50}'

[!NOTE] 在 MCPJungle 中,工具必须使用规范名称来引用,其格式为
<mcp-服务器名>__<工具名>。 服务器名和工具名之间用双下划线__分隔。例如,如果您注册了一个名为
github的 MCP 服务器,它提供了一个名为git_commit的工具,那么您可以在 MCPJungle 中使用名称github__git_commit来调用该工具。您的 MCP 客户端也必须使用此规范名称通过 MCPJungle 调用工具。
注册基于可流式 HTTP 的 MCP 服务器的配置文件格式如下:
{
"name": "<您的 MCP 服务器名称>",
"transport": "streamable_http",
"description": "<描述>",
"url": "<MCP 服务器的 URL>",
"bearer_token": "<可选的身份验证 Bearer 令牌>",
"headers": {
"<自定义 HTTP 头>": "<值>"
}
}
注册基于 STDIO 的服务器
以下是一个示例配置文件(我们称之为 filesystem.json),用于一个使用 STDIO 传输协议的 MCP 服务器:
{
"name": "filesystem",
"transport": "stdio",
"description": "文件系统 MCP 服务器",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."]
}
您可以通过提供此配置文件将该 MCP 服务器注册到 MCPJungle 中:
mcpjungle register -c ./filesystem.json
# 将 JSON 配置保存到文件(例如 filesystem.json)
mcpjungle 注册 -c ./filesystem.json
用于注册基于 STDIO 的 MCP 服务器的配置文件格式如下:
{
"name": "<你的 MCP 服务器名称>",
"transport": "stdio",
"description": "<描述>",
"command": "<运行 MCP 服务器的命令,例如 'npx'、'uvx'>",
"args": ["传递给命令的", "参数", "列表"],
"env": {
"KEY": "value"
}
}
你也可以观看关于如何注册基于 STDIO 的 MCP 服务器的简短视频。
[!提示] 如果你的 STDIO 服务器因某种原因失败或抛出错误,请检查 mcpjungle 服务器的日志以查看其
stderr输出。
JSON 配置文件中的环境变量
当你使用 JSON 配置文件来注册 MCP 服务器或创建其他实体(如 tol 组)时,CLI 可以在将请求发送到服务器之前解析字符串值中的环境变量占位符。
- 只有以
${VAR_NAME}格式的占位符会被解析。 - 占位符可以出现在字符串值的任何位置,例如
prefix-${VAR_NAME}-suffix。 - 解析过程在 CLI 进程中进行,因此必须在你运行命令的地方可用该环境变量。
- 如果引用的环境变量未设置,则命令会失败并报错。
- 这适用于 JSON 配置中的所有字符串字段,包括嵌套对象和字符串数组。
MCP 服务器配置示例:
{
"name": "affine-main",
"transport": "streamable_http",
"description": "AFFiNE 工作区 MCP 服务器",
"url": "https://app.affine.pro/api/workspaces/${AFFINE_WORKSPACE_ID}/mcp",
"bearer_token": "${AFFINE_API_TOKEN}",
"headers": {
"X-Workspace": "${AFFINE_WORKSPACE_ID}"
}
}
STDIO 配置示例:
{
"name": "my-stdio-server",
"transport": "stdio",
"command": "uvx",
"args": ["my-server", "--workspace", "${WORKSPACE_ID}"],
"env": {
"API_TOKEN": "${API_TOKEN}"
}
}
注意事项 ⚠️
当在 Docker 容器中运行 mcpjungle 时,你需要一些额外的配置才能运行 filesystem MCP 服务器。
默认情况下,容器内的 mcpjungle 无法访问宿主机的文件系统。
因此,你必须:
- 将你想要访问的宿主机目录作为卷挂载到容器中
- 在 filesystem MCP 服务器的命令参数中指定该挂载路径为目录
mcpjungle 提供的 docker-compose.yaml 文件会将当前工作目录挂载为容器中的 /host。
因此,你可以使用以下配置来运行 filesystem MCP 服务器:
{
"name": "filesystem",
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/host"]
}
这样,mcp 就可以访问 /host,即你宿主机上的当前工作目录。
更多详细信息请参阅 DEVELOPMENT.md。
从 Docker 或 Kubernetes 部署中运行 CLI 命令
如果你的 MCPJungle 服务器正在远程的 Docker 容器或 Kubernetes 集群中运行,你也可以直接在容器内执行 mcpjungle 二进制文件:
docker exec -it <容器名称> /mcpjungle
kubectl -n <命名空间> exec -it po/<Pod 名称> -- /mcpjungle
[!注意] 标准镜像不包含 shell。请通过
docker exec或kubectl exec直接运行/mcpjungle。
这在与服务器运行在同一环境中执行 CLI 命令时非常有用。
注销 MCP 服务器
你可以从 mcpjungle 中移除一个 MCP 服务器。
mcpjungle 注销 calculator
mcpjungle 注销 filesystem
一旦移除,该 MCP 服务器及其工具将不再对你或你的 MCP 客户可用。
配置自定义注册表 URL
默认情况下,CLI 会连接到 http://127.0.0.1:8000 上的 mcpjungle 服务器。
如果你的服务器运行在不同的主机或端口上(例如远程部署),你可以通过两种方式配置注册表 URL:
选项 1:使用 --registry 标志
mcpjungle --registry http://my-server:9000 列举工具
选项 2:在配置文件中设置
创建或编辑 ~/.mcpjungle.conf:
registry_url: http://my-server:9000
这样可以避免每次命令都传递 --registry 标志。
冷启动问题与有状态连接
默认情况下,每当调用工具时,MCPJungle 都会与上游 MCP 服务器建立一个新的连接。
工具调用完成后,连接就会关闭。
这样做可以保持系统的整洁,并避免内存泄漏。
但有时这会导致延迟开销。例如,每次调用基于 STDIO 的 MCP 服务器的工具时,都会启动一个新的进程。如果服务器需要几秒钟才能启动,这会减慢工具调用和整体交互的速度。
为了解决这个问题,MCPJungle 也支持有状态连接。
你可以在 MCP 服务器配置中将 session_mode 设置为 stateful(默认是 stateless):
{
"name": "filesystem",
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "."],
"session_mode": "stateful"
}
mcpjungle 会在第一次调用该服务器的工具时与其建立一个新的连接。
工具调用完成后,这个连接不会关闭。后续对该服务器的工具调用将复用同一个连接,从而避免冷启动的开销。
连接仅在以下情况下才会关闭:
- mcpjungle 服务器停止运行
- MCP 服务器从 mcpjungle 中注销
- 连接在一段时间无活动后超时。你可以使用
SESSION_IDLE_TIMEOUT_SEC环境变量来全局配置 mcpjungle 服务器的超时时间(默认值为 -1,表示无超时)。
在可能的情况下,建议使用无状态连接(默认设置)。
与其他 MCP 客户端的集成
假设 MCPJungle 正在 http://localhost:8080 上运行,可以使用以下配置连接到它:
Claude
{
"mcpServers": {
"mcpjungle": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8080/mcp",
"--allow-http"
]
}
}
}
Cursor
{
"mcpServers": {
"mcpjungle": {
"url": "http://localhost:8080/mcp"
}
}
}
你还可以观看关于如何将 Cursor 连接到 MCPJungle的简短视频。
Copilot
请按照 Copilot 的文档中关于手动配置 MCP 服务器的部分操作。
在将 mcpjungle 添加到你的 mcp.json 配置文件后,应如下所示:
{
"servers": {
"mcpjungle": {
"url": "http://localhost:8080/mcp"
}
}
}
[!注意] 你可能需要点击
开始按钮,Copilot 才能真正开始与 mcpjungle 交互。
启用/禁用工具
您可以禁用并重新启用特定工具,或 MCP 服务器提供的所有工具。
如果某个工具被禁用,则它将无法通过 MCPJungle 代理或任何工具组访问,因此任何 MCP 客户端都无法查看或调用该工具。
您还可以禁用和启用提示(Prompts)。
# 禁用由 `context7` MCP 服务器提供的 `get-library-docs` 工具
mcpjungle disable tool context7__get-library-docs
# 重新启用该工具
mcpjungle enable tool context7__get-library-docs
# 禁用 context7 中的所有工具
mcpjungle disable tool context7
# 禁用整个 `context7` MCP 服务器(禁用所有工具和提示)
mcpjungle disable server context7
# 重新启用 `context7`
mcpjungle enable server context7
# 禁用一个提示
mcpjungle disable prompt "huggingface_Model Details"
# 禁用 context7 中的所有提示
mcpjungle disable prompt context7
被禁用的工具仍然可以通过 mcpjungle 的 HTTP API 访问,因此管理员仍可通过命令行(或其他 HTTP 客户端)对其进行管理。
[!NOTE] 当新服务器注册到 MCPJungle 时,其所有工具和提示默认均为启用状态。
提示(Prompts)
Mcpjungle 支持 提示。
当您注册新的 MCP 服务器时,如果该服务器提供提示,则这些提示也会在 MCPJungle 中注册。
以下是一些使用命令行与提示交互的示例:
# 列出 huggingface MCP 服务器提供的所有提示
$ mcpjungle list prompts --server huggingface
# 获取“模型详情”提示,并传入自定义参数
$ mcpjungle get prompt "huggingface__Model Details" --arg model_id="openai/gpt-oss-120b"
工具组
随着您向 MCPJungle 添加更多 MCP 服务器,网关可用的工具数量可能会显著增加。
如果您的 MCP 客户端通过网关接触到数百个工具,其性能可能会下降。
MCPJungle 允许您使用工具组仅向您的 MCP 客户端暴露部分可用工具。
您可以创建一个新的工具组,并仅包含您希望公开的特定工具。
一旦创建了工具组,mcpjungle 将为其返回一个唯一的端点。
然后您可以配置您的 MCP 客户端,使其使用此特定于工具组的端点,而不是主网关端点。
创建工具组
您可以通过向 create group 命令提供一个 JSON 配置文件来创建新的工具组。
您必须为该组指定一个唯一的名称,并使用以下一个或多个字段来定义要包含哪些工具:
included_tools:列出要包含的具体工具名称(例如:["filesystem__read_file", "time__get_current_time"])included_servers:包含特定 MCP 服务器中的所有工具(例如:["time", "deepwiki"])excluded_tools:排除特定工具(在包含整个服务器时非常有用)
示例 1:精选特定工具
以下是工具组配置文件 (claude-tools-group.json) 的示例:
{
"name": "claude-tools",
"description": "该组仅包含 Claude Desktop 可使用的工具",
"included_tools": [
"filesystem__read_file",
"deepwiki__read_wiki_contents",
"time__get_current_time"
]
}
该组仅公开 3 个精心挑选的工具,而不是所有可用工具。
示例 2:包含整个服务器并排除部分工具
您也可以包含特定服务器中的所有工具,并选择性地排除某些工具:
{
"name": "claude-tools",
"description": "包含 time 和 deepwiki 服务器的所有工具,但排除 time__convert_time",
"included_servers": ["time", "deepwiki"],
"excluded_tools": ["time__convert_time"]
}
这将包含 time 和 deepwiki 服务器中的所有工具,但会排除 time__convert_time。
示例 3:混合使用多种方法
您还可以结合使用所有三个字段以获得最大的灵活性:
{
"name": "comprehensive-tools",
"description": "手动选择工具、包含整个服务器并排除部分工具的组合",
"included_tools": ["filesystem__read_file"],
"included_servers": ["time"],
"excluded_tools": ["time__convert_time"]
}
这将包含 filesystem__read_file 以及 time 服务器中的所有工具,但会排除 time__convert_time。
您可以在 mcpjungle 中创建此工具组:
$ mcpjungle create group -c ./claude-tools-group.json
工具组 claude-tools 已成功创建。
现在可通过以下可流式传输的 HTTP 端点访问:
http://127.0.0.1:8080/v0/groups/claude-tools/mcp
然后您可以配置 Claude(或任何其他 MCP 客户端),使其使用此特定于工具组的端点来访问 MCP 服务器。
客户端将只能看到并使用这 3 个工具,而不会意识到 MCPJungle 中注册的其他任何工具。
[!TIP] 您可以运行
mcpjungle list tools来查看所有可用工具,并选择您想要包含在组中的工具。
您还可以观看关于使用工具组的视频。
[!NOTE] 排除操作始终在最后执行。 因此,如果您将某个工具同时添加到
included_tools并将其列入excluded_tools,则该工具最终仍将被排除在组外。
局限性 🚧
管理工具组
目前您可以执行列出所有工具组、查看特定工具组详细信息以及删除工具组等操作。
# 列出所有工具组
mcpjungle list groups
# 查看特定工具组的详细信息
mcpjungle get group claude-tools
# 删除工具组
mcpjungle delete group claude-tools
在工具组中使用工具
您可以使用 --group 标志在特定工具组中列出和调用工具:
# 列出特定工具组中的工具
mcpjungle list tools --group claude-tools
# 从特定工具组上下文中调用工具
mcpjungle invoke filesystem__read_file --group claude-tools --input '{"path": "README.md"}'
这些命令提供了基于工具组的作用域操作,使您能够更轻松地在特定上下文中使用工具,并验证工具是否确实存在于您的工具组中。
[!NOTE] 如果某个工具被包含在工具组中,但随后在全球范围内被禁用或删除,则它将无法通过该工具组的 MCP 端点访问。 然而,如果该工具稍后被重新启用或再次添加,则它将自动重新出现在该工具组中。
局限性 🚧
- 目前您无法更新现有的工具组。您必须删除该组,并使用修改后的配置文件创建一个新的工具组。
- 在
enterprise模式下,目前只有管理员可以创建工具组。我们正在努力允许普通用户也能创建自己的工具组。
身份验证
MCPJungle 目前支持身份验证,前提是您的 Streamable HTTP MCP 服务器接受用于身份验证的静态令牌。
这在使用 SaaS 提供的 MCP 服务器时非常有用,例如 HuggingFace、Stripe 等,这些服务器需要您的 API 令牌进行身份验证。
您可以在注册 MCP 服务器时提供您的令牌:
# 如果您指定了 `--bearer-token` 标志,MCPJungle 会在发送到此 MCP 服务器的所有请求中添加 `Authorization: Bearer <token>` 头。
mcpjungle register --name huggingface --description "HuggingFace MCP Server" --url https://huggingface.co/mcp --bearer-token <your-hf-api-token>
或者从您的配置文件中:
{
"name": "huggingface",
"transport": "streamable_http",
"url": "https://huggingface.co/mcp",
"description": "hugging face mcp server",
"bearer_token": "<your-hf-api-token>"
}
如果您需要为 Authorization 头部提供自定义值,或添加其他自定义头部,可以在配置文件中使用 headers 字段:
{
"name": "sourcegraph",
"transport": "streamable_http",
"url": "https://sourcegraph.mycompany.com/.api/mcp",
"headers": {
"Authorization": "token <your-sourcegraph-token>",
"Custom-Header": "custom-value"
}
}
Oauth 流程的支持即将推出!
企业级功能 🔒
如果您在组织内运行 MCPJungle,我们建议以 enterprise 模式运行服务器:
# 通过 enterprise 模式启用企业级功能
mcpjungle start --enterprise
# 您也可以将服务器模式指定为环境变量(有效值为 `development` 和 `enterprise`)
export SERVER_MODE=enterprise
mcpjungle start
# 或者使用上文所述的企业级 Docker Compose 文件
docker compose -f docker-compose.prod.yaml up -d
默认情况下,mcpjungle 服务器以 development 模式运行,这非常适合个人在本地运行。
在 Enterprise 模式下,服务器会实施更严格的安全策略,并提供额外的功能,如身份验证、ACL、可观ability 等。
以 enterprise 模式启动服务器后,您必须在客户端机器上运行以下命令来初始化服务器:
mcpjungle init-server
这将在服务器中创建一个管理员用户,并将其 API 访问令牌存储在您的主目录中(~/.mcpjungle.conf)。
然后您可以使用 mcpjungle CLI 向服务器发出经过身份验证的请求。
访问控制
在 development 模式下,所有 MCP 客户端都可以完全访问 MCPJungle Proxy 中注册的所有 MCP 服务器。
而在 enterprise 模式下,您可以控制哪些 MCP 客户端可以访问哪些 MCP 服务器。
假设您已在 enterprise 模式下的 MCPJungle 中注册了两个 MCP 服务器 calculator 和 github。
默认情况下,没有任何 MCP 客户端可以访问这些服务器。您必须在 mcpjungle 中创建一个 MCP 客户端,并显式允许其访问这些 MCP 服务器。
# 为您的 Cursor IDE 创建一个新的 MCP 客户端,使其能够访问 calculator 和 github MCP 服务器
mcpjungle create mcp-client cursor-local --allow "calculator, github"
MCP 客户端 'cursor-local' 已成功创建!
可访问的服务器:calculator, github
访问令牌:1YHf2LwE1LXtp5lW_vM-gmdYHlPHdqwnILitBhXE4Aw
请在 `Authorization: Bearer {token}` HTTP 头部中发送此令牌。
Mcpjungle 会为您的客户端生成一个访问令牌。请配置您的客户端或代理,在向 mcpjungle 代理发送请求时,将此令牌包含在 Authorization 头部中。
[!TIP] 您还可以使用
--access-token标志为您的 MCP 客户端和用户账户提供自定义访问令牌。这在您希望自行管理令牌时很有用,例如通过中央身份服务器。
例如,您可以在 Cursor 中添加以下配置以连接到 MCPJungle:
{
"mcpServers": {
"mcpjungle": {
"url": "http://localhost:8080/mcp",
"headers": {
"Authorization": "Bearer 1YHf2LwE1LXtp5lW_vM-gmdYHlPHdqwnILitBhXE4Aw"
}
}
}
}
以这种方式获得特定服务器访问权限的客户端,可以查看并调用该服务器提供的所有工具。
[!NOTE] 如果您未指定
--allow标志,该 MCP 客户端将无法访问任何 MCP 服务器。
从配置文件创建 MCP 客户端
您也可以通过提供 JSON 配置文件来创建 MCP 客户端:
{
"name": "foobar",
"allowed_servers": ["deepwiki", "time"],
"access_token": "my_secret_token_123",
"access_token_ref": {
"file": "/path/to/token-file.txt",
"env": "ENV_VAR_NAME"
}
}
从配置文件创建客户端时,必须提供自定义访问令牌,因为 mcpjungle 无法将生成的令牌打印到控制台。
在配置文件中提供自定义访问令牌
从配置文件中提供访问令牌有三种方式:
- 直接在
access_token字段中:仅用于测试目的。不建议在生产环境中使用,尤其是在您将配置文件提交到版本控制系统时。 - 使用
access_token_ref.file字段从文件中读取:文件中应仅包含令牌字符串。 - 使用
access_token_ref.env字段从环境变量中读取:环境变量中应包含令牌字符串。
您还可以在同一 JSON 配置文件中的其他位置使用 ${VAR_NAME} 占位符。例如:
{
"name": "${MCP_CLIENT_NAME}",
"allowed_servers": ["${PRIMARY_SERVER}", "time"],
"access_token_ref": {
"env": "CLIENT_TOKEN_ENV_NAME"
}
}
创建用户账户
除了 MCP 客户端之外,您还可以在 mcpjungle 中为人类用户创建用户账户。
与 enterprise 模式下的管理员相比,用户的权限非常有限。例如,他们可以查看和使用 MCP 服务器,但没有在 mcpjungle 中的写入权限。
# 自动为用户生成一个秘密
mcpjungle create user bob
# 为用户指定自定义访问令牌
mcpjungle create user alice --access-token alice_token_123
# 从配置文件创建用户
mcpjungle create user --conf /path/to/user-config.json
创建用户时使用的配置文件格式与创建 MCP 客户端时类似:
{
"name": "charlie",
"access_token": "charlies_secret_token",
"access_token_ref": {
"file": "/path/to/token-file.txt",
"env": "ENV_VAR_NAME"
}
}
同样,使用配置文件时,必须提供自定义访问令牌。
与 mcpjungle 中的其他 JSON 配置文件一样,用户配置文件也支持在字符串字段中使用 ${VAR_NAME} 占位符。
OpenTelemetry
MCPJungle 支持与 Prometheus 兼容的 OpenTelemetry 指标,用于可观ability。
- 在
enterprise模式下,OpenTelemetry 默认启用。 - 在
development模式下,遥测默认禁用。您可以通过在启动服务器之前将OTEL_ENABLED环境变量设置为true来启用它:
# 启用 OpenTelemetry 指标
export OTEL_ENABLED=true
# 可选地,设置要添加到所有指标的额外属性
export OTEL_RESOURCE_ATTRIBUTES=deployment.environment.name=enterprise
# 启动服务器
mcpjungle start
一旦 mcpjungle 服务器启动,指标就可以在 /metrics 端点访问了。
当前限制 🚧
我们还不完美,但正在努力改进!
1. MCPJungle 目前尚不支持 OAuth 流程进行身份验证
这仍在开发中。
我们正在收集更多关于用户如何将 OAuth 与 MCP 服务器一起使用的信息,因此欢迎发起讨论或提交问题,分享您的使用场景。
贡献 💻
我们欢迎社区的贡献!
- 有关贡献指南和规范,请参阅 CONTRIBUTION.md
- 有关开发环境搭建和技术细节,请参阅 DEVELOPMENT.md
加入我们的 Discord 社区,与其他贡献者和维护者交流互动。
版本历史
0.3.72026/04/080.3.62026/03/130.3.52026/03/010.3.42026/02/100.3.32026/02/090.3.22026/01/210.3.12026/01/140.32026/01/120.2.222026/01/100.2.212026/01/080.2.202026/01/050.2.192025/12/310.2.182025/12/110.2.172025/12/090.2.162025/10/230.2.152025/10/080.2.142025/10/030.2.132025/09/300.2.122025/09/280.2.112025/09/27常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
opencode
OpenCode 是一款开源的 AI 编程助手(Coding Agent),旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件,而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码,还是排查难以定位的 Bug,OpenCode 都能通过自然语言交互高效完成,显著减少开发者在重复性劳动和上下文切换上的时间消耗。 这款工具专为软件开发者、工程师及技术研究人员设计,特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构,这意味着用户可以审查代码逻辑、自定义行为策略,甚至私有化部署以保障数据安全,彻底打破了传统闭源 AI 助手的“黑盒”限制。 在技术体验上,OpenCode 提供了灵活的终端界面(Terminal UI)和正在测试中的桌面应用程序,支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具,安装便捷,并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客,还是渴望提升产出的独立开发者,OpenCode 都提供了一个透明、可信
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。