MCP-Bridge 解决方案概述
MCP-Bridge是一个连接OpenAI API与MCP工具的桥梁,它允许开发者通过OpenAI API接口利用各种MCP工具。作为一个中间层,MCP-Bridge将MCP工具集成到OpenAI API环境中,无需客户端显式支持MCP。它提供了一系列兼容OpenAI API的端点,简化了AI模型与外部工具的交互。
该解决方案支持非流式和流式聊天补全,并能处理不使用MCP的补全请求。通过MCP-Bridge,开发者可以轻松访问和使用各种MCP工具,并利用MCP抽样功能优化模型性能。它还提供SSE Bridge,方便外部客户端集成。核心价值在于降低了集成MCP工具的复杂性,使得开发者能够更专注于AI模型的开发和应用,而无需深入了解底层MCP协议的细节。开发者可以通过Docker或手动方式安装,并通过简单的配置即可开始使用。
MCP-Bridge 核心能力
OpenAI API 兼容层
MCP-Bridge 的核心功能是提供与 OpenAI API 兼容的接口,使得开发者能够利用现有的 OpenAI API 客户端与 MCP 工具进行交互,而无需修改客户端代码。它将来自 OpenAI API 的请求转换为对 MCP 工具的调用,并将 MCP 工具的响应转换回 OpenAI API 的格式。这种转换使得开发者可以无缝地将 MCP 工具集成到现有的 AI 工作流程中,极大地简化了集成过程。
例如,开发者可以使用现有的 OpenAI API 客户端(如Open Web UI)来调用 MCP 的 fetch
工具,而无需编写任何额外的代码来处理 MCP 协议。MCP-Bridge 充当了中间层,负责处理协议转换和数据格式化,从而实现了不同系统之间的互操作性。技术上,MCP-Bridge 通过解析 OpenAI API 请求,提取工具调用信息,然后根据配置将这些信息转换为对相应 MCP 服务的调用。
MCP 工具集成与管理
MCP-Bridge 允许开发者轻松集成和管理多个 MCP 工具。通过 config.json
配置文件,开发者可以定义可用的 MCP 服务器及其相应的命令和参数。这种集中式的配置管理简化了工具的部署和维护,并允许开发者根据需要动态地添加或删除工具。
例如,开发者可以配置 MCP-Bridge 以使用多个 fetch
工具实例,每个实例配置不同的数据源或访问权限。通过修改 config.json
文件,开发者可以轻松地更新工具的配置,而无需修改任何代码。MCP-Bridge 负责处理工具的启动、停止和监控,确保工具的可用性和稳定性。技术上,MCP-Bridge 使用子进程来运行 MCP 服务器,并通过标准输入/输出或 HTTP/SSE 与它们进行通信。
SSE Bridge 实现外部客户端连接
MCP-Bridge 提供了一个 SSE (Server-Sent Events) Bridge,允许外部客户端通过 SSE 协议与 MCP 服务器进行通信。这使得开发者可以使用任何支持 SSE 的客户端与 MCP 工具进行交互,而无需直接实现 MCP 协议。SSE Bridge 简化了客户端的开发,并允许开发者使用各种编程语言和框架来构建 MCP 客户端。
例如,开发者可以使用 wong2/mcp-cli
命令行工具通过 SSE Bridge 与 MCP-Bridge 进行交互,从而测试 MCP 工具的配置和功能。SSE Bridge 提供了一个标准的 HTTP 接口,客户端可以通过该接口订阅 MCP 服务器的事件流,并发送请求。技术上,MCP-Bridge 使用 ASGI (Asynchronous Server Gateway Interface) 框架来实现 SSE Bridge,并使用 asyncio 库来处理并发连接。
REST API 端点暴露
MCP-Bridge 暴露了多个 REST API 端点,用于与原生 MCP 原语进行交互。这允许开发者将处理 MCP 服务器的复杂性外包给 MCP-Bridge,而不会影响功能。通过 OpenAPI 文档,开发者可以找到如何使用这些功能的示例。
例如,开发者可以使用 REST API 端点来列出所有可用的 MCP 工具,或者调用特定的 MCP 工具并获取结果。这使得开发者可以轻松地将 MCP 工具集成到现有的 Web 应用程序或服务中。技术上,MCP-Bridge 使用 FastAPI 框架来构建 REST API,并使用 Pydantic 库来验证请求和响应数据。
API 密钥认证
MCP-Bridge 支持 API 密钥认证,以保护服务器的安全。通过在 config.json
文件中添加 api_key
字段,开发者可以启用 API 密钥认证功能。当向 MCP-Bridge 服务器发出请求时,需要在 Authorization
标头中包含 API 密钥作为 Bearer 令牌。
例如,开发者可以设置一个 API 密钥,并将其分发给授权用户。只有提供有效 API 密钥的请求才能访问 MCP-Bridge 的功能。技术上,MCP-Bridge 使用 FastAPI 的依赖注入系统来实现 API 密钥认证,并使用 HTTP 标头来传递 API 密钥。如果配置中缺少 api_key
字段,则会跳过身份验证,以实现向后兼容性。