kguardian MCP 服务端实现
使用说明
- 项目简介
- 该仓库实现一个 MCP(Web JSON-RPC) 服务器,用于向 LLM 客户端提供对资源、工具和提示的标准化访问。服务器端负责工具注册、执行、会话能力声明,以及与数据源(如 Kubernetes 资源代理、Broker 等)的交互。通过 HTTP 流式处理实现对客户端的请求与响应。
- 主要功能点
- 注册与暴露 Tools:服务端注册多种工具,LLM 客户端可通过 MCP 请求调用这些工具获取数据或执行外部功能。
- 资源与数据访问:通过对外部数据源的访问实现对资源信息的查询能力,便于 LLM 在对话中获取上下文数据。
- JSON-RPC 交互:基于 MCP 规范的请求/响应格式,提供标准化的工具调用、工具列表查询等能力。
- 服务端实现与运行:提供一个可运行的 Go 服务端,使用 Model Context Protocol 的 Go SDK 搭建,可作为独立服务运行并对接 Broker。
- 安装步骤
- 准备依赖与构建环境:确保在支持的 Go 版本环境中构建,安装所需的依赖库。
- 构建 MCP 服务器二进制:在仓库根目录执行构建命令,生成 kguardian-mcp-server 可执行文件。
- 运行 MCP 服务器:配置环境变量 BROKER_URL 指向 Broker 服务地址,PORT 指定监听端口(默认为 8081),启动二进制文件。
- 启动后端数据源与 Broker:确保 Broker、Kubernetes 数据源和相关服务已就绪,可供 MCP 服务器访问。
- 客户端接入:LLM 客户端按 MCP 服务器提供的工具列表,通过 JSON-RPC 调用工具与资源接口,获得所需数据或执行外部功能。
- 服务器配置 服务器配置示例(MCP 客户端需要配置信息来连接 MCP 服务器;客户端配置通常包含 server name、启动命令及参数。以下信息用于说明 MCP 服务器的启动配置,具体参数请结合运行环境调整): { "server_name": "kguardian-mcp", "command": "kguardian-mcp-server", "args": [ // 实际运行时,请通过环境变量配置连接信息 // BROKER_URL 指向 Broker 服务地址(示例) // PORT 指定 MCP 服务器监听端口(示例) ] } 说明:
- 实际上该 MCP 服务器通过环境变量控制对 Broker 的连接和监听端口,例如 BROKER_URL 和 PORT。MCP 客户端通常不需要额外的参数,直接通过服务器暴露的工具进行调用。
- 具体使用时,建议在部署容器或宿主机环境中设置以下环境变量:
- BROKER_URL: Broker 服务地址,如 http://broker.kguardian.svc.cluster.local:9090
- PORT: 服务器监听端口,如 8081
- 配置中的 server_name、command、args 仅用于描述性启动信息;客户端实际连接时应使用上述环境变量所指定的服务器地址和端口。
- 基本使用方法
- 启动后端 MCP 服务器,LLM 客户端通过 MCP 的 JSON-RPC 接口查询工具列表、执行工具调用,获取数据或执行外部功能。
- 客户端可通过发送以下请求模式与服务器互动:
- 获取可用工具列表
- 调用指定工具并获取结果
- 读取资源、查询 Pod、Svc、Traffic 等数据
- 在集成时,确保客户端具备对 MCP 服务器的正确网络访问权限,以及与 Broker 的对接权限。