Le Model Context Protocol (MCP) d'Anthropic ouvre la voie à des agents qui interagissent avec n'importe quel service. Quand ce service gère de l'argent, voici ce qu'il faut mettre en place.
Le Model Context Protocol (MCP) est devenu un standard de fait pour connecter des agents IA à des services externes. Claude, mais aussi d'autres modèles, peuvent désormais s'appuyer sur des serveurs MCP pour accéder à des outils, des ressources et des données en temps réel. Quand ces outils touchent à des paiements, la surface de risque change radicalement.
MCP définit un protocole standard entre un client (le modèle) et un serveur (vos outils). Le serveur expose des tools que le modèle peut appeler, des resources qu'il peut lire, et des prompts réutilisables. L'avantage : un seul serveur MCP peut être utilisé par n'importe quel client compatible, sans réécriture.
Pour les paiements, ça veut dire que votre serveur MCP peut exposer des outils comme create_payment, refund_transaction, ou check_balance — et que tout modèle MCP-compatible peut les appeler.
MCP amplifie l'autonomie des agents. C'est sa force. Mais un agent MCP qui a accès à un outil de paiement peut l'invoquer dans des contextes imprévus : traitement d'un lot de données, boucle de retry automatique, réponse à une entrée utilisateur mal formulée.
Contrairement à une API classique que vous contrôlez, un serveur MCP est conçu pour être découvrable et appelable à la demande. Sans garde-fou, chaque invocation du tool create_payment aboutit directement à une transaction réelle.
La solution est d'intercaler une couche d'autorisation dans votre serveur MCP, au niveau de chaque tool financier. Le serveur MCP reste l'interface standard ; la couche d'autorisation devient l'arbitre.
// Dans votre serveur MCP
server.tool('create_payment', async ({ amount, vendor, description }) => {
// 1. Demander l'autorisation avant d'agir
const auth = await agentgate.authorize({
type: 'payment',
amount,
vendor,
description,
agentId: context.agentId,
});
if (auth.status !== 'APPROVED') {
return {
content: [{ type: 'text', text: `Payment ${auth.status}: ${auth.reason}` }],
};
}
// 2. Exécuter uniquement si autorisé
const result = await paymentProvider.charge({ amount, vendor });
return { content: [{ type: 'text', text: `Payment executed: ${result.id}` }] };
});
Un agent MCP peut appeler plusieurs tools en parallèle. Si deux instances demandent create_payment simultanément, votre couche d'autorisation doit gérer les contraintes de budget en temps réel — pas seulement au niveau de chaque requête isolée, mais en tenant compte des demandes en cours.
C'est pourquoi une couche d'autorisation dédiée est plus robuste qu'une simple vérification locale : elle centralise l'état du budget et évite les race conditions.
Pour les équipes qui opèrent en environnement réglementé (fintech, santé, secteur public), chaque action d'un agent MCP doit être tracée avec :
Un journal d'audit structuré est indispensable pour tout audit interne ou externe. Il permet aussi de détecter les patterns anormaux : un agent qui déclenche 50 paiements en 10 minutes mérite une attention particulière.
MCP et paiements autonomes peuvent coexister de façon sûre, à condition d'intercaler une couche d'autorisation explicite. L'agent garde son autonomie pour les tâches non-financières ; les paiements passent par un filtre de règles que vous contrôlez. C'est la même logique qu'un système de délégation financière en entreprise — appliquée aux agents IA.
Prêt à contrôler les dépenses de votre agent IA ?
Branchez AgentGate en 15 minutes. Gratuit pour commencer.
Commencer gratuitement