mcp-for-argocd
MCP 协议封装 Argo CD API,让 AI 助手通过自然语言直接管理 Kubernetes
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
MCP 协议封装 Argo CD API,让 AI 助手通过自然语言直接管理 Kubernetes
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这样的场景:凌晨两点,你被告警叫醒——生产环境的某个 Deployment 版本不一致,Canary 发布的灰度流量没有按预期切换。登录 Argo CD Web UI,找到对应 Application,查看同步状态,进入资源详情页,层层嵌套的 K8s 对象让人眼花缭乱。下了几个 kubectl 命令排查,最后发现只是某个 ConfigMap 没刷新。
这是每一位维护 Argo CD 持续交付平台的工程师都经历过的"午夜惊魂"。Argo CD 本身已经足够优秀——GitOps 声明式管理、可视化 Diff 与 Sync、多集群支持——但当它与 AI 助手结合时,AI 只能看到你"喂"给它的信息,而无法直接操作 Argo CD 的 API。工程师仍然需要在终端、浏览器、AI 对话窗口之间来回切换,信息流转断裂。
argoproj-labs/mcp-for-argocd 正是来解决这个问题的:它将 Argo CD 的核心能力封装为 MCP(Model Context Protocol)工具,让 AI 助手通过自然语言就能直接操作 Argo CD 应用——查状态、同步版本、回滚、查看日志——无需人工在多个界面之间跳转。

