Argo CD MCP Server
Argo CD MCP 服务器
这是一个用于 Argo CD 的 模型上下文协议 (MCP) 服务器实现,使 AI 助手能够通过自然语言与您的 Argo CD 应用程序进行交互。该服务器支持通过 stdio 和 HTTP 流传输协议与 Visual Studio Code 及其他 MCP 客户端无缝集成。
功能特性
传输协议:支持 stdio 和 HTTP 流传输模式,以便与不同的客户端灵活集成
完整的 Argo CD API 集成:提供对 Argo CD 资源和操作的全面访问
AI 助手就绪:为 AI 助手预配置了工具,以便用自然语言与 Argo CD 进行交互
可用工具
该服务器提供以下 ArgoCD 管理工具:
集群管理
list_clusters:列出所有在 ArgoCD 中注册的集群
应用程序管理
list_applications:列出并筛选所有应用程序get_application:获取特定应用程序的详细信息create_application:创建新应用程序update_application:更新现有应用程序delete_application:删除应用程序sync_application:触发应用程序的同步操作
资源管理
get_application_resource_tree:获取特定应用程序的资源树get_application_managed_resources:获取特定应用程序的托管资源get_application_workload_logs:获取应用程序工作负载(Pod、Deployment 等)的日志get_resource_events:获取应用程序所管理资源的事件get_resource_actions:获取资源可用的操作run_resource_action:对资源执行操作
安装
前置要求
Node.js(建议 v18 或更高版本)
pnpm 包管理器(用于开发)
具有 API 访问权限的 Argo CD 实例
Argo CD API 令牌(请参阅 文档说明)
在 Cursor 中使用
按照 Cursor 的 MCP 支持文档 操作,并在您的项目中创建
.cursor/mcp.json文件:
{
"mcpServers": {
"argocd-mcp": {
"command": "npx",
"args": [
"argocd-mcp@latest",
"stdio"
],
"env": {
"ARGOCD_BASE_URL": "<argocd_url>",
"ARGOCD_API_TOKEN": "<argocd_token>"
}
}
}
}启动 Agent 模式对话以使用 MCP。
在 VSCode 中使用
按照 在 VS Code 中使用 MCP 服务器文档 操作,并在您的项目中创建
.vscode/mcp.json文件:
{
"servers": {
"argocd-mcp-stdio": {
"type": "stdio",
"command": "npx",
"args": [
"argocd-mcp@latest",
"stdio"
],
"env": {
"ARGOCD_BASE_URL": "<argocd_url>",
"ARGOCD_API_TOKEN": "<argocd_token>"
}
}
}
}在支持 MCP 的 VS Code AI 助手中启动对话。
在 Claude Desktop 中使用
按照 Claude Desktop 中的 MCP 文档 操作,并创建一个
claude_desktop_config.json配置文件:
{
"mcpServers": {
"argocd-mcp": {
"command": "npx",
"args": [
"argocd-mcp@latest",
"stdio"
],
"env": {
"ARGOCD_BASE_URL": "<argocd_url>",
"ARGOCD_API_TOKEN": "<argocd_token>"
}
}
}
}在设置中配置 Claude Desktop 以使用此配置文件。
自签名证书
如果您的 Argo CD 实例使用自签名证书或来自私有证书颁发机构 (CA) 的证书,您可能需要在配置中添加以下环境变量:
"NODE_TLS_REJECT_UNAUTHORIZED": "0"这将在连接到使用自签名证书或系统证书存储不信任的私有 CA 证书的 Argo CD 实例时,禁用 Node.js 的 TLS 证书验证。
警告:禁用 SSL 验证会降低安全性。仅在开发环境中使用此设置,或者在您了解安全影响的情况下使用。
只读模式
如果您希望以只读模式运行 MCP 服务器以避免资源或应用程序被修改,您应该设置以下环境变量:
"MCP_READ_ONLY": "true"这将禁用以下工具:
create_applicationupdate_applicationdelete_applicationsync_applicationrun_resource_action
默认情况下,所有工具均可用。
无状态模式
默认情况下,HTTP 传输会为每个客户端连接分配一个会话 ID,并保留活动会话的内存映射。这适用于单实例部署,但在没有粘性会话的情况下运行多个副本时会导致 400 错误,因为路由到不同 Pod 的请求将无法找到在原始 Pod 上创建的会话。
要在没有会话亲和性要求的情况下运行,请使用 --stateless 标志启动服务器:
node dist/index.js http --stateless或者使用 Docker:
docker run -e ARGOCD_BASE_URL=<argocd_url> -e ARGOCD_API_TOKEN=<argocd_token> \
argoprojlabs/mcp-for-argocd http --stateless在无状态模式下:
不会返回或要求
Mcp-Session-Id—— 任何副本都可以处理任何请求ArgoCD 凭据必须通过环境变量或
x-argocd-base-url/x-argocd-api-token请求头在每个请求中提供GET /mcp和DELETE /mcp返回405 Method Not Allowed(不支持会话级 SSE 和终止)
此模式推荐用于具有水平 Pod 自动扩缩容 (HPA) 且没有网络级粘性会话的 Kubernetes 部署。
开发指南
克隆仓库:
git clone https://github.com/argoproj-labs/mcp-for-argocd.git
cd mcp-for-argocd安装项目依赖:
pnpm install启动带有热重载功能的开发服务器:
pnpm run dev服务器运行后,您就可以在 Visual Studio Code 或其他 MCP 客户端中使用该 MCP 服务器了。
升级 ArgoCD 类型
要根据最新的 Argo CD API 规范更新 TypeScript 类型定义:
从 ArgoCD 发布页面 下载
swagger.json文件,例如这是 ArgoCD v2.14.11 的 swagger.json 链接。将下载的
swagger.json文件放置在argocd-mcp项目的根目录下。通过运行以下命令从 Swagger 定义生成 TypeScript 类型。这将创建或覆盖
src/types/argocd.d.ts文件:pnpm run generate-types更新
src/types/argocd-types.ts文件,以导出新生成的src/types/argocd.d.ts中所需的类型。此步骤通常需要人工审查,以确保仅暴露必要的类型。
贡献者
该项目最初由 Akuity 的 @jiachengxu、@imwithye、@hwwn 和 @alexmt 创建并捐赠。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/argoproj-labs/mcp-for-argocd'
If you have feedback or need assistance with the MCP directory API, please join our Discord server