Tech & Performance

MCP Klaviyo : auditer flows et segments avec Claude

MCP Klaviyo : le serveur hébergé par Klaviyo, ses plus de 260 outils, la connexion à Claude et à Claude Code, le mode lecture seule et les garde-fous à poser.

Publié le 07/10/2026Par Maxence Vanderswalmen

Klaviyo publie son propre serveur MCP. Une fois branché à Claude, il permet de poser des questions sur le compte (performance des campagnes, flows qui convertissent, segments) et, selon la configuration, de faire créer ou modifier des objets dans Klaviyo. Ce guide décrit ce que le serveur expose, qui peut l'autoriser, les trois façons de le connecter à Claude, les paramètres d'URL qui limitent ses droits, une séquence de demandes en lecture seule pour un audit, puis les garde-fous à poser avant de toucher au compte d'un client.

Les faits cités viennent des pages développeurs de Klaviyo et de la documentation de Claude Code, consultées le 6 octobre 2026. Les décomptes d'outils sont les nôtres, établis sur le tableau publié par Klaviyo à cette date.

Ce que le serveur Klaviyo expose

Klaviyo indique que son serveur expose plus de 260 outils, regroupés par catégories sur la page Available tools. Pour chaque outil, le tableau précise s'il est en lecture seule, s'il lit du contenu généré par les utilisateurs et s'il existe sur le serveur hébergé. Nous y comptons 267 lignes, dont 265 disponibles sur le serveur hébergé et 128 en lecture seule. Une partie des outils est marquée Beta et n'apparaît qu'avec le paramètre beta=true.

DomaineOutils de lecture (exemples)Outils qui écrivent ou envoient (exemples)
Campagnesget_campaigns, get_campaign, get_campaign_recipient_estimationcreate_campaign, update_campaign, send_campaign, cancel_campaign_send, delete_campaign
Flowsget_flows, get_flow, get_flow_message, get_flow_actioncreate_flow, update_flow (statut), update_flow_action, delete_flow
Rapportsget_campaign_report, get_flow_report, query_form_values, query_form_series, query_segment_values, query_segment_seriesAucun : les six outils de cette catégorie sont en lecture seule
Listes et segmentsget_lists, get_segments, get_flows_triggered_by_list, get_flows_triggered_by_segmentcreate_list, add_profiles_to_list, create_segment, update_segment, delete_segment
Profilsget_profiles, get_profileupdate_profile, subscribe_profile_to_marketing, unsubscribe_profile_from_marketing, bulk_suppress_profiles, merge_profiles
Événements et métriquesget_metrics, query_metric_aggregates, get_flows_triggered_by_metric, get_eventscreate_custom_metric, bulk_create_events, delete_custom_metric
Modèles d'e-maillist_email_templates, get_email_template, render_email_templatecreate_email_template, update_email_template, delete_email_template
Données personnellesAucunrequest_profile_deletion

La page couvre d'autres domaines : catalogues, coupons, étiquettes, webhooks, formulaires, avis, images, traductions, marque, agent client, domaines d'envoi et SMS. Le tableau indique aussi un outil de retour d'expérience, report_unsupported_task, disponible seulement si vous acceptez de partager l'intention de vos demandes avec Klaviyo.

Qui peut brancher le serveur

Klaviyo précise que le serveur hébergé n'est disponible que pour les utilisateurs ayant un rôle Owner, Admin ou Manager. Pour une agence, cela veut dire, à notre lecture, que la personne qui autorise la connexion est un administrateur côté client, ou un collaborateur auquel le client a accordé l'un de ces rôles. Le serveur s'authentifie par OAuth (avec enregistrement dynamique du client) et utilise le transport Streamable HTTP, selon la même page.

Trois façons de le connecter

Le connecteur listé de Claude

C'est la méthode que Klaviyo présente comme la plus simple pour un seul compte. Dans Claude, ouvrez Settings, Connectors, puis Browse Connectors, cherchez Klaviyo et connectez-le. Claude affiche ensuite l'accès demandé (Approve), puis Klaviyo affiche les permissions du compte (Allow). Les paramètres d'URL décrits plus bas ne s'appliquent pas à ce connecteur : Klaviyo précise qu'ils ne peuvent pas être contrôlés avec le connecteur listé.

