/ Annuaire / Playground / Cloudflare API
● Officiel cloudflare 🔑 Nécessite votre clé

Cloudflare API

par cloudflare · cloudflare/mcp

Gérez Cloudflare DNS, zones, WAF, analytique et Workers depuis Claude — avec des tokens API limités en portée et l'habitude du dry-run.

L'API MCP Cloudflare transforme l'API REST Cloudflare complète en outils : zones, enregistrements DNS, règles de page, règles de pare-feu, analytique, SSL, Workers, R2, KV, et bien d'autres. Utilisez un token API à portée restreinte (et non une clé API globale) et traitez les écritures comme des changements d'infrastructure — aperçu, application, vérification.

Pourquoi l'utiliser

Fonctionnalités clés

Démo en direct

Aperçu en pratique

cloudflare-api.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": {
    "cloudflare-api": {
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp"
      ]
    }
  }
}

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

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "cloudflare-api": {
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp"
      ]
    }
  }
}

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": {
    "cloudflare-api": {
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp"
      ]
    }
  }
}

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

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "cloudflare-api": {
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp"
      ]
    }
  }
}

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

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "cloudflare-api",
      "command": "npx",
      "args": [
        "-y",
        "@cloudflare/mcp"
      ]
    }
  ]
}

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

~/.config/zed/settings.json
{
  "context_servers": {
    "cloudflare-api": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@cloudflare/mcp"
        ]
      }
    }
  }
}

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

claude mcp add cloudflare-api -- npx -y @cloudflare/mcp

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

Cas d'usage

Usages concrets : Cloudflare API

Audit des enregistrements DNS dans toutes les zones pour détecter les dérives

👤 Équipes plateforme / SRE ⏱ ~25 min intermediate

Quand l'utiliser : Vous gérez 40 zones et souhaitez savoir lesquelles ont des TTL inhabituels, des SPF/DMARC manquants ou des CNAME invalides.

Prérequis
  • Token API avec Zone:Zone:Read, Zone:DNS:Read — Tableau de bord Cloudflare → Mon profil → Tokens API → Créer
Déroulement
  1. Énumérez les zones et comptez les enregistrements par type
    Énumérez toutes les zones de mon compte. Pour chacune, comptez les enregistrements par type (A, CNAME, TXT, MX).✓ Copié
    → Matrice d'inventaire
  2. Vérifier l'hygiène de l'authentification par e-mail
    Pour chaque zone utilisée pour les e-mails, vérifiez la présence de SPF (TXT contenant 'v=spf1'), DMARC TXT à _dmarc et enregistrements TXT de sélecteur DKIM. Signalez les manquants.✓ Copié
    → Rapport des lacunes d'authentification par e-mail
  3. Trouvez les CNAME invalides
    Pour chaque CNAME dans chaque zone, résolvez la cible. Signalez NXDOMAIN ou SERVFAIL comme invalides.✓ Copié
    → Liste des CNAME risqués

Résultat : Un rapport d'hygiène DNS zone par zone que vous pouvez remettre à l'équipe qui gère chaque domaine.

Pièges
  • Les CNAME invalides sont des risques de prise de contrôle de sous-domaine — Tout CNAME NXDOMAIN est immédiatement escaladé — supprimer ou corriger
Combiner avec : filesystem

Ajouter ou mettre à jour un enregistrement DNS avec un flux d'aperçu/application

👤 Toute personne sur le point de faire un changement DNS dont elle est anxieuse ⏱ ~10 min beginner

Quand l'utiliser : Changement de fournisseur de messagerie, ajout d'un nouveau CNAME pour un service — changements DNS critiques.

Prérequis
  • Token avec Zone:DNS:Edit sur la zone cible — Limitez le token à la seule zone que vous modifiez
Déroulement
  1. Afficher l'état actuel
    Pour la zone <zone>, affichez tous les enregistrements pour le nom '<name>' et le type <type>. Statut proxifié et TTL.✓ Copié
    → État actuel de l'enregistrement
  2. Proposer le changement, ne pas appliquer
    Proposez un correctif : <décrivez le changement>. Affichez l'appel API exact et le avant/après. N'exécutez PAS encore.✓ Copié
    → Aperçu diff
  3. Appliquer après confirmation
    Je confirme. Appliquez le changement. Puis relisez l'enregistrement pour confirmer. Aussi, videz le cache pour le nom impacté.✓ Copié
    → Enregistrement mis à jour + cache vidé + lecture de vérification

Résultat : Un changement DNS avec une étape de révision et une vérification post-changement — aucune surprise.

Pièges
  • CNAME proxifié (cloud orange) vers un serveur de messagerie casse les e-mails — Toujours proxied:false pour MX, CNAME liés à SPF et enregistrements non-HTTP

Déployer une limite de débit d'urgence pendant un pic de trafic

