MCP Gateway
使用说明(Markdown 格式)
MCP Gateway 使用指南
-
项目简介
- 这是一个基于 MCP 的后端网关,负责管理资源与工具,提供数据访问、工具执行、以及可渲染的提示模板等能力,并通过 JSON-RPC/模板化消息与 MCP 客户端进行通信。网关支持 RBAC、JWT 校验、审计日志、速率限制等安全和运营特性,便于将 LLM 客户端接入到后端工具和数据源。
-
主要功能点
- MCP 协议支持:完整的工具注册、调用、初始化等 JSON-RPC 流程,以及通过 SSE / HTTP 等通道的传输。
- 资源与工具管理:维护工具注册表,支持静态配置和动态发现,提供工具列表与调用入口。
- 安全与合规:基于 JWT 的身份验证、基于角色的访问控制 (RBAC),对工具调用进行审计日志记录。
- 高级路由与弹性:元工具和智能路由(如 find_tools、call_tool、动态检索工具等),支持异步工具执行和后台任务。
- 多传输与集成:SSE/HTTP 传输,HTTP 客户端池化、与外部 MCP 服务无缝对接。
-
安装步骤
- 复制环境配置,按项目需要设置 JWT 密钥、算法、数据库连接等环境变量。
- 使用 Docker Compose 启动生产部署:gateway、db、以及各工具服务,网关对外暴露端口通常为 8000。
- 开发环境可在本机启动 uvicorn,示例命令为:uvicorn src.main:app --host 0.0.0.0 --port 8000。
- 运行时可通过 GET /health 进行健康检查,通过 POST /mcp/invoke 或 SSE 通道进行工具调用与消息传递。
-
服务器配置(MCP 客户端需要的启动信息,以下为示例 JSON,描述服务器名称、启动命令及参数) { "server_name": "gateway", "command": "uvicorn", "args": [ "src.main:app", "--host", "0.0.0.0", "--port", "8000" ], "environment": { "DATABASE_URL": "postgresql+asyncpg://mcp_user:mcp_password@db:5432/mcp_gateway", "JWT_SECRET_KEY": "your-production-secret", "JWT_ALGORITHM": "HS256", "DEBUG": "false" } // 注释:environment 字段包含网关运行所需的数据库与安全配置,MCP 客户端本身不需要知道内部联系细节,仅以此信息来连接并启动网关服务 }
-
基本使用方法
- 启动网关后,LLM 客户端可通过 MCP 流程与网关交互:
- 初始化阶段:客户端发送 initialize 请求,获得服务能力信息。
- 获取工具:通过 tools/list(或等效的工具发现流程)查看可用工具及其输入模式。
- 调用工具:通过 tools/call 发起对已发现工具的调用,网关会对参数进行校验、权限检查、转发至对应工具后返回结果。
- 如需调试,请使用日志记录和审计上下文来追踪请求的来源、耗时及错误信息。
- 启动网关后,LLM 客户端可通过 MCP 流程与网关交互: