Un client vendant des abonnements logiciels via WooCommerce facture ses clients professionnels avec des informations qui vivent en réalité dans un service de facturation tiers spécialisé, plutôt que dans WordPress lui-même : numéro de TVA intracommunautaire vérifié, conditions de paiement négociées, référence de bon de commande. Plutôt que de dupliquer ces données dans WordPress avec un risque de désynchronisation, le choix a été fait d’interroger ce service directement au moment de générer chaque facture, via le client MCP désormais intégré au cœur de WordPress.
Ce cas ne traite pas le client MCP en tant que fonctionnalité générale, déjà couvert ailleurs sur ce blog : il illustre un usage concret et unique, la génération de facture, pour montrer comment cette brique s’intègre dans un flux métier réel.
Pourquoi WordPress est ici le client, pas le serveur
Dans la plupart des cas traités sur ce blog, WordPress joue le rôle de serveur MCP : il expose son propre contenu à un agent externe. Ici, la situation s’inverse : c’est WordPress qui se connecte, en tant que client, à un serveur MCP exposé par le service de facturation tiers, pour récupérer des informations à jour au moment précis où il en a besoin.

Le déclenchement au moment de la facture
La génération d’une facture WooCommerce déclenche un hook personnalisé qui appelle le client MCP intégré, lequel se connecte au serveur du service de facturation tiers pour récupérer les informations complémentaires liées au client concerné, identifié par son identifiant partagé entre les deux systèmes.
add_action( 'agence_avant_generation_facture', function ( $commande_id ) {
$commande = wc_get_order( $commande_id );
$client_id = $commande->get_meta( 'id_client_facturation_externe' );
$client_mcp = wp_get_mcp_client( 'service-facturation' );
$donnees = $client_mcp->call_tool( 'get_billing_profile', array(
'client_id' => $client_id,
) );
if ( is_wp_error( $donnees ) ) {
// Voir la section suivante : ne jamais bloquer la facture
agence_journaliser_echec_mcp( $client_id, $donnees );
return;
}
update_post_meta( $commande_id, '_tva_verifiee', $donnees['numero_tva'] );
update_post_meta( $commande_id, '_conditions_paiement', $donnees['conditions'] );
} );
Ne jamais bloquer la facture en cas d’échec du service tiers
Le point le plus important de cette intégration, identifié dès la conception, est que l’indisponibilité du service de facturation tiers ne doit jamais empêcher la génération de la facture elle-même. Si l’appel MCP échoue ou dépasse un délai raisonnable, la facture est générée avec les dernières données connues localement, et un signalement est ajouté pour une vérification manuelle ultérieure plutôt qu’un blocage immédiat.
- Délai maximal fixé à trois secondes pour l’appel au serveur MCP externe.
- En cas d’échec, la facture porte une mention interne « données de facturation à vérifier », invisible du client final.
- Un tableau de bord liste chaque semaine les factures ainsi marquées, pour vérification par l’équipe comptable.
Fraîcheur des données, pas de cache prolongé
Les informations récupérées via ce client MCP ne sont jamais mises en cache au-delà de la génération de la facture en cours : un numéro de TVA modifié entre deux commandes du même client doit se refléter immédiatement sur la facture suivante, sans attendre l’expiration d’un cache. Ce choix a un coût en performance à chaque génération, jugé acceptable au regard du volume de commandes concernées, qui reste modéré pour ce client.
Sur une donnée de facturation, la fraîcheur prime toujours sur la performance. Un cache pratique ici serait un cache qui expose à facturer sur une information déjà obsolète.
Résultat après mise en production
Depuis la mise en place, les erreurs de facturation liées à des informations obsolètes (mauvais numéro de TVA, conditions de paiement périmées) ont pratiquement disparu, remplacées par un signalement clair dans les rares cas où le service tiers est temporairement indisponible, traité en quelques minutes par l’équipe comptable plutôt que découvert des semaines plus tard par le client facturé.
En résumé
Le client MCP intégré à WordPress permet d’interroger un service tiers au moment précis où une information à jour est nécessaire, sans dupliquer cette donnée dans la base locale. La règle la plus importante à retenir de ce cas : une intégration qui interroge un service externe critique doit toujours prévoir un comportement de repli explicite, plutôt que de bloquer un processus métier essentiel comme la génération d’une facture.