Token导航 LogoToken导航TokenDH.com
ArgoCD MCP logo
开发工具stdio官方级别未说明来源级核验

ArgoCD MCP

MCP Server

An MCP (Model Context Protocol) server that integrates with the ArgoCD API, enabling agentic tools to manage ArgoCD through natural language interactions.

工具数

0

提示词数

0

GitHub Stars

12

资源数

0
PythonClaude自然语言处理Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

severity1

提供方

severity1

最后核验

2026/5/18 03:27

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run server.py

详细介绍

ArgoCD MCP服务器

MCP(模型上下文协议)服务器,与ArgoCD API集成,使人工智能助手和大型语言模型能够通过自然语言交互管理ArgoCD应用程序和资源。

Python Type Checking

特性

  • 身份验证和会话管理:

- 从ArgoCD API检索用户信息 - ArgoCD基于令牌的身份验证 - 服务器设置和配置访问 - 插件信息检索 - 版本信息检索

  • 应用程序管理:

- 按项目、名称、命名空间列出和筛选应用程序 - 获取详细的应用程序信息 - 创建、更新和删除应用程序 - 使用可配置选项同步应用程序

  • 强大的API客户端:

- URL规范化和智能端点处理 - 全面的错误处理和详细的错误消息 - 可配置的超时和SSL验证 - 令牌安全保护和屏蔽

  • 开发者体验:

- 使用mypy进行完全静态类型检查 - 详细的文档和示例 - 基于环境的配置

快速开始

设置

# Clone the repository
git clone https://github.com/severity1/argocd-mcp.git
cd argocd-mcp

# Create virtual environment and activate it
uv venv
source .venv/bin/activate

# Install dependencies
uv pip install -e .

启动服务器

服务器是通过环境变量配置的。以下是可用的配置选项:

环境变量描述默认值
ARGOCD_TOKENArgoCD API代币
ARGOCD_API_URLArgoCD API终点https://argocd.example.com/api/v1
ARGOCD_VERIFY_SSL验证SSL证书true

您可以通过多种方式启动服务器:

# Using MCP dev tools (provides debugging tools)
export ARGOCD_TOKEN=YOUR_ARGOCD_TOKEN
mcp dev server.py

# Using MCP run command
export ARGOCD_TOKEN=YOUR_ARGOCD_TOKEN
mcp run server.py

# Standard method
export ARGOCD_TOKEN=YOUR_ARGOCD_TOKEN
uv run server.py

# Setting multiple environment variables
export ARGOCD_TOKEN=YOUR_ARGOCD_TOKEN
export ARGOCD_API_URL=https://your-argocd-server.com:9000/api/v1
export ARGOCD_VERIFY_SSL=false  # Disable SSL verification for self-signed certs
uv run server.py

# Using a .env file
echo "ARGOCD_TOKEN=YOUR_ARGOCD_TOKEN
ARGOCD_API_URL=https://your-argocd-server.com:9000/api/v1
ARGOCD_VERIFY_SSL=false" > .env
uv run server.py

# Run in background
export ARGOCD_TOKEN=YOUR_ARGOCD_TOKEN
uv run server.py > server.log 2>&1 & echo $! > server.pid

当通过环境变量提供令牌时,Claude可以使用它,而无需在每个命令中都指定它。

与克劳德联系

使用克劳德代码CLI

# Add the MCP server
claude mcp add argocd-mcp "uv run $(pwd)/server.py"

# With token
claude mcp add argocd-mcp -e ARGOCD_TOKEN=YOUR_ARGOCD_TOKEN -- "uv run $(pwd)/server.py"

# Verify it was added
claude mcp list

# For debugging, you can use MCP Inspector with 'mcp dev' command

使用克劳德桌面

创建一个 claude_desktop_config.json 配置文件:

{
  "mcpServers": {
    "argocd-mcp": {
      "command": "/path/to/uv",
      "args": [
        "--directory",
        "/path/to/argocd-mcp",
        "run",
        "server.py"
      ],
      "env": {
        "ARGOCD_TOKEN": "your_argocd_token",
        "ARGOCD_API_URL": "https://your-argocd-server.com/api/v1",
        "ARGOCD_VERIFY_SSL": "true"
      }
    }
  }
}

将路径和配置值替换为实际值:

  • 使用uv可执行文件的完整路径(使用 which uv 在macOS/Linux或 where uv 在Windows上)
  • 为argocd-mcp安装设置正确的目录路径
  • 添加您的ArgoCD API代币
  • 根据需要配置其他环境变量

此配置告诉告诉您如何使用特定的环境设置自动启动MCP服务器。

可用工具

会话工具

  • get_user_info:通过api/v1/session/userinfo获取当前用户的信息

设置工具

  • get_settings:获取ArgoCD服务器设置,包括UI、OIDC和其他配置
  • get_plugins:获取有关已配置ArgoCD插件的信息

版本工具

  • get_version:获取API服务器的版本信息

应用程序管理工具

  • list_applications:获取所有具有筛选选项的应用程序
  • get_application_details:获取特定应用程序的详细信息
  • create_application:创建新应用程序
  • update_application:更新现有应用程序
  • delete_application:删除应用程序
  • sync_application:在应用程序上触发同步操作

对话示例

检查用户信息

User: What's my user information in ArgoCD?

Claude: Let me retrieve your user information.

⏺ argocd-mcp:get_user_info (MCP)
  ⎿  {"loggedIn": true, "username": "devops-user", "iss": "argocd"}

You are logged in as 'devops-user'.

获取ArgoCD版本

