Aller au contenu
Contactez-nous
  1. Accueil
  2. /
  3. Blog
  4. /
  5. MCP : ce que le protocole ne sécurise pas à votre place

DevOps
Sécurité
Entreprise

MCP : ce que le protocole ne sécurise pas à votre place

29 septembre 2026

8 min de lecture

Sommaire
Ce que le protocole fait réellement
Scénario un : la description d'outil qui ment
Scénario deux : l'outil qui en fait plus que son nom
Scénario trois : deux serveurs inoffensifs qui, ensemble, ne le sont plus
Scénario quatre : le consentement qui s'use
Ce qu'on branche, ce qu'on ne branche pas
La règle simple
Sources

On lit un peu partout que le Model Context Protocol permet de connecter un assistant à ses outils internes « de façon sécurisée ». La spécification elle-même dit exactement le contraire, et elle le dit dans une phrase qu'il faut avoir lue avant de brancher quoi que ce soit : le protocole ne peut pas imposer ces principes de sécurité à son propre niveau. Il les recommande aux implémenteurs. Ce n'est pas la même chose.

La confusion est compréhensible. MCP normalise la mécanique de connexion, pas la confiance. C'est un progrès réel, et c'est une invitation à faire le travail de sécurité soi-même.

Ce que le protocole fait réellement

MCP est un protocole ouvert, fondé sur des messages JSON-RPC 2.0, qui met en relation trois rôles. L'hôte est l'application qui pilote le modèle. Le client est le connecteur à l'intérieur de cet hôte. Le serveur est le service qui expose quelque chose d'utile.

Un serveur offre trois familles de choses : des ressources, qui sont des données mises à disposition ; des prompts, qui sont des modèles d'instructions prêts à l'emploi ; et des outils, qui sont des fonctions que le modèle peut décider d'appeler. Les clients, de leur côté, peuvent proposer un mécanisme de sollicitation permettant au serveur de demander une information complémentaire à l'utilisateur.

La version en vigueur de la spécification porte la date du 28 juillet 2026. Le projet est actif, le dépôt était encore modifié le jour de la rédaction de cet article.

L'intérêt pratique est évident. Avant MCP, brancher un assistant sur une supervision, un inventaire de parc et une base de connaissances demandait trois intégrations ad hoc. Avec MCP, trois serveurs exposent leurs capacités de la même manière, et l'assistant les découvre. C'est la promesse tenue.

Reste la partie que le protocole laisse ouverte, et qui est entièrement à votre charge.

Scénario un : la description d'outil qui ment

Un serveur MCP décrit ses outils en langage naturel, et c'est cette description que le modèle lit pour décider quand les appeler. La spécification est nette sur ce point : les descriptions du comportement d'un outil, y compris ses annotations, doivent être considérées comme non fiables, sauf si elles proviennent d'un serveur de confiance.

La conséquence est directe. Un serveur tiers peut déclarer un outil nommé « consulter la météo » dont la description contient, en plus, des instructions adressées au modèle : par exemple, lui demander de joindre au passage le contenu d'un fichier de configuration. Le modèle lit la description comme une consigne légitime, parce que rien ne la distingue d'une consigne légitime.

C'est une injection d'instructions par la voie du catalogue d'outils. Elle ne suppose aucune faille technique : elle exploite le fonctionnement normal du protocole.

La parade tient en une règle d'exploitation, pas en un réglage : on n'installe un serveur MCP tiers qu'après avoir lu son code, et on épingle sa version. Un serveur qui se met à jour tout seul peut changer ses descriptions d'outils entre deux démarrages.

Scénario deux : l'outil qui en fait plus que son nom

Un outil est du code qui s'exécute. Son nom et sa description n'engagent que celui qui les lit.

Un outil appelé lire_ticket peut parfaitement écrire, supprimer, ou appeler une autre API. Le modèle n'a aucun moyen de le savoir, et l'utilisateur qui valide l'appel encore moins : il voit un nom rassurant et une demande de confirmation.

Le seul contrôle qui tient est en dessous du protocole : les droits réels du compte avec lequel le serveur MCP travaille. Un serveur branché sur votre supervision doit posséder un compte en lecture seule sur la supervision, point. Un serveur branché sur une base doit avoir un utilisateur dédié, avec les droits d'un utilisateur dédié, jamais ceux du propriétaire du schéma. Les secrets correspondants vivent dans un coffre, du type OpenBao, et pas dans un fichier de configuration à côté du serveur.

C'est du cloisonnement classique, de la même famille que ce que décrit notre article sur l'architecture zéro confiance. MCP ne change rien à ces principes, il en augmente seulement l'importance, parce que l'appelant n'est plus un programme déterministe mais un modèle qu'on peut persuader.

Scénario trois : deux serveurs inoffensifs qui, ensemble, ne le sont plus

Celui-là est le plus contre-intuitif, et c'est celui qu'on voit venir le plus tard.

Prenez un serveur qui donne accès en lecture à la base de connaissances interne, laquelle contient des procédures, des noms de serveurs, des schémas d'architecture. Inoffensif, il ne fait que lire. Prenez un second serveur qui sait envoyer un message sur une messagerie d'équipe. Inoffensif également, il ne fait qu'écrire un texte fourni.

Branchez les deux sur le même assistant et vous avez créé un chemin d'exfiltration complet : quelque chose qui persuade le modèle de lire une page sensible puis de la poster ailleurs. Chaque serveur, pris seul, passerait n'importe quelle revue. C'est leur combinaison qui crée la capacité.

