Architecture Technique du MCP
Comprendre les rouages du protocole
Pour tirer pleinement parti du MCP dans Le Chat, il est essentiel de comprendre les fondements techniques du protocole. Cette lecon explore les differents modes de transport, les mecanismes d’authentification et l’architecture multi-serveurs qui font la puissance du MCP.
Les modes de transport
Le MCP definit deux grandes familles de transport pour la communication entre le client et le serveur :
STDIO (Standard Input/Output) - Transport local
Le mode STDIO est concu pour les serveurs MCP qui s’executent sur la meme machine que le client. La communication passe par les flux d’entree/sortie standard du systeme d’exploitation.
- Usage typique : outils en ligne de commande, acces au systeme de fichiers local, integration d’applications de bureau
- Avantage : pas de reseau, execution immediate
- Limitation : fonctionne uniquement en local, impossible a utiliser avec Le Chat (qui est un service cloud)
Ce mode est principalement utilise avec les IDE comme VS Code ou Cursor, ou le serveur MCP tourne directement sur l’ordinateur du developpeur.
Streamable HTTP - Transport distant
Le mode Streamable HTTP est le standard actuel pour les serveurs MCP distants. Il a remplace le protocole SSE (Server-Sent Events) qui presentait un inconvenient majeur : il exigeait une connexion permanente entre le client et le serveur.
- Usage typique : services cloud, APIs tierces, outils partages entre equipes
- Avantage : pas de connexion permanente requise, plus robuste et scalable
- Endpoint : les serveurs Streamable HTTP exposent un point d’acces a l’URL
/mcp
Le protocole SSE reste supporte par la plupart des clients, mais il est considere comme deprecie et devrait disparaitre dans les prochains mois.
Ce que cela signifie pour Le Chat
Le Chat etant une application cloud, il ne peut interagir qu’avec des serveurs MCP distants. Un serveur local sur votre machine (localhost) n’a aucune signification pour Le Chat. Si vous developpez un serveur MCP et souhaitez le tester avec Le Chat, vous devrez soit le deployer sur un service cloud, soit utiliser un outil comme ngrok pour exposer temporairement votre serveur local avec une URL publique.
Les mecanismes d’authentification
Le MCP supporte trois niveaux d’authentification, correspondant a des niveaux de securite croissants :
Aucune authentification
Le serveur MCP est accessible a quiconque connait son URL. C’est le cas le plus simple, adapte aux outils publics qui ne manipulent pas de donnees sensibles.
Exemple : un serveur MCP qui scrape des informations publiques sur Reddit ou qui fournit des donnees meteo.
Authentification par token
Le serveur requiert un token d’acces que vous generez depuis le service concerne. Ce token definit un perimetre precis de droits (scopes) : lecture seule, ecriture, acces a certains repositories, etc.
Exemple : le connecteur GitHub. Vous creez un Personal Access Token sur GitHub en selectionnant les droits que vous accordez a Le Chat (lire vos repos, creer des issues, faire des pull requests). Ce token est stocke de maniere securisee et associe a votre compte utilisateur, pas a l’organisation.
Authentification OAuth 2.0
Le protocole OAuth 2.0 offre le niveau d’integration le plus pousse. Au lieu de generer manuellement un token, vous autorisez directement Le Chat a acceder a votre compte via un flux d’authentification standard.
Exemple : le connecteur Linear. Lorsque vous cliquez sur “Connect”, une fenetre d’autorisation s’ouvre, vous demandant de confirmer l’acces. Le Chat obtient alors des droits complets sur votre compte, avec la possibilite de les revoquer a tout moment.
L’avantage de l’OAuth est double : il evite la manipulation manuelle de tokens et il permet une gestion fine des permissions avec possibilite de revocation instantanee.
Architecture multi-serveurs
En pratique, Le Chat ne se connecte pas a un seul serveur MCP, mais a plusieurs simultanement. Chaque serveur possede ses propres outils, ses propres prompts et ses propres ressources.
Decouverte des outils
Lorsqu’un serveur MCP est active, Le Chat lui envoie d’abord une requete de decouverte. Le serveur repond avec une description textuelle de chaque outil disponible. Par exemple :
{
"name": "get_weather",
"description": "Retourne la meteo pour une position donnee",
"parameters": {
"latitude": { "type": "float", "description": "Latitude" },
"longitude": { "type": "float", "description": "Longitude" }
},
"returns": "string"
}
Cette description est cruciale : c’est la seule information dont le modele dispose pour decider quand et comment utiliser l’outil. Les createurs de serveurs MCP doivent donc soigner leurs descriptions, leur typage et leurs exemples.
Boucle decisionnelle
A chaque message de l’utilisateur, le modele suit une boucle decisionnelle :
- Analyser la requete de l’utilisateur
- Determiner si un ou plusieurs outils sont necessaires pour repondre
- Si oui, selectionner l’outil le plus pertinent et preparer les arguments
- Envoyer la requete au serveur MCP et attendre le resultat
- Decider si d’autres appels sont necessaires (boucle) ou si la reponse peut etre formulee
- Synthetiser les resultats en une reponse naturelle
Cette boucle peut s’executer plusieurs fois, impliquant differents serveurs MCP au sein d’une meme conversation.
Considerations de performance
Nombre d’outils
Les serveurs MCP souffrent des memes limitations que tout systeme d’agents : trop d’outils disponibles simultanement degradent la capacite du modele a choisir le bon outil. Il est recommande de :
- N’activer que les connecteurs necessaires a la tache en cours
- Desactiver les connecteurs dont vous n’avez plus besoin dans une conversation
- Privilegier des outils specifiques et bien decrits plutot que des outils generiques et vagues
Latence
Chaque appel a un serveur MCP implique une requete reseau. La latence depend de la localisation et des performances du serveur. Pour les workflows critiques, privilegiez des serveurs MCP bien optimises et geographiquement proches.
Points cles a retenir
- Le Chat utilise le mode Streamable HTTP pour communiquer avec les serveurs MCP distants
- Trois niveaux d’authentification sont supportes : aucune, token et OAuth 2.0
- Le Chat peut se connecter a plusieurs serveurs MCP simultanement
- Le modele utilise les descriptions textuelles des outils pour decider quand les utiliser
- Limitez le nombre de connecteurs actifs pour optimiser la precision du modele