Agent Pilot
Agent Pilot transforme votre site WordPress en un serveur MCP (Model Context Protocol) distant et sécurisé. Installez-le, connectez Claude — depuis claude.ai sur le web, Claude Desktop ou Claude Code — et votre site devient quelque chose que Claude peut réellement piloter : rechercher des articles et des produits, rédiger et éditer des pages dans le respect de votre identité de marque, mettre à jour des commandes WooCommerce, modérer des commentaires, vider des caches et bien plus encore.
Le plus difficile, en donnant à une IA accès à votre site, c’est de le faire en toute sécurité. Agent Pilot est conçu autour de ce problème. Chaque connexion passe par une poignée de main OAuth 2.1 complète, chaque jeton d’accès est lié à un utilisateur WordPress précis, et chaque outil revérifie les capacités de cet utilisateur avant de s’exécuter. Claude ne peut jamais en faire plus que la personne qui l’a autorisé — et tout ce qu’il fait est consigné dans un journal d’audit que vous pouvez consulter et révoquer à tout moment.

Points forts
- Conforme aux standards et indépendant du client. Un serveur MCP conforme sur le transport Streamable-HTTP avec OAuth 2.1 complet (code d’autorisation + PKCE + refresh, Dynamic Client Registration). Fonctionne d’emblée avec les connecteurs personnalisés de claude.ai, Claude Desktop et Claude Code.
- Multi-utilisateur et multi-instance. Connectez plusieurs instances de Claude — y compris en tant qu’utilisateurs WordPress différents. Chaque jeton est lié à l’utilisateur qui l’a approuvé et limité au rôle de cet utilisateur. Le connecteur d’un responsable de boutique ne voit que ce qu’un responsable de boutique peut faire.
- 25 outils intégrés répartis sur quatre périmètres de permission — lecture, rédaction de contenu, WooCommerce et gestion du site — plus un périmètre optionnel de base de connaissances de Chatbot Pilot et tous les outils qu’apportent les autres plugins Pilot (facturation, e-mails transactionnels, sécurité, SEO, Subscriptions).
- Contrôle des outils par rôle et par utilisateur. Un écran Tools dédié active ou désactive chaque outil — ou un périmètre entier — pour n’importe quel rôle WordPress ou utilisateur individuel. Les administrateurs obtiennent tout par défaut ; tout autre rôle démarre vide et se voit accorder exactement ce dont il a besoin.
- Éditions de contenu chirurgicales.
wp_replace_in_posteffectue des rechercher-remplacer ciblés, pour que Claude puisse corriger une faute de frappe sur une page Divi ou Elementor sans réécrire des milliers de lignes du balisage du constructeur. - Défense en profondeur. Un écran de consentement, une double vérification périmètre-vers-capacité, une confirmation par appel pour les actions destructrices, un journal d’audit complet, une limitation de débit, une liste blanche d’IP optionnelle et la rotation des clés en un clic.
- Chiffré au repos. La clé de signature OAuth est générée à l’activation et stockée chiffrée avec vos salts WordPress (ou conservée dans un fichier en dehors de la base de données, si vous préférez).
- Aucun verrouillage, aucune télémétrie. Auto-hébergé. Vos données et les identifiants de votre fournisseur d’IA ne touchent jamais nos serveurs.
Comment ça marche
Deux standards ouverts font le gros du travail :
- OAuth 2.1 répond à « qui a le droit d’entrer, et pour faire quoi ? ». Quand un client Claude atteint votre site pour la première fois, il n’a aucun jeton : il est donc dirigé vers un flux de connexion et de consentement. Un administrateur approuve un ensemble de périmètres, et le client reçoit un jeton d’accès signé et à durée limitée.
- MCP (Model Context Protocol) répond à « que peut réellement faire
l’agent ? ». Une fois authentifié, Claude appelle un unique endpoint
qui expose une liste d’outils —
wp_list_posts,wp_save_post,wc_list_orders, et ainsi de suite. Claude ne voit que les outils que son jeton est autorisé à utiliser.
La découverte, la connexion, le consentement et l’échange de jetons se déroulent tous automatiquement la première fois que vous ajoutez le connecteur. Ensuite, Claude se reconnecte silencieusement à l’aide de son refresh token.
Prérequis
| Composant | Recommandé |
|---|---|
| WordPress | 5.8 ou plus récent (testé jusqu’à 7.0) |
| PHP | 8.0 ou plus récent |
| WooCommerce | 7.0+ (optionnel — les outils Woo n’apparaissent que lorsqu’il est actif) |
| Chatbot Pilot | optionnel — les outils de base de connaissances n’apparaissent que lorsqu’il est actif |
| HTTPS | Obligatoire pour claude.ai web ; recommandé partout |
| Salts WordPress | AUTH_KEY / SECURE_AUTH_KEY uniques dans wp-config.php (servent à chiffrer la clé de signature) |
| Accessibilité | claude.ai se connecte depuis le cloud Anthropic, donc le site doit être joignable publiquement pour le client web (les clients locaux peuvent utiliser une URL locale) |
Installation
- Ouvrez Extensions → Ajouter → Téléverser une extension dans l’administration WordPress et téléversez le fichier ZIP d’Agent Pilot.
- Activez Agent Pilot. À l’activation, il crée ses tables en base de
données, accorde la capacité
manage_agent_pilotaux administrateurs et génère automatiquement les clés de signature OAuth. - Ouvrez Agent Pilot → Connectors. Copiez l’URL du MCP endpoint affichée en haut — c’est l’adresse que vous fournissez à Claude.
- Ajoutez le connecteur dans votre client Claude (voir ci-dessous) et effectuez la connexion + le consentement, une seule fois.
Connecter Claude
Tout ce dont un client a besoin se trouve sur l’écran Connectors : le MCP endpoint, l’émetteur OAuth et une commande prête à coller pour Claude Code.