👤 SRE répondant à une attaque DDoS L7 ou à un client incontrôlé ⏱ ~15 min advanced

Quand l'utiliser : Le trafic augmente et l'origine est en difficulté. Vous devez l'amortir en quelques minutes.

Prérequis
  • Token avec Zone:Zone WAF:Edit sur la zone — Token de réponse aux incidents dédié conservé dans un gestionnaire de mots de passe
Déroulement
  1. Identifier le motif
    Extrayez les analyses de la dernière heure pour la zone <zone>. Top 10 chemins, top agents utilisateur, top pays par nombre de requêtes. Mettez en évidence les anomalies.✓ Copié
    → Candidats aux anomalies
  2. Créer une règle de limite de débit
    Créez une règle de limite de débit WAF : 60 req/min par IP sur le chemin /<hot path>, action : challenge. Enregistrez le nombre de correspondances après 2 minutes.✓ Copié
    → Règle créée + correspondances en streaming
  3. Restaurer quand c'est sûr
    Une fois que l'état de santé de l'origine est vert pendant 30 min, désactivez (ne supprimez pas) la règle. Laissez une description étiquetée 'incident-<id>' pour audit.✓ Copié
    → Règle désactivée ; entrée d'audit conservée

Résultat : Attaque atténuée avec une règle que vous pouvez réactiver ou affiner — aucune dérive de configuration permanente.

Pièges
  • Le blocage généralisé par pays supprime les utilisateurs légitimes — Commencez toujours par Challenge ou JS-Challenge, pas Block ; observez puis renforcez
Combiner avec : sentry

Purger le cache Cloudflare pour des URL spécifiques après un déploiement

👤 Développeurs frontend expédiant des mises à jour d'actifs statiques ⏱ ~10 min beginner

Quand l'utiliser : Post-déploiement : les hashes CSS/JS ont changé, vous voulez que les utilisateurs obtiennent la nouvelle version immédiatement.

Déroulement
  1. Énumérez les fichiers à purger
    Ma compilation a changé ces URL : [liste]. Confirmez que chacune est mise en cache au bord CF (HEAD + cf-cache-status).✓ Copié
    → Actuellement cache hit/miss par URL
  2. Purger par URL
    Purgez exactement ces URL sur la zone <zone>. N'effectuez PAS purge-everything.✓ Copié
    → Travail de purge accepté
  3. Vérifier la récupération fraîche
    Après 10 secondes, HEAD chaque URL à nouveau — cf-cache-status devrait être MISS ou REVALIDATED.✓ Copié
    → État de cache frais

Résultat : Buste de cache ciblé, aucune purge de zone complète accidentelle (qui tue votre origine au rechargement).

Pièges
  • Purge-everything envoie un troupeau tonnerre à l'origine — N'appelez jamais purge_all sauf si vous avez réchauffé un chemin alternatif ; purge-by-url est presque toujours suffisant
Combiner avec : github

Ensemencer KV Workers à partir d'un fichier JSON local

👤 Ingénieurs déployant une API basée sur Workers ⏱ ~15 min intermediate

Quand l'utiliser : Vous maintenez des données de configuration/feature-flag dans KV et souhaitez synchroniser à partir d'une source locale de vérité.

Prérequis
  • Token avec Workers KV Storage: Edit — Limitez à l'ID d'espace de noms spécifique
Déroulement
  1. Lisez la source locale
    Lisez /config/kv.json. Validez-le en tant qu'objet {key: value}.✓ Copié
    → Configuration analysée
  2. Diff par rapport au KV actuel
    Énumérez les clés dans l'espace de noms <id>. Calculez les ajouts / mises à jour / suppressions par rapport à mon fichier local.✓ Copié
    → Plan de changement
  3. Appliquer via une écriture en masse
    Utilisez l'écriture en masse pour les changements. Supprime uniquement si je confirme — montrez d'abord quelles clés seraient supprimées.✓ Copié
    → Écriture en masse ok ; suppressions examinées

Résultat : Espace de noms KV réconcilié avec votre fichier source, assez atomiquement.

Pièges
  • La cohérence KV finale signifie que les lecteurs peuvent toujours voir d'anciennes valeurs pendant ~60s — Si vous avez besoin de cohérence forte, utilisez D1 ou Durable Objects à la place
Combiner avec : filesystem

Résumé hebdomadaire du trafic et des menaces provenant de Cloudflare Analytics

👤 Produit / croissance + sécurité ⏱ ~20 min intermediate

Quand l'utiliser : Digest du vendredi : quel est notre motif de trafic, quelles menaces avons-nous bloquées ?

Déroulement
  1. Tirez les totaux
    Pour la zone <zone> 7 derniers jours : total des requêtes, bande passante, menaces bloquées, top 10 pays.✓ Copié
    → Chiffres de titre
  2. Meilleurs chemins et référents
    Top 20 chemins par requêtes ; top 10 référents. Mettez en évidence les changements par rapport à la semaine précédente.✓ Copié
    → Tableau de croissance/régression
  3. Résumé des événements pare-feu
    Top déclencheurs de règles pare-feu au cours des 7 derniers jours. Toute règle jamais déclenchée — candidats au nettoyage.✓ Copié
    → Rapport de santé de l'ensemble de règles