Un connecteur personnalisé

Pour piloter plusieurs comptes ou régler les paramètres, Klaviyo recommande un connecteur personnalisé, réservé dans Claude et Claude Desktop aux offres Pro, Max, Team et Enterprise. Dans Settings, Connectors, Add custom connector, saisissez un nom (avec le nom du compte si vous en connectez plusieurs) et l'URL du serveur :

https://mcp.klaviyo.com/mcp

Pour plusieurs comptes, Klaviyo ajoute le nom du compte en paramètre, par exemple https://mcp.klaviyo.com/mcp?company=example-company. Cliquez ensuite sur Connect, approuvez l'accès côté Claude, puis autorisez-le (Allow) côté Klaviyo. Dans chaque nouvelle conversation, Klaviyo demande de n'activer que le connecteur concerné, depuis le menu + puis Connectors.

Claude Code

La page de Klaviyo ne publie pas de commande pour Claude Code. Elle indique que le serveur est compatible avec tout client MCP qui gère les serveurs distants, avec l'URL ci-dessus, OAuth avec enregistrement dynamique du client et le transport Streamable HTTP. La documentation MCP de Claude Code donne la syntaxe d'ajout d'un serveur HTTP distant. En combinant les deux pages, avec l'URL entre guillemets pour que le shell n'interprète pas le point d'interrogation :

claude mcp add --transport http klaviyo "https://mcp.klaviyo.com/mcp?read-only=true"

Ouvrez ensuite /mcp dans Claude Code et suivez la connexion dans le navigateur. La documentation de Claude Code décrit aussi claude mcp login klaviyo pour lancer cette étape depuis le shell. Par défaut, la portée est locale : le serveur reste privé et limité au projet courant, stocké dans ~/.claude.json. Nous n'avons pas de page de Klaviyo qui confirme cette commande précise : testez-la sur un compte non critique avant de la généraliser.

Les paramètres d'URL qui comptent

Klaviyo documente plusieurs paramètres qui changent le comportement du serveur hébergé. Ils valent pour un connecteur personnalisé ou un client comme Claude Code, pas pour le connecteur listé.

ParamètreEffet d'après KlaviyoValeur par défaut
read-onlyDésactive tous les outils qui peuvent écrire dans le comptefalse
disable-tools-with-user-generated-contentDésactive les outils qui lisent du contenu généré par les utilisateurs et que le modèle pourrait interpréter comme une instructionfalse
core-tools-onlyLimite le serveur à environ 40 outils de base, pour alléger le contexte et améliorer le choix des outilsfalse (true pour ChatGPT)
toolsetsListe de portées d'API (par exemple profiles:read,campaigns:read) : seuls les outils dont les portées sont toutes couvertes par la liste sont exposésTous les outils
betaActive des outils nouveaux et potentiellement instablesfalse

Klaviyo donne lui-même un exemple d'URL qui cumule les restrictions :

https://mcp.klaviyo.com/mcp?read-only=true&disable-tools-with-user-generated-content=true&toolsets=profiles:read,campaigns:read

La page décrit aussi paginate-lists, list-page-size et include-output-schemas, qui règlent la manière dont le serveur renvoie la liste de ses outils.

Le risque propre aux données Klaviyo

Neuf outils du tableau sont marqués comme lisant du contenu généré par les utilisateurs : get_events, get_event, get_profiles, get_profile, update_profile, create_or_update_profile, get_reviews, get_review et update_review. Un champ de profil, une propriété d'événement ou un avis client est un texte que quelqu'un a saisi, et que le modèle peut lire comme une consigne. Klaviyo demande de relire attentivement chaque appel d'outil pour vérifier que le client n'agit pas sur des instructions malveillantes. La documentation de Claude Code formule la même précaution pour tout serveur qui récupère du contenu externe, en renvoyant à sa section sur l'injection de prompt.

Un audit de flows et de segments n'a pas besoin de lire les profils un par un : les outils de rapports et de listes suffisent. Dans ce cas, le paramètre disable-tools-with-user-generated-content=true réduit la surface d'attaque sans retirer l'audit.

Un audit en lecture seule, en huit demandes

