AuthMCP Gateway
使用说明(Markdown 格式)
-
项目简介
- AuthMCP Gateway 是一个面向 MCP 客户端的后端网关,充当 MCP 服务器与后端 MCP 服务器之间的中间层。它实现对 MCP 请求的统一处理、跨多后端服务器的路由与执行、认证与授权、健康检查、日志记录,以及通过 REST/JSON-RPC 与 SSE 等方式提供 MCP 的上下文服务。
-
主要功能点
- MCP 请求处理与路由:支持对工具列表、工具调用、初始化等 MCP 方法的 JSON-RPC 请求进行聚合、分发和响应。
- 身份认证与授权:提供基于 JWT 的认证、OAuth 2.0 动态注册、令牌轮换与受控访问,支持多用户与管理员模式。
- 速率限制与安全:对登录、注册、MCP 请求等关键操作进行限流,记录安全事件与日志。
- 多后端 MCP 支持:能够注册、健康检查及路由到多个后端 MCP 服务器,并按策略分配工具调用。
- 健康监控与日志:对后端 MCP 的健康状态进行周期性检查,并将日志/安全事件写入文件或数据库,支持检索与告警。
- Admin 面板与配置管理:提供管理员界面(路由、用户、MCP 服务器、设置等)的管理能力;支持动态设置应用参数。
- 三方传输与扩展性:内置对 JSON-RPC 与 SSE 的传输、以及对后端工具调用的可观测性与扩展能力。
-
安装步骤
- 通过 PyPI 安装:pip install authmcp-gateway
- 运行网关:authmcp-gateway start(默认监听 0.0.0.0:8000,具体取决于配置)
- 初始化数据库与管理员:按照文档在首次运行时按照向导创建管理员账号与初始化数据目录
- 通过管理员界面配置 MCP 服务器、用户、权限和策略等
- 将 MCP 客户端配置为连接网关端点,后端 MCP 服务器可通过网关进行访问与调用
-
服务器配置(MCP 客户端需要用以下 JSON 配置来对接 MCP 服务器端点,包含服务器名称、启动命令及参数等) { "server_name": "GitHub-MCP", "command": "start-mcp-backend_server", "args": [ "--gateway-url", "http://your-gateway-host:8000/mcp", "--server-identifier", "GitHub-MCP", "--routing-prefix", "gh_" ], "notes": "该配置用于 MCP 客户端从网关端点 POST/mcp 获取工具列表、执行工具调用等。实际后端实现需在网关前端配置中注册名为 GitHub-MCP 的 MCP 服务器,网关会转发请求并聚合结果。" }
说明
- server_name 是 MCP 客户端与网关对应的名称标识。
- command 与 args 仅用于描述 MCP 客户端启动所需的命令及参数,便于理解连接网关的方式,具体实现由客户端决定且并非所有客户端都需要直接展示此配置。
- MCP 客户端本身可能不需要直接暴露此配置,关键是确保网关端点 http(s)://<网关-host>/mcp 与对应的服务器在网关中注册并可路由。
-
基本使用方法(简要)
- 启动网关并完成初始设置(数据库、管理员、MCP 服务器等)。
- 在网关管理员界面添加后端 MCP 服务器,配置 URL、认证方式及路由策略。
- MCP 客户端通过网关端点(如 GET/POST 到 /mcp 或 /mcp/{server})进行工具列表获取、工具调用和初始化等 MCP 操作。
- 如需自动化运维,可开启健康检查、日志轮转、Token 刷新等后台任务。
- 如遇令牌轮换或 401/403 等异常,网关会尝试按配置进行自动化刷新与重试,请确保后端服务器的鉴权信息正确并且令牌策略被正确配置。