MCP-Bridge
一个中间件,提供一个与 OpenAI 兼容的端点,可以调用 MCP 工具。 (Yī gè zhōngjiànjiàn, tígōng yī gè yǔ OpenAI xiāng róng de duāndiǎn, kěyǐ diàoyòng MCP gōngjù.)
SecretiveShell
README
MCP-Bridge
<p> <a href="https://discord.gg/4NVQHqNxSZ"><img alt="Discord" src="https://img.shields.io/discord/1320517159331430480?style=flat&logo=discord&color=blue"></a> <a href="/docs/README.md"><img alt="Static Badge" src="https://img.shields.io/badge/docs-md-blue"></a> <a href="LICENSE"><img alt="Static Badge" src="https://img.shields.io/badge/License-MIT-blue?style=flat"></a> </p>
MCP-Bridge 充当 OpenAI API 和 MCP (MCP) 工具之间的桥梁,允许开发人员通过 OpenAI API 接口利用 MCP 工具。
概述
MCP-Bridge 旨在促进 MCP 工具与 OpenAI API 的集成。 它提供了一组端点,可用于以与 OpenAI API 兼容的方式与 MCP 工具进行交互。 这允许您将任何客户端与任何 MCP 工具一起使用,而无需显式支持 MCP。 例如,请参阅使用 Open Web UI 和官方 MCP fetch 工具的示例。
当前功能
正在运行的功能:
-
使用 MCP 的非流式聊天补全
-
使用 MCP 的流式聊天补全
-
不使用 MCP 的非流式补全
-
MCP 工具
-
MCP 采样
-
用于外部客户端的 SSE 桥
计划中的功能:
-
尚未实现流式补全
-
计划支持 MCP 资源
安装
推荐的安装 MCP-Bridge 的方法是使用 Docker。 有关如何设置 docker 的示例,请参见示例 compose.yml 文件。
请注意,这需要具有工具调用支持的推理引擎。 我已成功使用 vLLM 对其进行了测试,尽管 ollama 也应该兼容。
Docker 安装
-
克隆存储库
-
编辑 compose.yml 文件
您需要在 compose.yml 文件中添加对 config.json 文件的引用。 选择以下任一项:
- 将 config.json 文件添加到与 compose.yml 文件相同的目录,并使用卷挂载(您需要手动添加卷)
- 将 http url 添加到环境变量,以从 url 下载 config.json 文件
- 将 config json 直接添加为环境变量
以下是每个选项的示例:
environment:
- MCP_BRIDGE__CONFIG__FILE=config.json # 挂载 config 文件才能使其工作
- MCP_BRIDGE__CONFIG__HTTP_URL=http://10.88.100.170:8888/config.json
- MCP_BRIDGE__CONFIG__JSON={"inference_server":{"base_url":"http://example.com/v1","api_key":"None"},"mcp_servers":{"fetch":{"command":"uvx","args":["mcp-server-fetch"]}}}
使用 config 文件的挂载点如下所示:
volumes:
- ./config.json:/mcp_bridge/config.json
- 运行服务
docker-compose up --build -d
手动安装(无 docker)
如果要不使用 docker 运行应用程序,则需要安装 requirements 并手动运行应用程序。
-
克隆存储库
-
设置依赖项:
uv sync
- 在根目录中创建一个 config.json 文件
这是一个示例 config.json 文件:
{
"inference_server": {
"base_url": "http://example.com/v1",
"api_key": "None"
},
"mcp_servers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}
- 运行应用程序:
uv run mcp_bridge/main.py
用法
应用程序运行后,您可以使用 OpenAI API 与其进行交互。
在 http://yourserver:8000/docs 查看文档。 有一个端点可以列出服务器上所有可用的 MCP 工具,您可以使用它来测试应用程序配置。
Rest API 端点
MCP-Bridge 公开了许多 rest api 端点,用于与所有本机 MCP 原语进行交互。 这使您可以将处理 MCP 服务器的复杂性外包给 MCP-Bridge,而不会影响功能。 有关如何使用此功能的示例,请参见 openapi 文档。
SSE 桥
MCP-Bridge 还为外部客户端提供了一个 SSE 桥。 这使具有显式 MCP 支持的外部聊天应用程序可以使用 MCP-Bridge 作为 MCP 服务器。 将您的客户端指向 SSE 端点 (http://yourserver:8000/mcp-server/sse),您应该能够看到服务器上所有可用的 MCP 工具。
这也使得测试您的配置是否正常工作变得容易。 您可以使用 wong2/mcp-cli 来测试您的配置。 npx @wong2/mcp-cli --sse http://localhost:8000/mcp-server/sse
如果您想在 claude desktop 或其他仅 STDIO
的 MCP 客户端中使用这些工具,您可以使用 lightconetech/mcp-gateway 等工具来完成此操作。
配置
要添加新的 MCP 服务器,请编辑 config.json 文件。
API 密钥身份验证
MCP-Bridge 支持 API 密钥身份验证来保护您的服务器。 要启用此功能,请将 api_key
字段添加到您的 config.json 文件:
{
"api_key": "your-secure-api-key-here"
}
在向 MCP-Bridge 服务器发出请求时,请在 Authorization 标头中包含 API 密钥作为 Bearer 令牌:
Authorization: Bearer your-secure-api-key-here
如果 api_key
字段为空或未出现在配置中,则将跳过身份验证,从而允许向后兼容。
完整配置示例
一个示例 config.json 文件,其中显式设置了大多数选项:
{
"inference_server": {
"base_url": "http://localhost:8000/v1",
"api_key": "None"
},
"sampling": {
"timeout": 10,
"models": [
{
"model": "gpt-4o",
"intelligence": 0.8,
"cost": 0.9,
"speed": 0.3
},
{
"model": "gpt-4o-mini",
"intelligence": 0.4,
"cost": 0.1,
"speed": 0.7
}
]
},
"mcp_servers": {
"fetch": {
"command": "uvx",
"args": [
"mcp-server-fetch"
]
}
},
"network": {
"host": "0.0.0.0",
"port": 9090
},
"logging": {
"log_level": "DEBUG"
},
"api_key": "your-secure-api-key-here"
}
部分 | 描述 |
---|---|
inference_server | 推理服务器配置 |
mcp_servers | MCP 服务器配置 |
network | uvicorn 网络配置 |
logging | 日志记录配置 |
api_key | 用于服务器身份验证的 API 密钥 |
支持
如果您遇到任何问题,请打开一个 issue 或加入 discord。
此处还提供文档 here。
工作原理
该应用程序位于 OpenAI API 和推理引擎之间。 传入的请求被修改为包含 MCP 服务器上所有可用的 MCP 工具的工具定义。 然后将请求转发到推理引擎,该引擎使用工具定义来创建工具调用。 然后,MCP 桥管理对工具的调用。 然后修改请求以包含工具调用结果,并再次返回到推理引擎,以便 LLM 可以创建响应。 最后,响应返回到 OpenAI API。
sequenceDiagram
participant OpenWebUI as Open Web UI
participant MCPProxy as MCP Proxy
participant MCPserver as MCP Server
participant InferenceEngine as Inference Engine
OpenWebUI ->> MCPProxy: Request
MCPProxy ->> MCPserver: list tools
MCPserver ->> MCPProxy: list of tools
MCPProxy ->> InferenceEngine: Forward Request
InferenceEngine ->> MCPProxy: Response
MCPProxy ->> MCPserver: call tool
MCPserver ->> MCPProxy: tool response
MCPProxy ->> InferenceEngine: llm uses tool response
InferenceEngine ->> MCPProxy: Response
MCPProxy ->> OpenWebUI: Return Response
贡献指南
欢迎对 MCP-Bridge 做出贡献! 要做出贡献,请按照以下步骤操作:
- Fork 存储库。
- 为您的功能或错误修复创建一个新分支。
- 进行更改并提交。
- 将更改推送到您的 fork。
- 创建一个拉取请求到主存储库。
许可证
MCP-Bridge 在 MIT 许可证下获得许可。 有关更多信息,请参见 LICENSE 文件。
推荐服务器
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。
Mathematica Documentation MCP server
一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。
kb-mcp-server
一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。
Research MCP Server
这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

Cryo MCP Server
一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。