L'analyse de risque doit donc porter sur l'ensemble des serveurs connectés à un même assistant, jamais sur chacun isolément. En pratique, cela signifie tenir une liste des serveurs branchés, et la relire à chaque ajout en se posant une seule question : avec cette nouvelle pièce, que devient l'ensemble ?

Quand nous montons ce type de raccordement, la règle que nous appliquons est de séparer les assistants par usage plutôt que de tout brancher sur un seul. Un assistant d'exploitation qui lit la supervision et le parc, sans aucun moyen d'écrire à l'extérieur. Un assistant documentaire qui lit la base de connaissances, sans accès à l'infrastructure. Deux périmètres, deux surfaces, et aucune passerelle entre les deux. C'est moins commode, et c'est ce qui rend l'incident possible plutôt que certain.

Scénario quatre : le consentement qui s'use

La spécification demande que l'utilisateur consente explicitement avant l'invocation de tout outil, et qu'il comprenne ce que fait cet outil avant de l'autoriser.

Dans la vraie vie, un utilisateur qui voit la même fenêtre de confirmation quarante fois par jour finit par cliquer sans lire. Le consentement devient un réflexe moteur, et il ne protège plus rien. C'est un phénomène connu, documenté depuis vingt ans sur les alertes de certificat.

Il faut donc choisir ce qui mérite une confirmation. Une lecture sur un périmètre autorisé n'en demande pas : elle a été autorisée une fois pour toutes en accordant le droit de lecture au serveur. Une écriture, une suppression, un appel vers l'extérieur en demandent une, et cette fenêtre-là doit rester rare pour rester lue. Un système qui demande tout le temps ne demande rien.

Ce qu'on branche, ce qu'on ne branche pas

Après quelques raccordements, une ligne de partage se dessine.

Se branchent volontiers : la supervision en lecture, l'inventaire du parc, la base de connaissances interne, les tickets en lecture, la documentation technique. Le point commun est qu'une fuite y serait gênante sans être grave, et qu'aucune action ne modifie l'état du système.

Ne se branchent pas, ou alors avec un compte dédié, un périmètre minuscule et une journalisation complète : tout ce qui touche à l'annuaire, à la paie, à la facturation, aux secrets, à la production. Le gain de confort n'est jamais à la hauteur du risque, et la question « qui a validé cette action » doit pouvoir trouver sa réponse dans un journal, pas dans une conversation.

Une dernière chose à surveiller : la sollicitation, ce mécanisme par lequel un serveur demande une information complémentaire à l'utilisateur. C'est une fonction utile et c'est aussi un canal par lequel un serveur peut réclamer autre chose que ce qu'on imagine. Un serveur qui demande un mot de passe par ce biais est un serveur qu'on débranche.

La règle simple

MCP est une bonne nouvelle : un protocole ouvert et documenté remplace une collection d'intégrations bricolées, et la spécification est honnête sur ce qu'elle ne garantit pas. Le travail de sécurité reste entier, et il est classique : comptes dédiés, droits minimaux, secrets dans un coffre, journalisation, revue de la combinaison des accès plutôt que de chacun.

Traitez chaque serveur MCP comme vous traiteriez une API exposée : avec l'hypothèse qu'elle sera appelée autrement que prévu. À la différence près que l'appelant, ici, peut être convaincu par un texte bien tourné.

Sources

  • Spécification du Model Context Protocol, version du 28 juillet 2026, architecture, fonctionnalités et section sécurité
  • Dépôt GitHub modelcontextprotocol, spécification et documentation, dernière modification le 21 septembre 2026
  • RFC 2119, interprétation des termes normatifs employés par la spécification
  • JSON-RPC 2.0, format de messages sur lequel repose le protocole
Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets d'infrastructure et d'infogérance.

Contactez-nous

Articles similaires

LiteLLM : reprendre la main sur la facture des modèles
Infrastructure
Entreprise
Sécurité

LiteLLM : reprendre la main sur la facture des modèles

Passerelle unique devant tous les modèles d'IA : clés virtuelles, plafonds par équipe, repli entre fournisseurs et bascule vers un GPU local sans rien réécrire.

23 sept. 2026

Lire plus

SecNumCloud : ce que le référentiel exige vraiment
Sécurité
Entreprise

SecNumCloud : ce que le référentiel exige vraiment

Le périmètre réel de la qualification ANSSI, son immunité aux lois extraterritoriales, son coût et les profils d'entreprise pour qui c'est disproportionné.

15 sept. 2026

Lire plus

Éteindre les environnements Kubernetes non-prod la nuit
Kubernetes
DevOps
Entreprise

Éteindre les environnements Kubernetes non-prod la nuit

Scale-to-zero des namespaces non-prod : CronJob, py-kube-downscaler ou KEDA, le rôle du cluster autoscaler et le calcul de gain réellement encaissable.

5 août 2026

Lire plus


SHPV, votre partenaire de confiance en infrastructure et infogérance informatique en France.

SHPV
Contactez-nousNous contacter
Expertise
InfrastructureDatacenterInfogéranceCloudHébergementTransit IP
Légales
Conditions Générales de VenteCPS - Contrat de ServicesCPS - Hébergement CloudCPS - Microsoft 365Accord sous-traitance RGPDTarifs interventions

SHPV © 2026 - Tous droits réservés

Mentions légalesPolitiques de confidentialité
SHPV FRANCE - SAS au capital de 16 000 € - 52 Rue Romain Rolland, 71230 Saint-Vallier - SIRET n°80886287400035 - R.C.S. Chalon-sur-Saône. Par téléphone 09 72 310 818 - Email: support@shpv.fr