Voici un enchaînement construit sur les outils de lecture du tableau. Klaviyo ne détaille pas les paramètres de chaque outil sur cette page : les périodes et les mesures de conversion se précisent dans la conversation, et les réponses se comparent à ce qu'affiche l'interface de Klaviyo.

Demande à ClaudeOutil appelé
« Quelles listes et quels segments existent dans le compte ? »get_lists, get_segments
« Liste mes flows et dis-moi lesquels sont actifs. »get_flows, get_flow
« Quelle est la performance de chaque flow sur les 90 derniers jours ? »get_flow_report
« Quelles campagnes ont le mieux converti le mois dernier ? »get_campaigns, get_campaign_report
« Quels flows se déclenchent sur cette liste, sur ce segment, sur cette métrique ? »get_flows_triggered_by_list, get_flows_triggered_by_segment, get_flows_triggered_by_metric
« Comment évolue la taille de mon segment des clients actifs ? »query_segment_series, query_segment_values
« Quels formulaires d'inscription performent, lesquels non ? »query_form_values, query_form_series
« Quelles métriques de conversion existent, et combien d'événements par jour ? »get_metrics, query_metric_aggregates

Le résultat reste une lecture de chiffres par un modèle. Il repère vite un flow arrêté ou un segment qui s'effondre, mais il ne juge ni la fréquence d'envoi ni le ton des messages. La logique d'audit complète est détaillée dans notre checklist d'audit Klaviyo, les flows à regarder en premier dans notre article sur les six flows e-commerce essentiels, et la segmentation dans notre guide de la segmentation RFM.

Encadrer l'agent en deux couches

Le tableau de Klaviyo contient des outils qui envoient (send_campaign), qui suppriment (delete_campaign, delete_flow, delete_list), qui changent l'état d'un flow (update_flow) ou qui touchent aux abonnements et aux données personnelles (unsubscribe_profile_from_marketing, bulk_suppress_profiles, request_profile_deletion). Pour un audit, deux couches se cumulent.

Première couche, côté serveur : read-only=true dans l'URL, qui désactive selon Klaviyo tous les outils pouvant écrire. Seconde couche, côté Claude Code : des règles de permission. Selon la documentation des permissions, les outils d'un serveur MCP se nomment mcp__<serveur>__<outil>, les règles sont évaluées dans l'ordre deny, ask, puis allow, et une règle deny sur un nom d'outil le retire du contexte de Claude. Le serveur s'appelle ici klaviyo, d'après la commande ci-dessus. Dans .claude/settings.json :

{
  "permissions": {
    "deny": [
      "mcp__klaviyo__send_campaign",
      "mcp__klaviyo__cancel_campaign_send",
      "mcp__klaviyo__delete_campaign",
      "mcp__klaviyo__update_flow",
      "mcp__klaviyo__delete_flow",
      "mcp__klaviyo__request_profile_deletion",
      "mcp__klaviyo__bulk_suppress_profiles"
    ]
  }
}

Cette liste n'est pas exhaustive : elle cible les actions les plus lourdes. Sur un compte sensible, remplacez la liste par une règle mcp__klaviyo__* en ask pour que Claude Code demande une confirmation à chaque appel, ou ne conservez que les outils de lecture. La documentation précise que les fichiers CLAUDE.md sont du contexte et non une configuration appliquée de force : une consigne écrite dans CLAUDE.md ne remplace donc pas une règle de permission.

Le serveur local, pour mémoire

Klaviyo maintient aussi un serveur local, qui se lance avec uvx klaviyo-mcp-server@latestet lit une clé d'API privée dans la variable d'environnement PRIVATE_API_KEY. Ses réglages READ_ONLY et ALLOW_USER_GENERATED_CONTENT jouent le rôle des paramètres d'URL du serveur hébergé. Klaviyo recommande le serveur hébergé et recommande, par sécurité, de ne pas stocker la clé en clair dans la configuration : pour Claude Desktop, sur macOS et Windows, une commande de lancement dédiée (run-claude) demande la clé au démarrage, que l'on conserve dans un gestionnaire de mots de passe.

