MCP pour CMS
MCP pour CMS désigne l’exposition d’un système de gestion de contenu (Joomla, Drupal, PrestaShop, Shopify ou une architecture headless) à un LLM via le Model Context Protocol. L’IA obtient ainsi un accès structuré aux contenus, au catalogue et aux réglages, quelle que soit la technologie du CMS.
Définition
MCP et CMS : un accès unifié quel que soit le système
Un serveur MCP donne à l’assistant le même mode d’accès quel que soit le CMS : un catalogue d’outils décrits, appelés avec des paramètres typés. Ce qui change d’un système à l’autre n’est pas le protocole, c’est le point d’entrée technique par lequel on atteint réellement les contenus.
L’unification se joue donc côté assistant, pas côté CMS. Vous pilotez une boutique et un site institutionnel bâtis sur deux technologies différentes depuis la même conversation, à condition d’avoir construit deux serveurs. WordPress relève d’une logique propre, traitée sur la page MCP pour WordPress ; cette page couvre les autres systèmes.
Pourquoi chaque CMS nécessite son propre serveur MCP
Trois éléments diffèrent radicalement d’un CMS à l’autre. Le modèle de contenu, d’abord : article, nœud, entrée, produit ne recouvrent ni les mêmes champs ni les mêmes relations. Le mécanisme d’authentification ensuite, propre à chaque système. Enfin la façon d’écrire sans court-circuiter les caches, les événements internes et les extensions.
Aucun serveur générique n’absorbe ces écarts. Un outil « créer un contenu » n’a pas le même sens sur un site éditorial et sur une boutique, où la création implique déclinaisons, stock, prix et taxes. Un serveur MCP utile parle le vocabulaire du CMS qu’il pilote.
Ce qui se mutualise, en revanche, c’est la convention de nommage. Si vos outils s’appellent de la même façon d’un site à l’autre, l’assistant transpose ses habitudes et vos consignes restent valables. Décidez cette convention avant le premier serveur, pas au troisième.
CMS traditionnels et architectures headless : deux logiques d’accès
Un CMS traditionnel mêle stockage, administration et rendu des pages dans une même application. Pour l’atteindre, le serveur MCP doit soit vivre à l’intérieur, sous forme d’extension écrite dans le langage du CMS, soit dialoguer avec son interface de services web quand elle existe.
Un CMS headless ne rend aucune page : il publie déjà son contenu par API, en REST ou en GraphQL, avec des jetons et des périmètres d’accès. Le serveur MCP y devient une couche de traduction qui transforme des points d’accès existants en outils décrits pour un modèle.
La conséquence est pratique : l’effort change de nature. Sur un CMS traditionnel, il porte sur l’accès et la sécurité. Sur un headless, l’accès est acquis, et l’effort porte sur la sélection des points d’accès et la qualité de leur description.
Mise en place
Mettre en place MCP selon votre CMS
La première question à trancher : votre CMS dispose-t-il d’une interface de services web complète et documentée ? Si oui, un serveur MCP externe suffit et vous n’ajoutez aucun code au site. Sinon, il faudra écrire du code à l’intérieur du CMS, avec les contraintes de maintenance que cela suppose.
La seconde question porte sur le sens de circulation. Un serveur en lecture seule se construit vite et se sécurise facilement. Dès que l’écriture entre en jeu, il faut prévoir la validation des entrées, la journalisation et un environnement de test, quel que soit le CMS. Les bases du protocole sont détaillées sur la page serveurs MCP.
Joomla, Drupal et PrestaShop : extension dédiée ou passerelle vers l’API
Ces trois systèmes sont extensibles en PHP et disposent chacun d’une interface de services web. Deux voies s’ouvrent donc : écrire une extension qui expose les outils depuis l’intérieur, ou monter un serveur MCP externe qui consomme l’API existante. La seconde est plus rapide, la première va plus loin.
Drupal expose ses entités via JSON:API, ce qui couvre correctement la lecture et l’écriture des nœuds, des termes et des champs. Joomla propose une API REST d’administration à activer, avec des jetons par utilisateur. PrestaShop s’appuie sur un service web à activer ressource par ressource, orienté catalogue et commandes.
Le critère de choix reste la profondeur d’accès. Tant que vous manipulez des objets natifs, la passerelle externe fait le travail. Dès que vous touchez à des champs ajoutés par des extensions tierces ou à une logique métier spécifique, l’extension interne devient la seule voie praticable.
Shopify et CMS headless : exposer le contenu via GraphQL ou REST
Shopify n’autorise aucun code serveur dans la boutique : l’accès passe obligatoirement par son API d’administration, à travers une application déclarée et les portées qu’elle demande. Le serveur MCP est donc toujours externe, et le périmètre d’écriture se règle au niveau des portées, pas dans le serveur.
GraphQL change la conception des outils. La requête vit côté serveur MCP, ce qui vous permet de choisir exactement les champs renvoyés au modèle. Bien utilisé, ce contrôle limite fortement le volume renvoyé et évite de saturer le contexte avec des données que personne n’exploitera.
Sur un CMS headless, le même principe s’applique aux collections et aux locales. Si l’objectif est d’alimenter un assistant en connaissance plutôt que de modifier le contenu, une approche RAG répond souvent mieux au besoin qu’un serveur MCP en écriture.
Tableau comparatif
Comparatif des approches par CMS
Le tableau ci-dessous résume la voie d’intégration la plus directe pour chaque famille de systèmes, ce qu’elle permet sans développement lourd, et la limite qu’elle impose. Lisez la dernière colonne en premier : c’est elle qui décide, pas la deuxième.
| Système | Voie d’accès la plus directe | Ce que l’on pilote sans développement lourd | Limite ou point de vigilance |
|---|---|---|---|
| Joomla | API REST d’administration, jetons par utilisateur | Articles, catégories, menus, modules | L’API doit être activée et les extensions tierces n’y publient pas toujours leurs données |
| Drupal | JSON:API sur les entités | Nœuds, termes, champs personnalisés, médias | Le modèle d’entités est très libre : sans description précise, le modèle se trompe de type de contenu |
| PrestaShop | Service web à activer ressource par ressource | Produits, déclinaisons, catégories, commandes | Les droits se règlent par ressource, un oubli ouvre l’écriture sur les commandes |
| Shopify | API d’administration via une application déclarée | Produits, collections, pages, métachamps | Aucun code hébergé dans la boutique, tout dépend des portées accordées à l’application |
| CMS headless | API REST ou GraphQL native du service | Collections, entrées, langues, états de publication | Le volume renvoyé explose vite si les requêtes ne filtrent pas les champs |
Deux enseignements ressortent. Sur les systèmes auto-hébergés, la difficulté est d’obtenir un accès complet sans fragiliser le site. Sur les plateformes hébergées, l’accès est balisé mais vous ne dépassez jamais ce que la plateforme accepte d’exposer.
Applications
Cas d’usage
- Piloter le catalogue produits d’une boutique PrestaShop depuis un assistant IA
- Traduire et publier en série des articles Joomla multilingues
- Synchroniser les contenus d’un CMS headless avec une base de connaissances IA
- Migrer une arborescence Drupal en conservant les métadonnées SEO
Vos questions
Questions fréquentes
Faut-il un serveur MCP différent pour chaque CMS ?
Oui pour la partie exécution : le code qui parle à Drupal ne peut pas parler à Shopify. Un serveur par technologie est la règle, quel que soit le nombre de sites concernés.
En revanche, un même serveur peut desservir plusieurs sites bâtis sur le même CMS, en prenant l’identifiant du site en paramètre. C’est là que se gagne le temps quand vous gérez un parc : un serveur, plusieurs installations, une seule convention de nommage à retenir.
Quelle solution existe pour WordPress ?
WordPress se traite à part, parce qu’il combine une API REST native et un système d’extensions qui permet d’exposer des capacités depuis l’intérieur du site. Les deux voies décrites ici lui sont donc ouvertes simultanément.
Les choix concrets (abilities exposées, rôles utilisateur, périmètres à ne pas ouvrir) sont détaillés sur la page MCP pour WordPress. Si votre parc mélange WordPress et un autre CMS, commencez par celui que vous connaissez le mieux : les erreurs de conception y coûteront moins cher.
MCP fonctionne-t-il avec un CMS headless ?
Oui, et c’est même le cas le plus simple. Le contenu est déjà accessible par API avec une authentification par jeton : le serveur MCP se limite à décrire les opérations utiles et à contraindre leurs paramètres.
Le piège se situe ailleurs. Les CMS headless renvoient volontiers des collections entières, avec toutes les langues et tous les états de publication. Sans filtrage ni pagination imposés dans l’outil, la réponse sature le contexte du modèle et la qualité des réponses chute.
Comment gérer les droits d’écriture sur un site e-commerce ?
Laissez les prix, les stocks et les commandes en dehors du périmètre par défaut. Ouvrez l’écriture sur les descriptions, les catégories et les métadonnées, qui se corrigent sans conséquence financière, et gardez le reste en lecture.
Si un besoin d’écriture sur ces données apparaît, passez par un état intermédiaire : l’assistant prépare la modification, un humain la valide. Les usages de l’IA sur ce type de site sont développés sur IA et e-commerce.
Ressources liées
Aller plus loin
- Agents IA & MCP : page pilier
- MCP pour WordPress : le cas WordPress est traité sur cette page dédiée
- Serveurs MCP : les bases du protocole
- IA et e-commerce
- MCP & API
À retenir
Conclusion
Le critère de décision tient en une vérification : ouvrez la documentation technique de votre CMS et cherchez si son interface de services web couvre les objets que vous voulez manipuler. Si elle les couvre, vous construisez un serveur MCP externe. Si elle s’arrête avant, il faudra du code dans le CMS, et le projet change d’échelle.
Faites ce test aujourd’hui sur un seul objet, celui que vous modifiez le plus souvent. La réponse vous donnera l’architecture à retenir avant d’avoir écrit la moindre ligne.
Parlons de votre projet
Décrivez votre besoin en quelques lignes : vous recevrez une première analyse et une orientation claire.
Réponse sous 48 h. Sans engagement.
