Serveur MCP
Le serveur MCP (Model Context Protocol) de Webmarketer permet de connecter un assistant IA à vos données Webmarketer. Une fois connecté, l'assistant peut lister vos projets, interroger vos performances marketing, analyser vos modèles d'attribution, diagnostiquer un problème de tracking ou encore mettre à jour certaines de vos données, en réponse à une question posée en langage naturel.
Le MCP est un protocole ouvert, pris en charge par la plupart des assistants IA du marché. Là où l'API s'adresse aux développeurs qui écrivent une intégration, le serveur MCP s'adresse à l'assistant lui-même : il lui décrit les outils disponibles et la manière de les utiliser correctement.
| URL du serveur | https://mcp.webmarketer.io/mcp |
| Transport | HTTP (Streamable HTTP) |
| Authentification | OAuth 2.1, avec votre compte Webmarketer |
| Accès | Lecture, et écriture pour certains outils |
Connecter un assistant
La connexion se fait en deux temps :
- Déclarez l'URL du serveur dans votre assistant
- À la première utilisation, l'assistant vous redirige vers la page de connexion Webmarketer. Connectez-vous et autorisez l'accès : l'assistant reçoit alors un jeton lui permettant d'interroger Webmarketer en votre nom
Aucune clé ni aucun jeton n'est à copier : l'assistant s'enregistre et s'authentifie de lui-même.
Claude
Depuis claude.ai ou l'application Claude Desktop, ouvrez Paramètres > Connecteurs, cliquez sur Ajouter un connecteur personnalisé, puis saisissez l'URL du serveur :
https://mcp.webmarketer.io/mcp
Avec Claude Code, ajoutez le serveur en ligne de commande :
claude mcp add --transport http webmarketer https://mcp.webmarketer.io/mcp
ChatGPT
Depuis chatgpt.com, ouvrez Plugins > Ajouter > Ajouter un serveur MCP personnalisé, puis saisissez l'URL du serveur. L'authentification se fait par OAuth.
Cursor
Ajoutez le serveur au fichier ~/.cursor/mcp.json (ou .cursor/mcp.json à la racine d'un projet) :
{
"mcpServers": {
"webmarketer": {
"url": "https://mcp.webmarketer.io/mcp"
}
}
}
Tout assistant compatible MCP qui prend en charge le transport HTTP et l'authentification OAuth peut se connecter, à
condition que son adresse de retour OAuth soit l'une de celles citées ci-dessus ou une adresse locale
(localhost). Les assistants installés sur votre poste utilisent généralement une adresse locale.
Droits d'accès
L'assistant agit avec vos propres droits : il accède aux mêmes espaces de travail et aux mêmes projets que vous, et chaque action est soumise au rôle dont vous disposez. Un outil qui demande une permission que vous n'avez pas renvoie une erreur.
La plupart des outils ne font que lire vos données. Certains les modifient : ils créent ou mettent à jour des types d'événements, renseignent les états et les statistiques d'événements, ou enregistrent des interactions hors ligne (voir Écrire des données). Le serveur signale ces outils comme des écritures, pour que votre assistant puisse vous demander confirmation avant de les appeler ; qu'il le fasse dépend de l'assistant et de ses réglages. Une écriture demande aussi la permission de modification correspondante dans votre rôle.
Le jeton remis à l'assistant est de courte durée (15 minutes) et l'assistant le renouvelle de lui-même. Ce jeton n'est valable que pour le serveur MCP.
Outils disponibles
Le serveur expose les outils ci-dessous. L'assistant choisit lui-même les outils à appeler selon votre question : vous n'avez pas à les nommer.
Découverte et contexte
| Outil | Rôle |
|---|---|
whoami | Identifie le compte connecté et liste les espaces de travail et les projets auxquels il a accès. Point d'entrée de toute session |
list_workspaces | Liste les espaces de travail accessibles (identifiant, nom, slug) |
list_projects | Liste les projets d'un espace de travail (nom, domaine, devise, date de création) |
get_project | Décrit un projet : domaine, devise, espace de travail, date de création, état de configuration et durée de rétention des données |
get_project_earliest_date | Donne la date la plus ancienne pour laquelle des données sont disponibles, selon la création du projet et la rétention de l'espace de travail |
get_project_fields | Liste les champs d'événements du projet : clé, libellé, type, entité et description métier |
list_event_types | Liste les types d'événements suivis, avec leurs champs et leur configuration |
get_documentation_index | Liste les pages de cette documentation (titre, description, URL) |
get_documentation_page | Récupère le contenu d'une page de cette documentation |
Analyse marketing
| Outil | Rôle |
|---|---|
query_index | Agrège les données marketing de l'index d'analyse : métriques, dimensions de régie, période et modèle d'attribution |
get_event_insights | Agrège les métriques des événements (nombre, chiffre d'affaires…) sur une période, à la date de survenue des événements |
get_sql_schema | Décrit le schéma du datawarehouse : tables, colonnes, clés primaires et relations |
dry_run_sql | Valide une requête SQL sans l'exécuter et estime le volume de données traité |
run_sql | Exécute une requête SQL sur le datawarehouse (100 lignes par défaut, 500 au maximum) |
list_attribution_models | Liste les modèles d'attribution du projet |
get_attribution_paths | Détaille l'attribution d'un événement : les interactions de son parcours de conversion et le crédit reçu par chacune, par modèle d'attribution |
compare_attribution_models | Mesure les mêmes métriques, sur la même période, sous plusieurs modèles d'attribution côte à côte |
get_non_attributable_report | Explique, cause par cause, pourquoi des conversions ont été créditées au nœud non attribuable |
list_custom_columns | Liste les colonnes personnalisées du projet : les KPI définis à partir de ses métriques (CPL, ROAS, taux de conversion…) |
Sources de trafic et régies publicitaires
| Outil | Rôle |
|---|---|
list_integrations | Liste les comptes de régies publicitaires configurés sur le projet (un compte Google Ads, un compte Meta…) |
get_integrations_description | Décrit les types de régies du projet (Google Ads, Meta…) et la hiérarchie de leurs nœuds |
get_ads_filters | Liste les filtres disponibles pour cibler des nœuds de régie |
search_ads_nodes | Recherche les nœuds de régie (campagnes, publicités…) correspondant à un filtre |
get_ads_nodes | Lit des nœuds de régie dont on connaît l'identifiant, ou les enfants d'un nœud |
get_integration_sync_status | Indique si les dépenses et les clics d'un compte de régie ont été importés sur une période, et quelles publicités échouent à la vérification de leur URL de tracking |
get_credentials_status | Indique l'état des connexions aux régies publicitaires : validité, expiration, échecs de renouvellement |
list_custom_ads_campaigns | Liste les campagnes d'un connecteur personnalisé |
list_custom_ads_outlays | Liste les dépenses déclarées sur une campagne d'un connecteur personnalisé |
list_custom_interaction_rules | Liste les règles d'interaction personnalisées, dans leur ordre d'évaluation |
simulate_interaction_rule (bientôt disponible) | Mesure les sessions qu'une règle d'interaction personnalisée rattacherait, avant de l'enregistrer |
get_interaction_rules_recompute_status (bientôt disponible) | Indique si les chiffres historiques reflètent déjà la dernière modification des règles d'interaction |
Événements
| Outil | Rôle |
|---|---|
search_events | Recherche les événements du projet (commandes, leads, appels…), du plus récent au plus ancien, avec leurs champs et leurs métriques |
get_event | Lit un événement traité : son type, ses champs, ses états, ses statistiques et son utilisateur |
get_raw_event | Lit un événement tel qu'il a été reçu, avant traitement, pour vérifier ce qui a été envoyé |
Interactions et utilisateurs
| Outil | Rôle |
|---|---|
search_users | Recherche des utilisateurs à l'aide de filtres sur leurs champs, leurs événements et leurs métriques |
get_user_metrics | Liste les états et les statistiques enregistrés sur les événements d'un utilisateur |
get_customer_journey | Restitue le profil d'un utilisateur et son parcours client : sessions et interactions hors ligne, tous appareils confondus |
search_interactions | Recherche les interactions d'un projet : sessions et interactions hors ligne |
list_traffic_filters | Liste les filtres de trafic du projet et leur règle |
list_excluded_sessions | Compte, dans le temps, les sessions exclues par les filtres de trafic |
Diagnostic et qualité des données
| Outil | Rôle |
|---|---|
search_trash_events | Recherche les événements rejetés et la cause de leur rejet |
get_trash_events_count_by_date | Compte les événements rejetés par jour, pour repérer un pic |
get_alerts | Liste les alertes d'un projet : identifiants, synchronisation des régies, tracking, limites d'événements rejetés |
get_tracking_status | Donne le résultat de la dernière vérification du sous-domaine de tracking (DNS, certificat SSL) |
get_tracking_script | Donne le script de tracking exact à installer sur le site du projet |
get_workspace_alerts | Liste les alertes d'un espace de travail : problèmes de facture, changements d'abonnement, limites de quota |
list_uptime_checks | Indique la disponibilité et le temps de réponse des pages de destination de vos publicités |
Facturation et limites du plan
| Outil | Rôle |
|---|---|
get_workspace_billing | Donne le plan, l'état de l'abonnement et la prochaine facture de l'espace de travail |
get_billing_usage | Donne les limites du plan (projets, intégrations, interactions mensuelles…) et la consommation actuelle |
get_workspace_limitations | Donne les limites fonctionnelles du plan de l'espace de travail |
get_project_limitations | Donne les limites fonctionnelles du plan d'un projet |
Tableaux de bord et audiences
| Outil | Rôle |
|---|---|
list_dashboards | Liste les tableaux de bord du projet |
list_widgets | Liste les widgets d'un tableau de bord et leur configuration |
get_widget_data (bientôt disponible) | Renvoie les données qu'affiche un widget de tableau de bord |
list_audiences | Liste les audiences enregistrées du projet, avec leur définition et leur taille |
get_audience | Détaille une audience enregistrée : définition complète, dernière taille connue et historique |
preview_audience | Valide la définition d'une audience et renvoie sa taille et un échantillon d'utilisateurs |
Écrire des données
Ces outils modifient vos données. Votre assistant peut vous demander confirmation avant de les appeler (voir Droits d'accès).
| Outil | Rôle |
|---|---|
create_event_type | Crée un type d'événement et les champs que portent ses événements |
update_event_type | Modifie un type d'événement : son nom, ses champs (ajoutés, modifiés ou supprimés un par un) ou son caractère attribuable |
update_event_state | Renseigne un état sur un événement, comme un lead qualifié ou une vente signée |
update_event_statistic | Renseigne une statistique d'un événement, comme le montant d'un devis ou un chiffre d'affaires CRM |
ingest_offline_interaction | Enregistre une interaction hors ligne (appel, visite en magasin, lead CRM) sur une campagne d'un connecteur personnalisé |
ingest_event (bientôt disponible) | Envoie un événement et renvoie son identifiant, ou la raison de son refus |
upsert_custom_ads_campaign (bientôt disponible) | Crée ou met à jour une campagne d'un connecteur personnalisé |
upsert_custom_ads_outlay (bientôt disponible) | Déclare les dépenses d'une campagne d'un connecteur personnalisé |
create_interaction_rule (bientôt disponible) | Crée une règle d'interaction personnalisée |
update_interaction_rule (bientôt disponible) | Modifie une règle d'interaction personnalisée |
delete_interaction_rule (bientôt disponible) | Supprime une règle d'interaction personnalisée |
reorder_interaction_rules (bientôt disponible) | Change l'ordre d'évaluation des règles d'interaction personnalisées |
trigger_interaction_rules_recompute (bientôt disponible) | Réapplique les règles d'interaction personnalisées à l'historique du projet |
Une modification des règles d'interaction personnalisées s'applique rétroactivement : tout l'historique du projet est recalculé, et les chiffres attribués à vos campagnes changent en conséquence.
Bien interpréter les réponses
Deux notions propres à Webmarketer conditionnent la justesse des réponses. L'assistant en est informé, mais il est utile de les avoir en tête pour formuler vos questions et vérifier ses réponses.
La date d'attribution. query_index filtre sur la date de l'interaction marketing, et non sur celle de la
conversion : un achat effectué le 15 février et attribué à un clic du 10 février apparaît au 10 février.
get_event_insights filtre au contraire sur la date à laquelle l'événement a eu lieu. Voir
Dates d'attribution.
Les crédits d'attribution. Les valeurs attribuées sont des crédits, répartis entre les points de contact de
chaque parcours de conversion, et non des décomptes : 4866,39 commandes attribuées correspondent à 4 866,39 crédits,
et non à 4 866 commandes. Voir Modèles d'attribution.
- Quelles campagnes Google Ads ont généré le plus de ventes le mois dernier, en attribution linéaire ?
- Compare les modèles d'attribution premier clic et dernier clic sur mes leads de septembre.
- Pourquoi n'ai-je reçu aucun événement hier sur mon projet ?