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 发起对已发现工具的调用,网关会对参数进行校验、权限检查、转发至对应工具后返回结果。
    • 如需调试,请使用日志记录和审计上下文来追踪请求的来源、耗时及错误信息。

服务器信息