项目简介
Minibridge 是一个位于 MCP 服务器前端的安全桥梁,旨在简化和保护智能代理(Agent)与 MCP 服务器之间的通信。它安全地将 MCP 服务器暴露给互联网,并可选择性地集成策略服务(Policer),用于代理身份验证、内容分析和转换。此外,Minibridge 还能通过 SBOM(软件物料清单)生成和实时验证来确保 MCP 服务器的完整性。
请注意: Minibridge 本身并非 MCP 服务器,而是一个代理,需要与实际的 MCP 服务器(如 '@modelcontextprotocol/server-filesystem')配合使用。Minibridge 负责处理安全、连接和策略,实际的 MCP 服务器负责资源、工具和 Prompt 的托管与执行。
主要功能点
- 安全通信桥梁: 安全地将基于 stdio 的 MCP 服务器桥接到 WebSocket 和 HTTP+SSE 协议,方便 Agent 通过网络连接。
- HTTPS 和 TLS 支持: 支持 HTTPS 加密通信,保障数据传输安全。支持双向 TLS 认证,增强客户端和服务器端的身份验证。
- Agent 身份验证: 通过集成策略服务(Policer)实现 Agent 身份验证,支持全局 Token 和 Header 传递两种模式。
- 请求策略控制 (Policer): 可集成 HTTP 或 Rego 策略服务,对 Agent 的请求和 MCP 服务器的响应进行策略控制,例如权限控制、内容审查和数据转换。
- MCP 服务器完整性检查 (SBOM): 生成和验证 MCP 服务器的 SBOM,确保服务器组件(如工具和 Prompt)的完整性和未被篡改。
- CORS 支持: 支持 CORS (跨域资源共享),允许 Web 应用 Agent 访问。
- 健康检查和性能分析: 提供健康检查接口和性能分析接口,方便监控和诊断。
安装步骤
由于 Minibridge 是一个 Go 语言项目,您需要先安装 Go 语言环境。
-
安装 Go 语言环境 (如果已安装请跳过) 请参考 Go 官网 安装适合您操作系统的 Go 语言版本。
-
下载 Minibridge 仓库
git clone https://github.com/acuvity/minibridge.git cd minibridge -
编译 Minibridge 在仓库根目录下执行以下命令编译:
go build -o minibridge ./main.go编译成功后,会在当前目录下生成可执行文件 'minibridge'。
服务器配置
Minibridge 需要与一个实际的 MCP 服务器配合使用。以下是一个典型的 Minibridge 配置示例,假设您已经安装并配置了 '@modelcontextprotocol/server-filesystem' MCP 服务器,并希望使用 Minibridge 将其桥接到 HTTP+SSE 协议,并启用策略控制和 SBOM 验证。
假设您要启动的 MCP 服务器配置如下:
{ "server name": "filesystem-server", "command": "npx", "args": ["@modelcontextprotocol/server-filesystem", "/tmp"] }
Minibridge 配置 (以 AIO 模式为例):
您可以使用命令行参数配置 Minibridge。以下命令启动一个 All-In-One 模式的 Minibridge,监听 8000 端口,桥接 '@modelcontextprotocol/server-filesystem' MCP 服务器,并启用 HTTP Policer 和 SBOM 验证:
./minibridge aio \ --listen :8000 \ --policer-type http \ --policer-http-url https://policer.example.com/police \ --policer-http-token YOUR_POLICER_TOKEN \ --sbom server.sbom \ -- npx @modelcontextprotocol/server-filesystem /tmp
参数说明:
- '--listen :8000': Minibridge 监听的端口为 8000,用于接收 Agent 的 HTTP+SSE 连接。
- '--policer-type http': 启用 HTTP Policer。
- '--policer-http-url https://policer.example.com/police': HTTP Policer 的 URL 地址。
- '--policer-http-token YOUR_POLICER_TOKEN': 用于 HTTP Policer 身份验证的 Token。
- '--sbom server.sbom': SBOM 文件路径,用于 MCP 服务器完整性验证。
- '-- npx @modelcontextprotocol/server-filesystem /tmp': 实际要启动的 MCP 服务器命令及其参数。'--' 之后的内容会被视为 MCP 服务器的命令和参数。
SBOM 文件生成:
您需要先生成 MCP 服务器的 SBOM 文件,用于后续的完整性验证。使用 'minibridge scan sbom' 命令生成 SBOM 文件:
./minibridge scan sbom -- npx @modelcontextprotocol/server-filesystem /tmp > server.sbom
基本使用方法
-
启动 Minibridge 服务器 根据您的需求选择合适的 Minibridge 启动模式 (aio, backend, frontend) 和配置参数,启动 Minibridge 服务器。
-
Agent 连接 Minibridge Agent (MCP 客户端) 需要连接到 Minibridge 的地址和端口,而不是直接连接到 MCP 服务器。
-
HTTP+SSE Agent: Agent 可以通过 HTTP 客户端连接到 Minibridge 的 '/sse' 和 '/message' 端点,进行 MCP 协议通信。具体端点信息会在 SSE 连接建立后通过 'endpoint' 事件推送给 Agent。
例如,使用 'curl' 连接 HTTP+SSE 端点:
curl http://127.0.0.1:8000/sse发送 MCP 请求:
curl http://127.0.0.1:8000/message?sessionId=YOUR_SESSION_ID \ -X POST \ -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' -
WebSocket Agent: Agent 可以通过 WebSocket 客户端连接到 Minibridge 的 '/ws' 端点,进行 MCP 协议通信。 (仅限 Backend 模式或直接连接 AIO 模式的 Backend 部分)
例如,使用 'wscat' 连接 WebSocket 端点:
wscat --connect ws://127.0.0.1:8000/ws
-
-
Agent 发送 MCP 请求 Agent 按照 MCP 协议规范,通过 HTTP POST 或 WebSocket 发送 JSON-RPC 请求到 Minibridge。Minibridge 会将请求转发到后端的 MCP 服务器,并将 MCP 服务器的响应返回给 Agent。
总结:
Minibridge 作为一个 MCP 服务器的安全桥梁,增强了 MCP 服务器的安全性、可扩展性和网络适应性。您需要将其与实际的 MCP 服务器配合使用,才能构建完整的 MCP 应用后端。
信息
分类
通信与社交