Les clients MCP
Le client MCP est le pont de communication entre votre serveur et les serveurs MCP. C’est votre point d’accès à tous les outils qu’un serveur MCP fournit — il gère l’échange de messages et les détails du protocole pour que votre application n’ait pas à s’en occuper.
Communication agnostique au transport
L’un des points forts du MCP est d’être agnostique au transport — le client et le serveur peuvent communiquer via différents protocoles selon votre configuration.
La configuration la plus courante fait tourner client et serveur sur la même machine, en communiquant par entrée/sortie standard (stdio). Mais vous pouvez aussi les connecter via :
- HTTP
- WebSockets
- D’autres protocoles réseau
Types de messages MCP
Une fois connectés, le client et le serveur échangent des types de messages spécifiques définis par la spécification MCP. Les principaux :
| Message | Description |
|---|---|
ListToolsRequest / ListToolsResult | Le client demande : “quels outils tu fournis ?” et reçoit la liste |
CallToolRequest / CallToolResult | Le client demande l’exécution d’un outil avec des arguments et reçoit le résultat |
Comment tout s’assemble
Voici un exemple complet montrant le flux d’une requête utilisateur, de votre serveur jusqu’au retour vers Claude :
Un utilisateur demande : “Quels dépôts est-ce que j’ai ?”
1. Requête utilisateur
└─► Votre serveur
2. Découverte des outils
└─► Votre serveur demande les outils disponibles au client MCP
3. Échange ListTools
└─► Client MCP → ListToolsRequest → Serveur MCP
└─► Serveur MCP → ListToolsResult → Client MCP
4. Requête vers Claude
└─► Votre serveur envoie la question + les outils disponibles à Claude
5. Décision d'appel d'outil
└─► Claude décide d'appeler un outil
6. Exécution de l'outil
└─► Votre serveur → Client MCP → CallToolRequest → Serveur MCP
7. Appel API externe
└─► Serveur MCP → API GitHub
8. Retour des résultats
└─► GitHub → Serveur MCP → CallToolResult → Client MCP
9. Résultat vers Claude
└─► Votre serveur envoie les résultats à Claude
10. Réponse finale
└─► Claude formule sa réponse → Utilisateur
Responsabilités claires
Oui, ce flux comporte de nombreuses étapes — mais chaque composant a une responsabilité bien définie :
- Le client MCP abstrait la complexité de la communication serveur
- Votre code se concentre sur la logique applicative
- Le serveur MCP gère l’intégration avec les services externes
Comprendre ce flux est essentiel, car vous verrez toutes ces pièces en action lorsque vous construirez vos propres clients et serveurs MCP dans les sections suivantes.