/ Annuaire / Playground / ArgoCD
● Officiel argoproj-labs 🔑 Nécessite votre clé

ArgoCD

par argoproj-labs · argoproj-labs/mcp-for-argocd

Inspectez, comparez et synchronisez les applications ArgoCD depuis Claude — état du cluster GitOps sans changer de contexte kubectl.

MCP d'ArgoProj Labs encapsule l'API ArgoCD : listez les applications, consultez le statut de synchronisation/santé, comparez l'état désiré et l'état en direct, déclenchez des synchronisations et lisez les manifestes d'application. Jetons d'accès en lecture seule pour l'observabilité, en écriture seulement quand vous devez explicitement synchroniser ou remplacer.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

argocd.replay ▶ prêt
0/0

Installer

Choisissez votre client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "argocd": {
      "command": "uvx",
      "args": [
        "mcp-for-argocd"
      ]
    }
  }
}

Ouvrez Claude Desktop → Settings → Developer → Edit Config. Redémarrez après avoir enregistré.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "argocd": {
      "command": "uvx",
      "args": [
        "mcp-for-argocd"
      ]
    }
  }
}

Cursor utilise le même schéma mcpServers que Claude Desktop. La config projet l'emporte sur la globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "argocd": {
      "command": "uvx",
      "args": [
        "mcp-for-argocd"
      ]
    }
  }
}

Cliquez sur l'icône MCP Servers dans la barre latérale Cline, puis "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "argocd": {
      "command": "uvx",
      "args": [
        "mcp-for-argocd"
      ]
    }
  }
}

Même format que Claude Desktop. Redémarrez Windsurf pour appliquer.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "argocd",
      "command": "uvx",
      "args": [
        "mcp-for-argocd"
      ]
    }
  ]
}

Continue utilise un tableau d'objets serveur plutôt qu'une map.

~/.config/zed/settings.json
{
  "context_servers": {
    "argocd": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-for-argocd"
        ]
      }
    }
  }
}

Ajoutez dans context_servers. Zed recharge à chaud à la sauvegarde.

claude mcp add argocd -- uvx mcp-for-argocd

Une seule ligne. Vérifiez avec claude mcp list. Supprimez avec claude mcp remove.

Cas d'usage

Usages concrets : ArgoCD

Trouvez les applications ArgoCD qui se sont désynchronisées

👤 Équipes Platform / SRE exécutant GitOps ⏱ ~20 min intermediate

Quand l'utiliser : Hebdomadairement : quelles applications dans quels clusters sont OutOfSync ou Degraded, et pourquoi ?

Prérequis
  • Jeton API ArgoCD avec accès en lecture — argocd account generate-token --account <read-only-user>
  • URL du serveur ArgoCDARGOCD_SERVER=argocd.my.company.com
Déroulement
  1. Listez les applications avec leur statut
    Listez toutes les applications ArgoCD. Pour chacune : nom, projet, statut de synchronisation, statut de santé, heure de dernière synchronisation.✓ Copié
    → Inventaire complet
  2. Concentrez-vous sur la désynchronisation
    Filtrez les applications avec syncStatus != 'Synced' ou health != 'Healthy'. Classez par temps écoulé depuis la dernière synchronisation.✓ Copié
    → Liste des applications problématiques
  3. Comparez une application spécifique
    Pour l'application <name>, montrez la différence entre l'état désiré (git) et l'état en direct. Quelles ressources ne sont pas synchronisées ?✓ Copié
    → Diff au niveau des ressources

Résultat : Un rapport de désynchronisation hebdomadaire identifiant quelles applications nécessitent une attention et pourquoi.

Pièges
  • Désynchronisation causée par une ressource légitime d'exécution uniquement (par ex. réplicas mis à l'échelle par HPA) — Configurez ignoreDifferences dans la spécification Application pour exclure les champs qui changent au moment de l'exécution
Combiner avec : notion

Examinez et appliquez une synchronisation pour une application spécifique

👤 Ingénieurs DevOps promouvant des changements ⏱ ~15 min intermediate

Quand l'utiliser : Une PR fusionnée dans main ; ArgoCD affiche l'application comme OutOfSync en attente de votre approbation.

