如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本目录包含 KAgent 所有工具的 Go 实现,从原 Python 实现迁移而来。这些工具设计为与模型上下文协议(MCP)服务端配合使用,提供完整的 Kubernetes、云原生和可观测性相关功能。
curl -sL https://raw.githubusercontent.com/kagent-dev/tools/refs/heads/main/scripts/install.sh | bash
docker run -it --rm -p 8084:8084 ghcr.io/kagent-dev/kagent/tools:0.0.13
helm upgrade -i -n kagent --create-namespace kagent-tools oci://ghcr.io/kagent-dev/tools/helm/kagent-tools --version 0.0.13
helm ls -A
关于如何使用 AgentGateway 运行 KAgent 工具的快速入门内容,请参考 快速入门指南。
本 Go 实现的所有工具以单个 MCP 服务端形式部署,通过 MCP 协议对外暴露全部可用工具。 为了提升代码组织性与可维护性,每个工具类别都独立实现在对应的 Go 文件中。
k8s.go)提供全面的 Kubernetes 集群管理功能:
helm.go)提供 Helm 包管理器相关功能:
istio.go)提供 Istio 服务网格管理能力:
argo.go)提供 Argo Rollouts 渐进式交付功能:
cilium.go)提供 Cilium CNI 和网络相关功能:
prometheus.go)提供 Prometheus 监控与告警相关功能:
grafana.go)提供 Grafana 仪表盘与告警管理能力:
datetime.go)提供时间与日期实用功能:
docs.go)提供文档查询功能:
common.go)提供通用实用功能:
kubectl(使用 Kubernetes 工具时需要)helm(使用 Helm 工具时需要)istioctl(使用 Istio 工具时需要)cilium(使用 Cilium 工具时需要)go build -o kagent-tools .
./kagent-tools
该服务端采用 SSE 传输方式进行 MCP 通信。
CLI 标志说明
| 标志 | 默认值 | 说明 |
|---|---|---|
--port, -p | 8084 | MCP 服务端运行的端口 |
--metrics-port | 8084 | Prometheus 指标服务运行的端口 |
--stdio | false | 使用标准输入输出进行通信,替代 HTTP 方式 |
--tools | [](代表全部工具) | 逗号分隔的字符串列表,指定需要注册的工具提供方 |
--read-only | false | 禁用所有执行写入操作的工具 |
--session-idle-ttl | 30m | 关闭空闲时长超过该值的流式 HTTP 会话(设置为 0 则停用空闲会话回收机制) |
--kubeconfig | "" | kubeconfig 文件路径(默认使用集群内配置) |
--version, -v | false | 输出版本信息并退出 |
go test -v ./...
所有工具都实现了完善的错误处理逻辑,可通过 MCP 协议返回准确的错误信息。当所需 CLI 工具不存在或命令执行失败时,工具会返回描述性的错误消息。
工具会遵循现有认证与配置规则:
KUBECONFIG 环境变量所有工具共用 runCommand 函数实现命令执行,该函数具备以下能力:
所有工具都已与 MCP 协议完成适配:
mcp.ParseString、mcp.ParseBool 等方法完成参数解析mcp.NewToolResultText 或 mcp.NewToolResultError 返回结果本 Go 实现与原 Python 工具集的功能完全对等,同时具备以下优势:
os/exec 替代 Python subprocess工具可通过环境变量进行配置:
KUBECONFIG:Kubernetes 配置文件路径PROMETHEUS_URL:默认 Prometheus 服务端地址GRAFANA_URL:默认 Grafana 服务端地址GRAFANA_API_KEY:默认 Grafana API 密钥MCP 服务端会在可配置的 HTTP 端点(/metrics)暴露 Prometheus 指标。默认情况下,指标端点与 MCP 服务端共用同一端口。如需将指标运行在独立端口,可执行以下命令:
./kagent-tools --port 8084 --metrics-port 9090
| 指标名 | 类型 | 标签 | 说明 |
|---|---|---|---|
kagent_tools_mcp_server_info | Gauge | server_name、version、git_commit、build_date、server_mode | 服务端元数据(数值恒为 1) |
kagent_tools_mcp_registered_tools | Gauge | tool_name、tool_provider | 每个已注册工具对应一条记录,数值恒为 1 |
kagent_tools_mcp_invocations_total | Counter | tool_name、tool_provider | 工具总调用次数 |
kagent_tools_mcp_invocations_failure_total | Counter | tool_name、tool_provider | 工具调用失败总次数 |
服务端同时会暴露标准 Go 运行时与进程指标,包括 goroutine 数量、内存占用、CPU 使用量、文件描述符统计等。
工具会返回详细的错误信息,支持 verbose 输出。调试问题时请按以下步骤排查:
后续可能的功能优化点:
新增工具或修改现有工具时请遵守以下规范:
来自真实用户的反馈,见证轩辕镜像的优质服务