使用说明
项目简介
ArgoCD MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在桥接自然语言处理能力和 ArgoCD GitOps 系统。通过此服务器,用户可以使用 AI 助手和大型语言模型,以自然语言的方式查询 ArgoCD 中的应用程序信息、服务器设置、版本信息,并执行应用程序管理操作,例如创建、更新、删除和同步应用程序。
主要功能点
- 用户认证与会话管理:从 ArgoCD API 获取用户信息,支持基于 Token 的认证,并能访问服务器配置和插件信息。
- 应用程序管理:支持列出和过滤应用程序,获取应用详情,创建、更新、删除和同步应用程序。
- API 客户端:提供健壮的 ArgoCD API 客户端,处理 URL 规范化、错误处理、超时和 SSL 验证,保障Token安全。
- 开发者友好:代码具备完整的静态类型检查、详细文档和示例,以及基于环境变量的配置。
- 丰富的工具集:提供用于会话管理、服务器设置、版本信息和应用程序管理的工具,方便 LLM 进行调用。
安装步骤
- 克隆仓库
git clone https://github.com/severity1/argocd-mcp.git cd argocd-mcp - 创建并激活虚拟环境 (推荐使用 uv 或 pip)
uv venv # 或 python3 -m venv .venv source .venv/bin/activate # 或 source .venv/Scripts/activate (Windows) - 安装依赖
uv pip install -e . # 或 pip install -e .
服务器配置
MCP 客户端(例如 Claude)需要配置 MCP 服务器的启动命令和参数才能连接。以下是 'claude_desktop_config.json' 的配置示例,用于 Claude Desktop 客户端:
{ "mcpServers": { "argocd-mcp": { "command": "/path/to/uv", // uv 执行文件的完整路径,可以使用 'which uv' 或 'where uv' 查找 "args": [ "--directory", // 指定工作目录 "/path/to/argocd-mcp", // argocd-mcp 仓库的完整路径 "run", // 运行命令 "server.py" // 服务器启动脚本 ], "env": { "ARGOCD_TOKEN": "YOUR_ARGOCD_TOKEN", // 必须配置,ArgoCD API Token "ARGOCD_API_URL": "https://your-argocd-server.com/api/v1", // 可选,ArgoCD API URL,默认为 https://argocd.example.com/api/v1 "ARGOCD_VERIFY_SSL": "true" // 可选,是否验证 SSL 证书,默认为 true } } } }
注意:
- 请将 '/path/to/uv' 和 '/path/to/argocd-mcp' 替换为实际路径。
- 'ARGOCD_TOKEN' 必须配置,请替换为你的 ArgoCD API Token。
- 'ARGOCD_API_URL' 和 'ARGOCD_VERIFY_SSL' 为可选配置,可以根据你的 ArgoCD 环境进行设置。
基本使用方法
- 启动服务器 根据仓库 'README.md' 提供的 "Starting the Server" 部分,选择合适的方式启动服务器。例如,使用 'uv run server.py' 命令,并确保已设置 'ARGOCD_TOKEN' 等环境变量。
- 连接 Claude
- Claude Code CLI: 使用 'claude mcp add' 命令添加 MCP 服务器,例如:
或带 Token 的方式:claude mcp add argocd-mcp "uv run $(pwd)/server.py"claude mcp add argocd-mcp -e ARGOCD_TOKEN=YOUR_ARGOCD_TOKEN -- "uv run $(pwd)/server.py" - Claude Desktop: 配置 'claude_desktop_config.json' 文件,并确保 Claude Desktop 客户端加载了该配置文件。
- Claude Code CLI: 使用 'claude mcp add' 命令添加 MCP 服务器,例如:
- 使用自然语言与 ArgoCD 交互
连接成功后,即可在 Claude 中使用自然语言指令与 ArgoCD 进行交互,例如:
- "What's my user information in ArgoCD?" (查询用户信息)
- "What version of ArgoCD is running on the server?" (查询 ArgoCD 版本)
- "What applications do I have in the 'production' project?" (列出指定项目下的应用程序)
- "Sync the api-service application" (同步指定应用程序)
请参考 'README.md' 中的 "Example Conversations" 部分,了解更多使用示例。
信息
分类
开发者工具