Résultat : Hebdomadaire d'une page avec trafic, menaces et santé des règles.

Pièges
  • L'analytique du plan gratuit est échantillonnée — Pour des données précises, utilisez Logpush / GraphQL Analytics API avec un plan Pro+
Combiner avec : notion

Combinaisons

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

cloudflare-api + github

À la fusion vers main, purgez le cache des URL d'actifs déployés

PR #342 fusionnée ; son diff a changé /static/app.a1b2.js. Purgez cette URL sur la zone <zone>, vérifiez avec HEAD.✓ Copié
cloudflare-api + sentry

Corrélation un pic de trafic Sentry avec des données d'événements pare-feu

Sentry montre un pic 5xx à 14:02. Extrayez l'analytique CF pour 14:00-14:05 pour la même zone ; corrélation avec les événements pare-feu.✓ Copié
cloudflare-api + filesystem

Synchronisez un fichier de configuration de zone local dans Cloudflare (GitOps-lite)

Lisez /dns/mydomain.yaml ; réconciliez avec l'état de zone actuel ; appliquez en toute sécurité avec révision.✓ Copié

Outils

Ce que ce MCP expose

OutilEntréesQuand appelerCoût
list_zones Découvrez les zones du compte gratuit
list_dns_records zone_id, type?, name? Avant toute édition DNS — inspectez l'état actuel gratuit
create_dns_record / update_dns_record / delete_dns_record zone_id, record Mutations DNS (nécessitent un token Edit) gratuit
purge_cache zone_id, files?|tags?|hosts?|everything? Buste de cache après déploiement gratuit
list_firewall_rules / create_firewall_rule zone_id, ... Réponse aux incidents / renforcement gratuit
analytics_dashboard zone_id, since, until Rapports de trafic gratuit
kv_list / kv_get / kv_put / kv_bulk namespace_id, key/value Opérations KV Workers facturé au-delà du niveau gratuit
deploy_worker script name, script content, bindings? Livrer un Worker gratuit jusqu'aux limites

Coût et limites

Coût d'exécution

Quota d'API
1200 requêtes par 5 minutes par utilisateur (limite de taux global Cloudflare)
Tokens par appel
Énumération DNS : 200–1000 tokens par page. Analytique : jusqu'à 3000.
Monétaire
API gratuite. Payante pour Workers payants/KV au-delà du niveau gratuit ; les plans commencent Gratuit / Pro $20/mois / Business $200/mois.
Astuce
Préférez l'énumération + filtrage côté serveur (type, name) au côté client pour économiser les tokens et la pagination.

Sécurité

Permissions, secrets, portée

Portées minimales : Zone:Zone:Read Zone:DNS:Read (ajoutez :Edit uniquement pour les zones spécifiques qui nécessitent des écritures)
Stockage des identifiants : CLOUDFLARE_API_TOKEN dans env — jamais la clé API globale
Sortie de données : Tous les appels à api.cloudflare.com
Ne jamais accorder : Clé API globale (contrôle de compte complet) Account:Access:Edit sans examen au niveau du compte

Dépannage

Erreurs courantes et correctifs

10000 Erreur d'authentification

Token invalide ou manquant d'autorisation requise. Recréez avec la zone spécifique + permission.

Vérifier : curl -H 'Authorization: Bearer $CLOUDFLARE_API_TOKEN' https://api.cloudflare.com/client/v4/user/tokens/verify
81057 Enregistrement existe déjà

Un enregistrement avec ce nom+type+contenu existe déjà. Mettez à jour celui existant par id, ne créez pas.

Purge-by-URL retourne succès mais le cache continue de correspondre

L'URL doit correspondre exactement, y compris l'ordre de la chaîne de requête. Vérifiez aussi cf-cache-status — 'DYNAMIC' signifie qu'il n'était pas mis en cache de toute façon.

Limite de débit (429)

Atteint la limite de taux API global de Cloudflare. Arrière-plan, batch ou répartition de la charge de travail sur plusieurs tokens pour différents flux de travail.

Alternatives

Cloudflare API vs autres

AlternativeQuand l'utiliserCompromis
Cloudflare official MCP (other)Vous préférez la documentation Cloudflare/MCP orienté observabilité des WorkersSurface API plus étroite
Route 53 MCPVous êtes sur AWS et souhaitez Route53 DNSÉcosystème différent ; pas de CDN/WAF intégré

Plus

Ressources

📖 Lire le README officiel sur GitHub

🐙 Voir les issues ouvertes

🔍 Parcourir les 400+ serveurs MCP et Skills