图1:Argo CD 是云原生持续交付的事实标准(来源:Argo CD 官方仓库)
Argo CD 是 CNCF 旗下最受欢迎的 GitOps 持续交付工具之一,GitHub star 数超过 17,000。作为 Kubernetes 原生的声明式持续交付工具,Argo CD 通过 Git 仓库作为单一真相来源,自动将集群状态同步至 Git 所定义的期望状态。
Model Context Protocol(MCP) 是 Anthropic 在 2024 年底提出的开放协议,旨在标准化 AI 助手与外部工具/数据源的连接方式。其核心思想是:每一种外部能力(数据库、API、文件系统)都实现为一个 MCP Server,AI 助手通过统一协议调用这些 Server,就像 USB-C 接口统一了设备连接标准一样。
argoproj-labs/mcp-for-argocd 正是这两股技术浪潮的交汇点——由 Argo Proj Labs(Argo 官方实验室)维护,将 Argo CD 的完整 REST API 封装为 MCP 工具,供任何 MCP 兼容的 AI 客户端(如 Cursor、VS Code Agent、Claude Desktop)直接调用。
该项目于 2025 年 4 月 创建,不到一年时间已积累 514 颗 star,且于 2026 年 6 月还有活跃提交,生命周期正值上升期。维护者为 Argo Proj Contributors,背后有 Akuity(Argo CD 商业化公司)提供支持。
MCP Server 提供以下工具集,AI 助手可按需调用:
list_applications:列出所有 Argo CD 应用,支持按名称搜索和分页get_application:获取指定应用的详细信息(状态、健康度、同步状态)create_application / update_application / delete_application:增删改应用sync_application:触发一次 Sync 操作,替代手动点击"SYNC"按钮list_clusters:列出所有注册的 K8s 集群get_application_resource_tree:获取应用完整的资源树拓扑(Deployment → ReplicaSet → Pod)get_application_managed_resources:查看 Argo CD 托管的所有 K8s 资源get_application_workload_logs:直接拉取 Pod / Deployment 的日志,无需 kubectl logsget_resource_events:获取资源的事件流(如 ImagePullBackOff、OOMKilled 等)get_resource_actions / run_resource_action:对 K8s 资源执行预定义操作(如重启 Pod)API Token 不进入 Prompt 上下文。代码中明确注释:Token 仅从 x-argocd-api-token header 或 ARGOCD_API_TOKEN 环境变量读取,不作为工具参数暴露给 AI 模型。这是 MCP 工具安全设计的经典示范——敏感凭证通过传输层传递,不进入 AI 模型的上下文窗口,可防止 Prompt Injection 攻击。
src/
├── index.ts # 入口,仅加载 yargs CLI
├── cmd/cmd.ts # yargs 命令定义(stdio / sse / http 三种模式)
├── server/
│ ├── server.ts # 核心:McpServer + 所有工具注册
│ ├── transport.ts # 三种传输层实现
│ ├── tokenRegistry.ts # Token 多实例管理
│ └── server.test.ts # 单元测试
├── argocd/
│ ├── client.ts # Argo CD API 客户端,封装所有 REST 调用
│ └── http.ts # 底层 HTTP client(fetch 实现)
├── shared/models/schema.ts # Zod schema 定义
└── types/argocd.d.ts # 从 Swagger JSON 自动生成的类型定义
项目支持 三种 MCP 传输协议,覆盖不同场景:
| 传输模式 | 命令 | 适用场景 |
|---|---|---|
| Stdio | argocd-mcp stdio | 本地 CLI 工具、终端集成 |
| SSE | argocd-mcp sse --port 3000 | 远程客户端通过 HTTP GET 建立长连接 |
| HTTP Stream | argocd-mcp http --port 3000 | 最推荐的现代方式,支持请求/响应流 |
ArgoCDClient 实现了客户端缓存机制(以 baseUrl + token 为 key),避免每个工具调用都重新构建 HTTP 客户端。同时通过 TokenRegistry 支持多 Argo CD 实例管理——AI 助手可以同时连接多个 Argo CD 环境(dev/staging/prod),通过 argocdBaseUrl 参数动态切换,无需重启 MCP Server。
# 方式一:npx 直接运行(推荐快速体验)
npx argocd-mcp@latest stdio
# 方式二:Docker 容器(需先构建镜像)
docker build -t argocd-mcp .
docker run -p 3000:3000 argocd-mcp http
# 方式三:VS Code / Cursor MCP 配置
# 在 .vscode/mcp.json 或 .cursor/mcp.json 中配置即可
export ARGOCD_BASE_URL=https://argocd.example.com
export ARGOCD_API_TOKEN=<your-token> # 从 Argo CD Settings → Account → Generate Token
项目采用三阶段多阶段构建,巧妙处理跨平台编译问题:
base:安装 pnpm 环境prod-deps:仅安装生产依赖(--prod)build:在原生架构上编译 TypeScript,输出纯 JavaScript,再复制到目标镜像由于 tsup/esbuild 打包的 Go 二进制在 QEMU 模拟环境下会崩溃(fatal error: lfstack.push),必须在原生架构上编译再复制到目标平台——这在构建 ARM64 镜像时尤为重要。
局限性一:写操作需谨慎开启
sync_application 和 run_resource_action 属于写操作,代码中有 MCP_READ_ONLY 环境变量控制是否允许。但默认值是允许所有操作,AI 助手在错误指令下可能触发意外 Sync。
局限性二:日志能力有上限
get_application_workload_logs 依赖 K8s Pod Log API,无法查看已终止/历史 Pod 的日志。对于需要持久化日志的场景,仍需对接专门的日志聚合系统(Loki/ELK)。
局限性三:TypeScript 类型生成的维护负担
src/types/argocd.d.ts 从 Swagger JSON 自动生成,Argo CD API 升级时需重新运行 pnpm run generate-types。若忘记更新,可能出现类型不匹配的隐蔽 Bug。
MCP 协议正在成为 AI 时代"工具调用"的事实标准。继数据库、文件系统、浏览器之后,基础设施管理(CI/CD、监控、告警)正在成为 MCP 生态的新边疆。argoproj-labs/mcp-for-argocd 的出现,意味着:
作为一个 2025 年新生的项目,argoproj-labs/mcp-for-argocd 已经展现出清晰的工程品味(类型安全、多传输协议、Token 安全设计)。随着 MCP 协议的普及和 Claude/Cursor 等 AI 助手渗透到开发日常,这类"AI + 运维基础设施"的工具链有望迎来爆发式增长。