项目简介
MCPJungle是一个功能强大的自托管网关,旨在简化组织内部AI代理(LLM客户端,如Claude、Cursor等)与Model Context Protocol (MCP) 服务器的交互。它充当一个中央注册中心,汇集并管理所有独立的MCP服务器及其提供的工具,为AI代理提供一个统一的访问点。通过MCPJungle,您可以集中管理工具调用、实施安全策略和访问控制,并提升AI代理的性能。
主要功能点
- 统一MCP网关:AI代理只需连接到MCPJungle这一个网关,即可发现并调用所有注册的MCP服务器提供的工具。
- MCP服务器注册与管理:支持注册基于Streamable HTTP和STDIO传输协议的MCP服务器,并集中管理它们的生命周期。
- 工具发现与调用:LLM客户端可以通过MCPJungle发现可用的工具,并以标准化方式调用它们。
- 工具启用/禁用:管理员可以全局启用或禁用特定工具或整个MCP服务器的工具。
- 工具分组:创建工具分组,只向特定AI客户端暴露选定的工具子集,有助于提高LLM的调用准确性并优化性能。
- 安全与访问控制:在生产模式下,支持为AI客户端和人类用户进行身份验证,并实施细粒度的访问控制,确保只有授权的客户端才能访问特定MCP服务器。
- 可观测性:支持OpenTelemetry指标,提供对MCP客户端-服务器交互的洞察。
安装步骤
- 安装Go语言环境: 确保您的系统已安装Go 1.18或更高版本。
- 克隆仓库:
git clone https://github.com/mcpjungle/MCPJungle.git cd MCPJungle - 使用Docker Compose启动(推荐):
这是最简单快速的启动方式。
这将启动MCPJungle服务器及其默认的Postgres数据库。curl -O https://raw.githubusercontent.com/mcpjungle/MCPJungle/refs/heads/main/docker-compose.yaml docker compose up -d - 安装MCPJungle CLI客户端:
运行'mcpjungle version'验证安装。brew install mcpjungle/mcpjungle/mcpjungle # 或者从GitHub Releases页面下载编译好的二进制文件
服务器配置
MCPJungle本身是一个MCP服务器,您的AI代理(MCP客户端)需要配置连接信息才能使用它。以下是常见的MCP客户端连接MCPJungle的配置示例:
-
对于Claude MCP客户端: Claude客户端需要通过一个'command'来启动一个代理进程以连接到MCPJungle。 配置JSON示例:
{ "mcpServers": { "mcpjungle": { "command": "npx", "args": [ "mcp-remote", "http://localhost:8080/mcp", "--allow-http" ] } } }- 'mcpServers.mcpjungle': MCP服务器的名称,此处为 "mcpjungle"。
- 'command': 用于启动远程MCP服务器连接的命令,通常是'npx'或'uvx'。
- 'args': 传递给'command'的参数。'mcp-remote'是一个辅助工具,用于将基于HTTP的MCP服务器暴露给STDIO客户端。'http://localhost:8080/mcp'是MCPJungle网关的默认地址,'--allow-http'允许非HTTPS连接。
-
对于Cursor MCP客户端: Cursor客户端直接通过URL连接到MCPJungle。 配置JSON示例:
{ "mcpServers": { "mcpjungle": { "url": "http://localhost:8080/mcp" } } }- 'mcpServers.mcpjungle': MCP服务器的名称,此处为 "mcpjungle"。
- 'url': MCPJungle网关的HTTP端点地址。
-
生产模式下的认证配置: 如果MCPJungle服务器运行在生产模式并启用了访问控制,AI客户端在连接时需要提供一个Access Token。
{ "mcpServers": { "mcpjungle": { "url": "http://localhost:8080/mcp", "headers": { "Authorization": "Bearer YOUR_CLIENT_ACCESS_TOKEN" } } } }请将'YOUR_CLIENT_ACCESS_TOKEN'替换为通过'mcpjungle create mcp-client'命令生成的客户端访问令牌。
基本使用方法
-
启动MCPJungle服务器: 使用上述Docker Compose命令启动服务器。
docker compose up -d默认在'http://localhost:8080'监听。
-
注册外部MCP服务器: 使用MCPJungle CLI工具注册一个提供具体功能的MCP服务器,例如一个名为'context7'的远程HTTP MCP服务器:
mcpjungle register --name context7 --url https://mcp.context7.com/mcp --description "A remote MCP server providing documentation tools."或者注册一个STDIO-based的本地文件系统MCP服务器:
# filesystem.json { "name": "filesystem", "transport": "stdio", "description": "本地文件系统MCP服务器", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "."] }然后运行:
mcpjungle register -c ./filesystem.json -
连接AI代理(MCP客户端): 根据您的AI代理类型,使用上述“服务器配置”部分提供的JSON配置信息,在您的AI代理中配置MCPJungle作为其MCP服务器。
-
通过AI代理调用工具: 一旦连接成功,您的AI代理即可通过MCPJungle网关调用已注册的工具。例如,在Claude中请求:
Use context7 to get the documentation for '/lodash/lodash'Claude将通过MCPJungle调用'context7__get-library-docs'工具来获取Lodash文档。
-
查看已注册工具:
mcpjungle list tools -
查看工具用法:
mcpjungle usage context7__get-library-docs -
通过CLI手动调用工具:
mcpjungle invoke context7__get-library-docs --input '{"path": "/lodash/lodash"}'(注意,此处'context7__get-library-docs'是MCPJungle中工具的规范名称,由服务器名和工具名通过'__``连接而成。)
信息
分类
AI与计算