UnitOne AgentGateway MCP Server 套件
使用说明内容(Markdown格式)
-
项目简介
- 该仓库实现了一套 MCP(模型上下文协议)相关的网关系统以及若干用于测试和演示的 MCP 服务器。网关负责接收来自 LLM 客户端的 MCP 请求,进行路由、鉴权、工具调用和上下文资源管理,并可应用多租户隔离与安全守护策略。测试服务器用于模拟真实的 MCP 场景,帮助验证网关在各种安全策略下的行为。
-
主要功能点
- MCP 协议路由与代理:支持对 MCP 请求的路由、转发和响应,便于客户端通过网关访问后端 MCP 服务。
- 会话管理与能力声明:网关维护会话上下文,支持多种传输协议(如 SSE、Streamable HTTP、Stdio 等),并向客户端声明网关能力。
- Tool/Resource 管理与执行:提供工具注册、调用、参数传递以及资源读取能力。
- Prompts/模板支持(通过与后端工具组合实现上下文渲染)。
- 安全守护与合规:包含工具 Poisoning、Rug Pull、PII 保护等 guards,保护 MCP 流量免受污染和误用。
- 多租户路由:单网关可管理并路由到多个 MCP 服务器,支持不同租户间的隔离。
- 测试服务器与示例:仓库内置多种测试 MCP 服务器,便于端到端验证和安全测试。
-
安装步骤
- 克隆仓库并安装依赖(如 Python、Node 等环境,视具体子模块和测试服务器而定)。
- 启动网关(参考 README 提供的 CLI 流程,通常包括 agw setup、agw build、agw deploy 等步骤)。
- 启动测试 MCP 服务器(示例包括 pii-test、poison、rug-pull 等路由),用于与网关进行端到端交互测试。
- 部署到 Azure(如 README 中所述的 Production Setup 指南)以实现生产环境的部署能力。
-
服务器配置(MCP 服务器对 MCP 客户端的连接配置,示例为 JSON 格式信息,便于客户端理解连接信息;以下为准确配置示例描述,非实际代码) { "servers": [ { "name": "pii-test-server", "command": "python", "args": ["testservers/src/mcp_test_server/fastmcp_server.py"], "description": "PII 测试 MCP 服务器,提供生成PII、嵌入PII、批量生成等工具及资源。" }, { "name": "poison", "command": "python", "args": ["testservers/src/tool_poisoning_test/server.py"], "description": " Tool Poisoning 测试 MCP 服务器,用以验证安全守护对 poisoned tool 描述的检测与阻断。" }, { "name": "rug-pull", "command": "python", "args": ["testservers/src/rug_pull_test/server.py"], "description": " Rug Pull 测试 MCP 服务器,用以验证工具元数据在会话中的变化检测。" } ] }
-
基本使用方法
- 启动网关后,将上述测试 MCP 服务器接入网关进行端到端测试,验证工具、资源、会话及安全 guards 的工作情况。
- 使用提供的测试脚本(如 e2e 测试套件)来自动化验证网关对不同传输协议与路由的兼容性与安全性。
- 根据需要在 UI 中配置多租户路由、 guards 策略与服务器白名单,以实现生产环境的安全与扩展性。
-
运行要点
- 网关和测试服务器之间的交互多为 JSON-RPC/HTTP 请求,确保各自实现对 MCP 格式的正确解析与响应。
- 安全守护模块需要在不同阶段(请求、响应、工具调用等)执行,以确保数据脱敏、权限检查和工具行为的正确性。