AKS-MCP 服务器
使用说明(Markdown 格式)
-
项目简介
- AKS-MCP 是一个完整的 MCP 服务器实现,旨在为 AI 助手(如 Copilot、Claude 等)提供对 AKS 集群的上下文信息、数据资源和外部工具的访问能力。它通过 JSON-RPC/HTTP 风格的通信与客户端协作,支持通过不同传输协议与客户端建立会话、执行操作、渲染和提供 Prompt 模板。
- 服务器核心职责包括:
- 托管并管理 Resources(如 AKS 集群、VNet、子网、NSG、LB、VMSS 等 Azure 资源),提供数据访问能力。
- 注册和执行 Tools,允许 LLM 调用外部功能(如 Azure/Kubernetes 操作、监控、Fleet、诊断等)。
- 定义与渲染 Prompt 模板,支持可定制的 LLM 交互模式。
- 与客户端通过 JSON-RPC 进行资源读取、工具调用、Prompts 获取等请求交互,具备会话管理和能力声明能力。
- 多传输协议支持:stdio、SSE、streamable-http,便于在本地、远端和嵌入式场景使用。
-
主要功能点
- MCP 核心协议实现:接收 MCP 请求、路由到资源、工具或模板渲染逻辑,返回 MCP 风格的 JSON-RPC 响应。
- 资源与数据访问:对 AKS/Azure 资源进行读写操作的封装与暴露。
- 工具注册与执行:统一工具、专业工具与 Kubernetes 组件的适配器,支持同一框架下的执行与 telemetry 记录。
- Prompt 定义与渲染:提供可定制的对话提示模板,支持多种交互模式。
- 会话与能力声明:在启动时声明服务器能力,提供会话管理与状态查询。
- 安全与认证:支持 Azure CLI 登录、Workload Identity、托管身份以及 OAuth(在非 stdio 模式下开启)等多种认证路径。
- 部署与扩展性:提供在集群内部署(Helm 图、Remote MCP、In-cluster 部署)以及在本地/容器环境下的开发和测试方案。
- 客户端适配:通过 MCP 客户端配置,连接到服务器启动和会话。
-
安装步骤(简明可操作)
- 依赖准备
- 需要 Go 1.24.x 及以上、Docker、可选的 Kubernetes/AKS 客户端工具等。项目提供了 Makefile 以简化构建、测试和打包流程。
- 编译与运行
- 在仓库根目录执行编译(推荐使用 Makefile 提供的快捷命令):
- 运行本地开发服务器:./aks-mcp --transport stdio
- 也可以以容器方式运行,通过 Docker 或 Helm Chart 部署到 AKS 集群(详见 README 的“Deploy the MCP server in-cluster”章节)。
- 在仓库根目录执行编译(推荐使用 Makefile 提供的快捷命令):
- 连接 MCP 客户端
- MCP 客户端需要配置一个 MCP 服务器连接,常见方式是在客户端侧提供一个配置,指向服务器可用的启动命令和参数(见下方的“服务器配置”示例)。通常客户端只需要知道服务器的地址/端口,以及传输方式即可启动连接。
- 集群部署(可选)
- 通过 Helm Chart 将 AKS-MCP 部署到 AKS 集群,结合 Azure OAuth、Fleet、AKS 操作等组件进一步扩展能力。
- 依赖准备
-
服务器配置(MCP 客户端连接用,示例以 JSON 形式给出,实际使用请按 MCP 客户端的要求整理)
- 服务器名称:aks-mcp
- 启动命令(command):路径指向已编译的 aks-mcp 二进制
- 参数(args):缺省传输为 stdio 的示例为 ["--transport","stdio"]
- 注释:该配置用于 MCP 客户端连接服务器并建立会话,MCP 客户端一般不需要硬编码实现细节,仅需知道服务器的启动命令和参数即可连接,实际参数可根据部署环境调整,例如在容器/远端部署时可改为启动参数
- JSON 配置示例(文本描述,不作为代码块展示): { "servers": { "aks-mcp-server": { "type": "stdio", "command": "<aks-mcp 二进制路径>", "args": [ "--transport", "stdio" ] } // 如需端对端测试,可替换为 sse/streamable-http 的启动参数组合 } }
-
基本使用方法
- 启动后,你可以通过 MCP 客户端发送读取资源、调用工具、获取 Prompts 等操作,服务器将按 MCP 标准返回 JSON-RPC 风格的响应。
- 主要传输模式说明:
- stdio:直接在同一进程/终端下通讯,适合本地开发与调试。
- SSE:通过服务端事件流进行持续通信,适合远程连接和流式响应。
- streamable-http:基于 HTTP 的流式传输,结合 HTTP/2 的流特性实现低延迟交互。
- 安全与认证在配置中可开启 OAuth、Azure CLI 登录、Managed Identity 等,具体路径请参考 README 的授权部分。
-
关键词 AKS, Azure, Kubernetes, 资源管理, 工具执行
-
分类ID 1