claude.ai (web) et Claude Desktop
Dans Claude, ouvrez Settings → Connectors → Add custom connector et collez
votre MCP endpoint (par exemple https://your-site.com/wp-json/agent-pilot/v1/mcp).
Claude ouvre la page de connexion de votre site, vous approuvez l’écran de
consentement, et le connecteur est prêt. Le client web se connecte depuis le
cloud d’Anthropic, votre site doit donc être joignable en HTTPS public.
Claude Code
claude mcp add --transport http agent-pilot https://your-site.com/wp-json/agent-pilot/v1/mcpClaude Code lance le flux OAuth dans votre navigateur ; une fois que vous
avez approuvé, les outils sont disponibles dans votre session. Lancez /mcp
pour les voir, ou demandez simplement à Claude de faire quelque chose —
« liste les cinq derniers brouillons », « montre-moi les
commandes en traitement de cette semaine ».
Choisir au nom de qui l’agent agit
L’écran de consentement s’exécute en tant qu’utilisateur WordPress
connecté, et le jeton qui en résulte hérite des capacités de cet utilisateur.
Pour une connexion au périmètre étroitement défini, créez un utilisateur
WordPress dédié avec un rôle limité (plus la capacité manage_agent_pilot pour
qu’il puisse autoriser) et approuvez le connecteur en étant connecté en tant que
cet utilisateur. L’agent pourra alors faire exactement ce que cet utilisateur
peut faire — et rien de plus.
Ce que Claude peut faire
Les outils sont regroupés en quatre périmètres. Lors du consentement, vous décidez quels périmètres un connecteur reçoit ; au moment de l’appel, chaque outil vérifie aussi la capacité WordPress de l’utilisateur lié. Les deux contrôles doivent réussir.
Lecture (wp.read)
Inspection du site en lecture seule. Peut être accordée largement sans risque.
| Outil | Ce qu’il fait |
|---|---|
wp_get_site_info | Nom du site, URLs, versions, thème actif, statut WooCommerce, décompte des contenus |
wp_get_site_context | Thème, palette de couleurs, typographie, compositions de blocs et un article récent — pour que le contenu généré colle à votre style |
wp_list_posts | Recherche et liste les articles, pages et tout custom post type |
wp_get_post | Récupère un article/une page avec son contenu complet et ses métadonnées |
wp_list_terms | Liste les termes de taxonomie (catégories, étiquettes, catégories de produits…) |
wc_list_products / wc_get_product | Recherche et lit les produits WooCommerce |
wc_list_orders / wc_get_order | Recherche et lit les commandes avec leurs lignes |
wc_list_customers | Recherche les clients avec leur nombre de commandes et leur total dépensé |
Écrire du contenu (wp.content.write)
Créez et éditez du contenu. Les actions destructrices exigent un flag confirm
explicite.
| Outil | Ce qu’il fait |
|---|---|
wp_save_post | Crée un nouvel article/page/CPT ou met entièrement à jour un existant |
wp_replace_in_post | Rechercher-remplacer ciblé dans une page — la façon sûre de corriger une faute de frappe ou une ligne sur une page de constructeur (voir ci-dessous) |
wp_delete_post | Met à la corbeille ou supprime définitivement un article (confirm requis) |
wp_upload_media | Importe une image/un fichier depuis une URL vers la médiathèque |
wc_save_product | Crée ou met à jour un produit WooCommerce |
wc_save_order | Met à jour le statut d’une commande ou ajoute une note de commande |
wp_comments | Liste et modère les commentaires (approuver, désapprouver, marquer comme spam, corbeille) |
Gérer le site (wp.manage)
Opérations administratives. Chaque modification destructrice exige une confirmation.
| Outil | Ce qu’il fait |
|---|---|
wp_options | Lit ou met à jour une option WordPress (les mises à jour exigent confirm ; les secrets des plugins sont bloqués) |
wp_plugins | Liste, active ou désactive des plugins (confirm) |
wp_themes | Liste les thèmes installés ou change le thème actif (confirm) |
wp_users | Liste, lit, crée, met à jour ou supprime des utilisateurs — avec des garde-fous contre la suppression de vous-même ou du dernier administrateur (confirm) |
wp_maintenance | Vide le cache d’objets, recharge les règles de réécriture, purge les transients |
Base de connaissances (wp.kb)
Disponible uniquement lorsque Chatbot Pilot est actif.
| Outil | Ce qu’il fait |
|---|---|
kb_search | Recherche sémantique (embeddings) dans votre base de connaissances Chatbot Pilot |
kb_stats | Statistiques d’indexation : fichiers analysés/indexés, fragments, dernière exécution |
kb_reindex | Déclenche une réindexation en arrière-plan (nécessite la capacité de gestion) |
Outils d’autres plugins
Agent Pilot est extensible : n’importe quel plugin peut enregistrer ses propres périmètres et outils MCP, qui traversent ensuite automatiquement la découverte, l’écran de consentement et l’écran Tools. Chaque périmètre apporté est associé à une capacité WordPress, tout comme les périmètres intégrés, si bien que la même double vérification périmètre-et-capacité s’applique. Au sein de la suite Pilot, cela comprend déjà :
| Plugin | Ajoute la capacité de |
|---|---|
| Invoice Pilot | Lire les factures et en émettre une à partir d’une commande WooCommerce |
| Mail Pilot | Parcourir le journal d’envoi et envoyer un e-mail via le mailer du site |
| Security Pilot | Lire l’état de sécurité et le journal d’attaques, bloquer ou débloquer une IP |
| AI SEO Pilot | Lire les champs SEO d’un article et définir sa méta-description, son mot-clé cible et son schéma |
| Subscriptions | Consulter les abonnements, le statut et les dates de facturation des utilisateurs |
L’écran Tools — accès par rôle et par utilisateur
Les périmètres décident dans les grandes lignes de ce qu’un connecteur peut faire ; l’écran Agent Pilot → Tools vous permet d’affiner, en activant ou désactivant des outils individuels — ou un périmètre entier — pour un rôle WordPress ou un utilisateur spécifique.

- Réglages par défaut sûrs pour l’admin. Les administrateurs obtiennent chaque outil par défaut. Tout autre rôle démarre avec aucun outil — vous accordez exactement ce dont il a besoin, par périmètre ou par outil individuel.
- Trois états par ligne. Par défaut, Activé ou Désactivé. Une règle au niveau de l’outil l’emporte sur une règle au niveau du périmètre ; parmi les rôles d’un utilisateur, un Désactivé l’emporte toujours.
- Surcharges par utilisateur. Saisissez un nom ou une adresse e-mail pour charger un utilisateur unique et ajuster son accès indépendamment de son rôle.
- Uniquement restrictif, et audité. Cette couche se superpose au consentement des périmètres OAuth et aux capacités WordPress — elle peut retirer des outils, jamais accorder quelque chose que l’utilisateur lié ne pourrait pas déjà faire. Chaque appel bloqué est inscrit dans le journal d’audit.
Éditer les pages de constructeur en toute sécurité
Les pages créées avec Divi, Elementor, WPBakery et autres constructeurs
similaires stockent leur mise en page sous forme de milliers de lignes de
shortcode ou de JSON dans post_content. Tout réécrire juste pour corriger une
faute de frappe est risqué — un seul caractère mal placé peut casser la page.
wp_replace_in_post résout cela. Plutôt que d’écraser la page entière, vous
donnez à Claude le texte exact à rechercher et son remplacement, et seuls
ces octets changent — le balisage du constructeur alentour est préservé octet
pour octet. L’outil prend en charge plusieurs éditions en un seul appel (une
faute de frappe et une ligne de FAQ, par exemple), refuse d’agir lorsque le
texte recherché est introuvable et, par défaut, exige que l’extrait soit unique
pour que rien ne change par accident.
Astuce : demandez à Claude de lire d’abord la page avec
wp_get_postafin qu’il copie le texte exact, et de lancerwp_maintenanceensuite si le constructeur met en cache une version statique de la page.
Modèle de sécurité
Agent Pilot superpose plusieurs protections indépendantes :
- OAuth 2.1, pas une clé partagée. Octroi par code d’autorisation avec PKCE et refresh tokens. Les jetons d’accès sont des JWT signés à courte durée de vie ; il n’y a aucun mot de passe statique susceptible de fuiter.
- Lié à un utilisateur. Chaque jeton porte l’utilisateur WordPress qui l’a approuvé. Les appels d’outils s’exécutent en tant que cet utilisateur, si bien que les règles de rôle et de capacité s’appliquent exactement comme dans wp-admin.
- Périmètre et capacité. Un périmètre dit « ce connecteur peut écrire du contenu » ; le contrôle de capacité dit « cet utilisateur y est réellement autorisé ». Les deux doivent réussir, à chaque appel.
- Filtrage des outils par rôle / par utilisateur. En plus des périmètres, l’écran Tools peut désactiver des outils individuels (ou des périmètres entiers) pour un rôle ou un utilisateur unique. C’est une couche uniquement restrictive — toujours appliquée, et chaque appel bloqué est audité.
- Un consentement lisible. L’écran d’approbation nomme le connecteur, indique l’hôte demandeur et énumère chaque permission demandée — en signalant celles que votre compte ne peut pas réellement accorder.
- Les actions destructrices sont verrouillées. Supprimer du contenu, changer
les plugins/thèmes/utilisateurs ou mettre à jour des options exige un
confirmexplicite dans la requête, sauf si vous marquez délibérément un connecteur comme de confiance. - Tout est audité. Les autorisations, les enregistrements, chaque appel d’outil et chaque tentative échouée sont consignés avec l’utilisateur, le connecteur, l’horodatage et l’IP.
- Limitation de débit et liste blanche d’IP. Des limites de requêtes par connecteur, plus une liste blanche CIDR optionnelle pour les déploiements cadenassés.
- Révoquez et faites tourner. Désactivez un connecteur ou un jeton unique en un clic, ou faites tourner les clés de signature pour invalider tous les jetons d’un coup.
L’écran Connectors
Agent Pilot → Connectors est le poste de pilotage :
- Connect Claude to this site — le MCP endpoint, l’émetteur OAuth et l’URL des métadonnées de ressource protégée, plus une commande à copier-coller pour Claude Code.
- Registered connectors — chaque client qui s’est enregistré (chaque instance de Claude est sa propre entrée), avec son type et un Revoke en un clic.
- Active access tokens — une ligne par connexion active, indiquant l’utilisateur, le connecteur, les périmètres accordés et l’expiration, chacune révocable individuellement.
- Signing keys — Rotate keys invalide immédiatement tous les jetons émis ; les connecteurs se réautorisent simplement.
- Recent activity — une piste d’audit en direct. Une nouvelle connexion
normale apparaît comme
auth_fail(la sonde de découverte initiale) →dcr(enregistrement) →authorize(approuvé) → des entréestool_callau fur et à mesure que Claude travaille. Les sondes non authentifiées apparaissant commeauth_failsont attendues sur n’importe quel endpoint public.
Référence des réglages
Configurez le comportement sous Agent Pilot → Settings.

| Réglage | Rôle |
|---|---|
| Enable MCP server | Interrupteur principal. Une fois désactivé, les endpoints OAuth et MCP renvoient 503. |
| Accept new connectors | Autorise le Dynamic Client Registration. claude.ai web en a besoin pour s’auto-enregistrer ; désactivez-le pour figer la liste des connecteurs. |
| Trust connectors (skip confirmations) | Une fois activé, les outils destructeurs s’exécutent sans le flag confirm par appel. Laissez-le désactivé par sécurité. |
| Access-token lifetime | Durée de validité d’un jeton d’accès, en secondes (les refresh tokens prolongent la session). |
| MCP rate limit | Nombre maximal de requêtes MCP par minute, par connecteur. |
| IP allowlist | Liste CIDR optionnelle. Vide = tout autoriser. Notez que claude.ai se connecte depuis des IP du cloud Anthropic. |
| Extra redirect hosts | Hôtes de redirection OAuth supplémentaires à accepter lors de l’enregistrement. claude.ai / claude.com et localhost sont toujours autorisés. |
| Audit-log retention | Nombre de jours de conservation des entrées d’audit avant le nettoyage automatique. |
| Remove all data on uninstall | Une fois activé, la suppression du plugin élimine ses tables, options et capacité. |
Multi-utilisateur et multi-instance
Comme chaque jeton est lié à un utilisateur WordPress, vous pouvez connecter de nombreux agents à la fois avec des portées différentes :
- Connectez Claude Desktop en tant qu’éditeur pour le contenu au quotidien, et Claude Code en tant qu’administrateur pour la maintenance du site.
- Donnez à un collègue son propre connecteur sous son propre compte WordPress — le journal d’audit attribue chaque action à la bonne personne.
- Les connexions concurrentes sont isolées ; la session et les permissions d’un agent ne débordent jamais sur celles d’un autre.
Dépannage
Le connecteur autorise mais Claude ne liste jamais les outils. C’est presque toujours une URL qui ne correspond pas. Vérifiez que vous avez utilisé le MCP endpoint exact affiché sur l’écran Connectors, et que votre site est joignable en HTTPS depuis le client.
Chaque requête affiche auth_fail même avec un jeton. Certaines
configurations Apache/nginx retirent l’en-tête Authorization avant qu’il
n’atteigne PHP. Ajoutez une règle de réécriture pour le laisser passer (le même
correctif que celui utilisé pour les mots de passe d’application WordPress).
claude.ai ne parvient pas à joindre le site. Le client web se connecte depuis
le cloud d’Anthropic — une URL localhost ne fonctionnera pas. Utilisez un
domaine HTTPS joignable publiquement.
Un outil renvoie « forbidden ». L’utilisateur WordPress lié n’a pas la capacité requise pour cette action. Autorisez en tant qu’utilisateur disposant du bon rôle, ou accordez la capacité.
Un outil destructeur refuse de s’exécuter. Il lui faut "confirm": true dans
la requête (ou activez Trust connectors). Demandez à Claude de réessayer avec
confirmation.
Le site a affiché un écran blanc après l’activation aux côtés d’un autre plugin. Videz l’opcache PHP (ou redémarrez PHP) une fois après l’activation si le chargeur partagé d’un plugin frère a été mis en cache dans un état incohérent.
Désinstallation
La désactivation arrête le serveur et les tâches planifiées. La suppression du
plugin retire son code ; elle laisse vos données en place sauf si vous
avez activé Remove all data on uninstall dans les réglages, auquel cas ses
tables, options et la capacité manage_agent_pilot sont éliminées.