Aller au contenu principal

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 :

  1. Analyser la requete de l’utilisateur
  2. Determiner si un ou plusieurs outils sont necessaires pour repondre
  3. Si oui, selectionner l’outil le plus pertinent et preparer les arguments
  4. Envoyer la requete au serveur MCP et attendre le resultat
  5. Decider si d’autres appels sont necessaires (boucle) ou si la reponse peut etre formulee
  6. 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