User: What version of ArgoCD is running on the server?

Claude: Let me check the ArgoCD version information.

⏺ argocd-mcp:get_version (MCP)
  ⎿  {
        "Version": "v2.9.3+5eaf684",
        "BuildDate": "2023-09-15T14:25:11Z",
        "GitCommit": "5eaf68452",
        "GitTreeState": "clean",
        "GoVersion": "go1.20.7",
        "Compiler": "gc",
        "Platform": "linux/amd64",
        "KustomizeVersion": "v5.1.1",
        "HelmVersion": "v3.12.3",
        "KubectlVersion": "v1.27.4",
        "JsonnetVersion": "v0.20.0"
      }

You're running ArgoCD v2.9.3, built on September 15, 2023. It's running on Linux (amd64) with Go 1.20.7, and includes Kustomize v5.1.1 and Helm v3.12.3.

获取ArgoCD设置

User: Show me the ArgoCD server settings

Claude: Let me retrieve the ArgoCD server settings for you.

⏺ argocd-mcp:get_settings (MCP)
  ⎿  {
        "clusterSettings": {
          "appLabelKey": "argocd.argoproj.io/instance",
          "controllerNamespace": "argocd",
          "execEnabled": true,
          "statusBadgeEnabled": true,
          "uiBannerContent": "This is a development instance of ArgoCD",
          "url": "https://argocd.example.com"
        }
      }

Here are the key settings for your ArgoCD server:
- URL: https://argocd.example.com
- Controller namespace: argocd
- Exec enabled: Yes
- Status badge enabled: Yes
- UI Banner: "This is a development instance of ArgoCD"

管理应用程序

User: What applications do I have in the "production" project?

Claude: Let me list your applications in the production project.

⏺ argocd-mcp:list_applications (MCP)
  ⎿  {
        "items": [
          {
            "metadata": {
              "name": "frontend-app",
            },
            "status": {
              "sync": {"status": "Synced"},
              "health": {"status": "Healthy"},
            }
          },
          {
            "metadata": {
              "name": "api-service",
            },
            "status": {
              "sync": {"status": "OutOfSync"},
              "health": {"status": "Healthy"},
            }
          },
          {
            "metadata": {
              "name": "database",
            },
            "status": {
              "sync": {"status": "Synced"},
              "health": {"status": "Degraded"},
            }
          }
        ]
      }

You have 3 applications in the production project:
- frontend-app (Synced, Healthy)
- api-service (OutOfSync, Healthy)
- database (Synced, Degraded)
User: Sync the api-service application

Claude: I'll sync the api-service application for you.

⏺ argocd-mcp:sync_application (MCP)
  ⎿  {
        "resourcesResult": {
          "updated": ["Deployment/api-service"],
          "hooks": []
        },
        "status": "Syncing"
      }

Application sync initiated successfully. The sync operation is now in progress.

发展

需求

  • Python 3.12+
  • MCP(包括FastMCP和开发工具)
  • uv包管理器(推荐)或pip
  • Argocd API代币

类型检查

该项目使用mypy进行静态类型检查,以提高代码质量并及早发现与类型相关的错误:

# Install mypy
uv pip install mypy

# Run type checking
uv run -m mypy .

类型检查配置在两者中都可用 pyproject.tomlmypy.ini该配置强制执行严格的键入规则,包括:

  • 不允许非类型化定义
  • 退货警告任何类型
  • 检查函数定义的完整性
  • 命名空间包支持
  • 模块特定配置

项目结构

代码被组织成模块化结构:

argocd-mcp/
├── api/              # API client and communication
│   ├── __init__.py
│   └── client.py     # HTTP client for ArgoCD API
├── models/           # Data models
│   ├── __init__.py
│   └── applications.py # Application data structures
├── tools/            # MCP tools implementation
│   ├── __init__.py
│   ├── session.py    # Session tools (user info)
│   ├── applications.py # Application management tools
│   ├── settings.py   # Server settings tools
│   └── version.py    # Version information tools
├── utils/            # Utility functions
│   ├── __init__.py
├── server.py         # Main server entry point
├── pyproject.toml    # Project configuration and dependencies
└── mypy.ini          # Mypy type checking configuration

扩展服务器

要添加新功能,请执行以下操作:

  1. 将新工具添加到中的相应模块 tools 目录
  2. 在中注册新工具 server.py
  3. 遵循现有的模式进行参数验证和错误处理
  4. 更新README.md中的文档
  5. 添加新功能的测试

故障排除

如果您遇到问题:

  1. 检查服务器日志(默认情况下启用信息记录)
  2. 请注意 Processing request of type CallToolRequest 是信息性的,不是错误
  3. 如果使用 mcp dev server.py,MCP检查器将在以下时间自动打开http://localhost:5173用于调试
  4. 使用服务器日志调试API调用和响应
  5. 对于带有自签名证书的SSL证书问题:
# Disable SSL verification
export ARGOCD_VERIFY_SSL=false
uv run server.py
  1. 检查是否正确设置了所有必需的环境变量:
# Show all current ArgoCD environment variables
env | grep ARGOCD

贡献

欢迎投稿!如果你想为这个项目做出贡献,请打开一个问题或拉取请求。

投稿时,请遵循以下准则:

  • 确保所有代码都包含正确的类型提示
  • 在提交PR之前运行mypy类型检查
  • 添加新功能的测试
  • 更新文档以了解任何新功能或更改

目录标签

目录标签

PythonClaude自然语言处理developer-toolsArgoCD集成本地部署应用管理AI助手API客户端

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

remote-capable

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP