Kuadrant MCP Gateway

使用说明 (Markdown 格式)

  • 项目简介
    • 该项目实现了一个 MCP 网关/聚合层,核心职责是向 MCP 客户端以标准化方式提供上下文信息和功能。它托管并管理资源、注册并执行工具、定义并渲染提示模板,并通过 JSON-RPC 与客户端通信。网关还负责会话管理、能力声明,并支持通过不同传输协议(如 Stdio、SSE、WebSocket)与 MCP 客户端进行通信。
  • 主要功能点
    • MCP 协议支持与请求/响应处理:网关实现了对 MCP 请求的处理、转发以及对工具、资源、提示的响应管理。
    • 资源与工具聚合:从多个后端 MCP 服务器聚合工具,提供统一的工具列表,支持前缀隔离以避免冲突。
    • 代理与路由扩展:通过 ExtProc/Envoy 插件实现工具调用的转发、会话绑定以及通知分发。
    • 动态配置与控制平面:提供 Kubernetes Controller/CRD(MCPServerRegistration、MCPGatewayExtension、MCPVirtualServer 等)实现动态发现、工具冲突检测、权限控制、以及配置热重载。
    • 安全与鉴权能力:集成基于 JWT/OAuth 等机制的工具访问控制、跨命名空间引用的 ReferenceGrant 等机制(通过测试/集成用例覆盖)。
    • 多传输与通知:支持流式或非流式传输,以及通知工具列表的变化等事件。
  • 安装步骤
    • 本地开发环境(简要)
      • 运行 make local-env-setup,按需搭建kind集群、Istio/Gateway、Keycloak、MCP 网关及测试后端 MCP 服务器。
    • 生产/集成环境
      • 部署 MCP Gateway 及相关 CRD、控制器组件,并将实际后端 MCP 服务器对接到网关的配置中。可使用 Kubernetes 方式进行控制器模式或 Standalone 配置。
  • 服务器配置(说明性示例,方便 MCP 客户端理解如何为网关准备配置。实际客户端通常通过网关入口建立连接)
    • serverName: weather-service
    • command: /path/to/mcp-backend-server-binary
    • args: [ "--transport", "http", "--port", "9090", "--path", "/mcp", "--hostname", "weather.mcp.local" ] 说明:
    • 上述配置用于 MCP 客户端在启动时以独立进程方式运行后端 MCP 服务器,并通过网关对接。serverName 用作网关在内部配置和工具前缀管理的唯一标识;command/args 指向后端 MCP 服务的启动命令及参数。具体路径与参数应结合部署环境调整。
  • 基本使用方法
    • 启动网关组件后,使用 MCP 客户端通过网关暴露的入口与网关建立连接。
    • 客户端可以读取聚合的工具列表、调用工具、读取资源、获取 Prompts,并订阅工具列表变化通知。
    • 如需跨命名空间引用或工具冲突处理,网关会在状态/工具列表中暴露相应信息,帮助排错与调整。

服务器信息