Prérequis
  • Jeton avec autorisation de synchronisation sur le projet cible — Role with applications, sync, <project>/* allowed
Déroulement
  1. Inspectez le changement en attente
    Pour l'application <name>, montrez la différence. Quelles ressources changent, quel est le rayon de l'explosion ?✓ Copié
    → Diff concret
  2. Vérifiez le commit source
    À quel SHA de commit l'état désiré pointe-t-il ? Montrez le message de commit GitHub et la PR.✓ Copié
    → Contexte de commit + PR
  3. Synchronisez d'abord avec prune=false
    Déclenchez la synchronisation pour <name> avec prune=false, dryRun=false. Attendez la fin, montrez le statut final.✓ Copié
    → Sync Succeeded; health Healthy

Résultat : Un déploiement avec examen préalable, pas une surprise ; la suppression par prune n'arrive que de manière explicite.

Pièges
  • La synchronisation avec prune=true peut supprimer les ressources dont vous avez encore besoin — Commencez toujours avec prune=false ; activez prune seulement quand vous avez confirmé qu'aucune ressource créée manuellement n'existe dans l'espace de noms
Combiner avec : github

Restauration d'urgence vers une révision git antérieure

👤 SRE lors d'un incident de mauvais déploiement ⏱ ~15 min advanced

Quand l'utiliser : Un déploiement s'est fait, les erreurs ont augmenté, et vous devez revenir à la dernière version connue comme bonne.

Déroulement
  1. Obtenez l'état actuel + l'historique
    Pour l'application <name>, montrez la révision actuelle et les 5 dernières révisions déployées avec horodatages.✓ Copié
    → Tableau d'historique
  2. Choisissez la cible de restauration
    Quelle était la révision il y a 2 synchronisations ? Confirmez que son SHA correspond au commit git avant le début de l'incident.✓ Copié
    → SHA cible identifié
  3. Restaurez
    Synchronisez <name> vers la révision <SHA> avec prune=false. Regardez jusqu'à Healthy. Postez dans Teams quand c'est fait.✓ Copié
    → Application restaurée + notification envoyée

Résultat : Une restauration propre avec une piste d'audit, généralement en moins de 5 minutes.

Pièges
  • Restaurer seulement l'application mais la migration DB a déjà avancé — Les migrations DB ont besoin de leur propre plan de restauration ; parfois 'avancer' avec un correctif est plus sûr que de restaurer du code contre un schéma muté
Combiner avec : sentry · ms-teams

Construisez un inventaire d'applications inter-clusters

👤 Équipes Platform gérant de nombreux clusters ⏱ ~20 min intermediate

Quand l'utiliser : Vous exécutez ArgoCD dans un modèle hub-spoke et voulez une liste plate : 'quelles applications s'exécutent où'.

Déroulement
  1. Listez les clusters qu'ArgoCD gère
    Listez tous les clusters enregistrés dans ArgoCD avec leur nom et URL de serveur.✓ Copié
    → Inventaire de clusters
  2. Cartographiez les applications aux clusters
    Pour chaque application, montrez son cluster de destination et son espace de noms. Groupez par cluster.✓ Copié
    → Liste des applications par cluster
  3. Signalez les placements inhabituels
    Une application déployée dans un cluster inattendu (par ex. application 'prod-only' dans un cluster dev) ? Signalez avec raison.✓ Copié
    → Liste des anomalies

Résultat : Une carte à jour de ce qui s'exécute où, utile pour les audits et la planification de la capacité.

Pièges
  • Entrées de cluster obsolètes — secrets supprimés mais cluster toujours listé — Vérifiez périodiquement que chaque cluster est accessible ; supprimez les obsolètes

Combinaisons

Associez-le à d'autres MCPs pour un effet X10

argocd + github

Référencez croisé la synchronisation Argo avec la PR qui l'a causée

Pour l'application <name>, montrez le SHA de révision actuel ; récupérez la PR GitHub qui l'a introduite et résumez le changement.✓ Copié
argocd + sentry

Corrélinez une synchronisation Argo avec une augmentation d'erreur post-déploiement

L'application <name> s'est synchronisée à 14:02 ; les erreurs Sentry ont-elles augmenté après ? Si oui, montrez le problème principal introduit.✓ Copié
argocd + ms-teams

Postez les événements de synchronisation/restauration sur un canal Teams

Après toute synchronisation manuelle de l'application <name>, postez un message sur Teams #deploys avec le SHA de révision et qui l'a déclenché.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
list_applications project?, selector? Inventoriez les applications gratuit
get_application name État détaillé d'une application spécifique gratuit
get_application_diff name, revision? Prévisualisez les changements d'une synchronisation gratuit
sync_application name, revision?, prune?, dryRun?, resources? Appliquez les changements en attente gratuit (triggers cluster work)
get_application_resource_tree name Inspectez les ressources en direct qu'une application possède gratuit
list_clusters Inventaire inter-clusters gratuit

Coût et limites

Coût d'exécution

Quota d'API
Limité par la capacité de votre serveur ArgoCD ; limite pratique ~10 req/s
Tokens par appel
Liste d'applications : 500–3000 jetons. Diff : jusqu'à 5000.
Monétaire
Gratuit — ArgoCD est open source, vous ne payez que pour l'infrastructure qui l'héberge.
Astuce
Mettez en cache la liste d'applications ; utilisez des sélecteurs (project, label) pour réduire les requêtes plutôt que de tout lister.

Sécurité

Permissions, secrets, portée

Portées minimales : lire sur les applications, clusters pour les sessions en lecture seule
Stockage des identifiants : ARGOCD_AUTH_TOKEN et ARGOCD_SERVER dans env
Sortie de données : Appels à votre serveur ArgoCD seulement
Ne jamais accorder : admin synchronisation sur tous les projets sans raison account:update

Dépannage

Erreurs courantes et correctifs

401 Unauthenticated

ARGOCD_AUTH_TOKEN expiré ou révoqué. Régénérez via argocd account generate-token.

Vérifier : argocd account get-user-info --auth-token $ARGOCD_AUTH_TOKEN
403 Permission denied on sync

Le rôle manque de l'autorisation applications, sync, <project>/*. Mettez à jour AppProject ou le rôle du compte.

Sync stuck in Progressing for >10 min

Généralement une ressource bloquée — vérifiez resource-tree pour un hook défaillant ou un contrôleur bloqué ; peut nécessiter une intervention manuelle dans le cluster.

Diff shows unexpected drift on every sync

Contrôleurs mutant les champs au moment de l'exécution. Ajoutez ignoreDifferences à la spécification Application pour ces champs.

Alternatives

ArgoCD vs autres

AlternativeQuand l'utiliserCompromis
Flux MCPVous utilisez Flux au lieu d'ArgoCD pour GitOpsMoteur GitOps différent ; modèle CLI-first
Kubernetes MCP (raw kubectl)Vous voulez un accès direct au cluster sans abstraction GitOpsImpératif — défait l'objectif de GitOps pour les applications gérées

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills