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,并订阅工具列表变化通知。
- 如需跨命名空间引用或工具冲突处理,网关会在状态/工具列表中暴露相应信息,帮助排错与调整。