Les limites à connaître

  • Le serveur hébergé exige un rôle Owner, Admin ou Manager sur le compte Klaviyo.
  • Le nombre d'outils est élevé. Klaviyo propose core-tools-only pour se limiter à une quarantaine d'outils, utile pour les clients à petite fenêtre de contexte. Claude Code diffère par défaut le chargement des définitions d'outils MCP, ce qui limite le coût d'un serveur volumineux.
  • Claude Code affiche un avertissement quand la sortie d'un outil MCP dépasse 10 000 jetons et la limite par défaut est de 25 000 jetons. Une liste de profils ou un rapport détaillé peut atteindre ce seuil : demandez des agrégats plutôt que des listes.
  • Les profils Klaviyo contiennent des données personnelles. Vérifiez ce que votre contrat avec le client autorise avant de les faire transiter par un modèle.
  • Les outils marqués Beta, dont ceux de l'agent client, des domaines d'envoi et des SMS, sont signalés comme potentiellement instables.

Par où commencer

  1. Obtenir un rôle Owner, Admin ou Manager, ou demander au client d'autoriser la connexion.
  2. Ajouter le serveur avec read-only=true et disable-tools-with-user-generated-content=true, sur un connecteur personnalisé ou dans Claude Code.
  3. Poser les règles deny ci-dessus dans Claude Code, avant la première demande.
  4. Dérouler les huit demandes de lecture et comparer chaque chiffre à l'interface de Klaviyo.
  5. Ne rouvrir l'écriture qu'outil par outil, sur un compte de test, en passant les outils concernés en ask.

Questions fréquentes sur le MCP Klaviyo

Le MCP Klaviyo peut-il envoyer une campagne ou modifier un flow ?

Oui, tant que le serveur n’est pas bridé. Le tableau des outils de Klaviyo contient send_campaign, cancel_campaign_send, delete_campaign, update_flow (qui change le statut d’un flow) et delete_flow, tous marqués comme non lecture seule. Le paramètre read-only=true, dans l’URL du serveur, désactive tous les outils capables d’écrire dans le compte. Il n’est pas disponible avec le connecteur listé de Claude, seulement avec un connecteur personnalisé ou un autre client.

Quel rôle faut-il dans Klaviyo pour brancher le serveur ?

D’après Klaviyo, le serveur hébergé n’est disponible que pour les utilisateurs dont le rôle est Owner, Admin ou Manager. Un collaborateur d’agence avec un rôle plus limité ne devrait donc pas pouvoir l’autoriser.

Faut-il un abonnement Claude payant ?

Pour le connecteur personnalisé, Klaviyo indique que la fonction est réservée à Claude et Claude Desktop sur les offres Pro, Max, Team et Enterprise. Sa page ne précise aucune condition d’offre pour le connecteur listé. Claude Code se branche par la ligne de commande avec la commande claude mcp add.

Peut-on connecter plusieurs comptes Klaviyo ?

Oui, avec un connecteur personnalisé par compte. Klaviyo recommande d’inclure le nom du compte dans le nom du connecteur et dans l’URL, par exemple avec le paramètre company, puis de n’activer que le connecteur concerné dans chaque nouvelle conversation. Klaviyo recommande le connecteur listé pour un seul compte.

Quelle différence entre le serveur hébergé et le serveur local ?

Le serveur hébergé (https://mcp.klaviyo.com/mcp) s’autorise par OAuth et c’est celui que Klaviyo recommande. Le serveur local se lance avec uvx klaviyo-mcp-server@latest et une clé d’API privée placée dans la configuration du client ; certains outils n’existent que sur lui, comme create_event et upload_image_from_file d’après le tableau de Klaviyo.

Sources consultées le 6 octobre 2026

Pour aller plus loin sur Claude et les données marketing : MCP Meta Ads, MCP Google Ads, MCP GA4, MCP Merchant Center, skills Claude pour le marketing. Côté CRM, voir aussi notre agence Klaviyo.

Un compte Klaviyo lisible avant de le confier à un agent

Un agent qui lit Klaviyo repère les flows arrêtés et les segments qui s'érodent. L'audit les relie au calendrier d'envoi, à la délivrabilité et au chiffre d'affaires de la boutique.

Voir la checklist d'audit Klaviyo