Qu’est-ce que le Model Context Protocol (MCP) ?
Le Model Context Protocol, ou MCP, est un standard ouvert et open source qui sert à brancher une application d’IA sur des systèmes extérieurs : des fichiers, une base de données, un outil de recherche, un logiciel métier. La documentation officielle le compare à un port USB-C : une prise commune, au lieu d’un câble différent pour chaque appareil.
Anthropic l’a présenté et publié en open source le 25 novembre 2024, avec une spécification, des kits de développement (SDK), la prise en charge de serveurs locaux dans l’application Claude Desktop et un dépôt de serveurs prêts à l’emploi pour Google Drive, Slack, GitHub, Git, Postgres et Puppeteer. Le problème visé, selon l’annonce : chaque nouvelle source de données demandait jusque-là sa propre intégration. D’après la même annonce, le protocole a été créé chez Anthropic par David Soria Parra et Justin Spahr-Summers.
La spécification dit s’inspirer du Language Server Protocol, qui a unifié la prise en charge des langages de programmation dans les éditeurs de code. MCP fait la même chose pour le contexte et les outils fournis aux applications d’IA. La documentation cite parmi les logiciels compatibles Claude, ChatGPT, Visual Studio Code et Cursor. Dans ChatGPT, ce sont des serveurs MCP qui font fonctionner les apps : voir le guide des apps ChatGPT.
Comment fonctionnent un client et un serveur MCP
Le protocole distingue trois rôles. L’hôte est l’application d’IA que vous utilisez, par exemple Claude Desktop, Claude Code ou VS Code. Pour chaque serveur auquel il se connecte, l’hôte crée un client MCP, qui garde une connexion dédiée avec ce serveur. Le serveur MCP est le programme qui fournit le contexte et les actions ; il peut tourner sur votre ordinateur (serveur « local ») ou sur Internet (serveur « distant »).
Un serveur propose trois sortes d’éléments, que la documentation appelle des primitives :
- des outils : des fonctions que le modèle décide d’appeler, comme interroger une base, envoyer un message ou créer un événement d’agenda ;
- des ressources : des données en lecture, chacune repérée par une adresse (URI), comme le contenu d’un fichier ou le schéma d’une base, que l’application choisit de transmettre au modèle ;
- des prompts : des modèles d’instructions que l’utilisateur déclenche lui-même, souvent par une commande qui commence par « / ».
Le client découvre ce que le serveur propose par des requêtes de liste (tools/list pour les outils), puis appelle un outil avec tools/call. Les messages suivent le format JSON-RPC 2.0. Deux transports sont prévus : stdio, quand le serveur est un programme lancé sur la même machine, et Streamable HTTP, pour un serveur distant qui peut servir de nombreux clients. Pour ce dernier, la documentation recommande OAuth pour obtenir les jetons d’accès.
Le dialogue va aussi dans l’autre sens : par l’« élicitation », un serveur peut demander une précision ou une confirmation à l’utilisateur. La documentation interdit d’y réclamer un mot de passe, une clé d’API ou des données de paiement par formulaire ; ces échanges passent par une page ouverte à part (mode URL), hors de la conversation.
La spécification évolue par versions datées. Celle que décrit la documentation consultée, 2026-07-28, fait porter à chaque requête la version du protocole et les capacités du client ; un serveur annonce les siennes par la requête server/discover. Deux fonctions côté client y sont dépréciées, l’échantillonnage (sampling) et les racines (roots). Des extensions facultatives complètent le cœur du protocole : Tasks pour les opérations longues, MCP Apps pour afficher une interface interactive dans la conversation, et Skills over MCP pour distribuer des instructions d’agent par MCP.
Exemples de serveurs MCP
La documentation du protocole cite des serveurs de fichiers, de bases de données, GitHub, Slack ou d’agenda. Quelques exemples précis tirés des pages lues :
- le serveur
@modelcontextprotocol/server-filesystem, utilisé dans le tutoriel officiel pour Claude Desktop : il lit, crée, déplace et recherche des fichiers, uniquement dans les dossiers que vous lui indiquez ; - le serveur de Sentry, cité comme exemple de serveur distant, hébergé par Sentry ;
- dans la documentation de Claude Code : Notion (
https://mcp.notion.com/mcp), GitHub, ou une base PostgreSQL interrogée par le serveur DBHub, que la documentation conseille de brancher avec un utilisateur en lecture seule ; - le serveur hébergé de Supabase (
https://mcp.supabase.com/mcp), qui donne accès aux tables, aux migrations, aux Edge Functions, aux journaux et à la documentation d’un projet.
Dans l’annuaire, des entreprises décrivent leurs usages : chez ManoMano, un agent lit les plantages des applications mobiles par le serveur MCP officiel de Firebase, limité à cinq outils en lecture seule ; l’agent de tri de Wayflyer interroge des outils internes par MCP ; SNCF Connect a publié dans ChatGPT une application fondée sur l’extension MCP Apps, avec un serveur écrit en Kotlin. Toutes les fiches liées sont listées plus bas.
Pour construire le vôtre, la skill d’Anthropic Construire un serveur MCP de qualité guide la conception des outils en Python (FastMCP) ou en TypeScript.
Installer un serveur MCP dans Claude, Cursor ou VS Code
Le principe est le même partout : vous déclarez soit l’adresse d’un serveur distant, soit la commande qui lance un serveur local, puis vous vous authentifiez si le service le demande. Les écrans et les fichiers changent selon le logiciel.
Claude Desktop, avec un serveur local
Ouvrez les réglages de l’application (depuis le menu Claude, pas ceux du compte), onglet Développeur, bouton « Edit Config ». Le fichier claude_desktop_config.json s’ouvre : déclarez le serveur sous la clé mcpServers, avec la commande à lancer (par exemple npx et le nom du paquet) et ses arguments, puis quittez et relancez complètement Claude Desktop. Le tutoriel officiel prévient que le serveur tourne avec les droits de votre compte : ne lui ouvrez que les dossiers que vous acceptez de voir lus et modifiés. Claude demande votre accord avant chaque action.
Claude sur le web ou sur ordinateur, avec un serveur distant
Dans Réglages, rubrique Connecteurs, choisissez Ajouter, puis « connecteur personnalisé », et collez l’adresse du serveur fournie par son éditeur. Après l’authentification, les réglages du connecteur permettent d’activer ou de désactiver chaque outil.
Claude Code
Un serveur distant s’ajoute en une commande, par exemple claude mcp add --transport http notion https://mcp.notion.com/mcp. Pour un serveur local, la commande qui lance le serveur se place après -- : claude mcp add --env AIRTABLE_API_KEY=VOTRE_CLE --transport stdio airtable -- npx -y airtable-mcp-server. L’option --scope choisit la portée : local (par défaut, vous seul, dans ce projet), project (un fichier .mcp.json partagé avec l’équipe par le dépôt, que Claude Code fait approuver en session interactive avant de s’en servir) ou user (tous vos projets). La commande /mcp affiche l’état des serveurs et lance l’authentification OAuth. Le transport SSE est déprécié au profit de HTTP.
Cursor
Cursor lit un fichier .cursor/mcp.json dans le projet, ou ~/.cursor/mcp.json pour tous vos projets, avec la même clé mcpServers : command, args et env pour un serveur local, url et headers pour un serveur distant. Des serveurs s’installent aussi en un clic depuis la Marketplace de Cursor. Par défaut, Cursor demande votre approbation avant d’utiliser un outil MCP ; en cas de problème, les journaux sont dans le panneau Output, entrée « MCP Logs ».
VS Code
La commande « MCP: Add Server » de la palette de commandes lance un ajout guidé. Le format de configuration propre à VS Code utilise la clé servers, là où les autres outils utilisent mcpServers. La documentation demande de vérifier l’éditeur du serveur, la commande ou l’adresse et les accès demandés avant de l’installer ou de le démarrer.
Exemple : le serveur MCP de Supabase
Supabase publie la configuration de son serveur pour de nombreux clients, dont Claude Code, Cursor et VS Code. Dans Claude Code : claude mcp add --scope project --transport http supabase "https://mcp.supabase.com/mcp", puis /mcp pour s’authentifier. Dans Cursor, l’adresse se déclare dans .cursor/mcp.json. Des paramètres ajoutés à l’adresse restreignent l’accès : project_ref limite le serveur à un projet, read_only=true n’autorise que la lecture, features choisit les groupes d’outils. La skill officielle Développer avec Supabase couvre aussi la CLI et le serveur MCP.
Sécurité : les points à vérifier avant de brancher un serveur
La spécification le dit sans détour : un outil MCP revient à exécuter du code, et le protocole ne peut pas imposer lui-même les règles de sécurité. C’est aux applications et aux serveurs de les appliquer. Les points qui reviennent dans les pages lues :
- Votre accord avant chaque action. La spécification demande un consentement explicite avant tout appel d’outil, et tient pour non fiables les descriptions d’outils d’un serveur qui ne l’est pas. Claude Desktop et Cursor demandent votre accord par défaut, et Supabase note que la plupart des clients MCP font valider chaque appel d’outil : gardez cette validation pour le travail courant.
- Des serveurs de sources fiables. Cursor conseille de vérifier la source, les données et API auxquelles le serveur accède, et de lire son code pour les intégrations critiques. Claude Code avertit qu’un serveur qui récupère du contenu extérieur expose à l’injection de prompt.
- Un serveur local a vos droits. Le guide de sécurité du protocole décrit des commandes de démarrage piégées, glissées dans une configuration, qui exfiltrent par exemple une clé SSH. Il demande au client d’afficher la commande complète avant de l’exécuter, et recommande de lancer les serveurs dans un environnement isolé (bac à sable).
- Le moins de droits possible. Clés d’API restreintes au minimum (Cursor), permissions OAuth réduites plutôt que des accès globaux (guide de sécurité du protocole), mode lecture seule et périmètre limité à un projet quand le serveur le permet (Supabase). ManoMano a limité son agent à cinq outils en lecture seule.
- Des secrets hors du chat. Passez les clés par des variables d’environnement plutôt qu’en clair dans un fichier (Cursor), ne les collez pas dans la conversation et ne les publiez pas dans le dépôt (VS Code).
- Les données peuvent contenir des ordres. Supabase donne l’exemple d’un ticket de support dont le texte demande à l’agent d’extraire une table : si un développeur aux droits étendus fait lire ce ticket à son agent, celui-ci peut tenter d’obéir. Relisez chaque appel d’outil avant de le valider.
- Pour qui publie un serveur. La spécification d’autorisation interdit de relayer des jetons qui n’ont pas été émis pour le serveur (« token passthrough »). L’équipe de SNCF Connect rappelle qu’il faut protéger un serveur MCP comme toute API publique. Supabase déconseille de confier son serveur à des clients finaux, car il agit avec les droits du développeur.
MCP ou skill : quelle différence ?
Un serveur MCP donne à l’agent un accès : à des données et à des actions dans un autre système, par l’intermédiaire d’un programme qui tourne à côté de lui. Une skill (Agent Skill) lui donne un savoir-faire : un dossier qui contient un fichier SKILL.md (un nom, une description, des instructions) et parfois des scripts ou des ressources. L’agent garde en mémoire le nom et la description, et ne lit le reste que lorsque la tâche s’y prête ; Anthropic appelle ce principe la divulgation progressive. Explication détaillée : c’est quoi une skill (SKILL.md) ?
Les deux se complètent. En octobre 2025, Anthropic écrivait vouloir explorer la façon dont les skills peuvent compléter les serveurs MCP, en apprenant à l’agent des enchaînements plus complexes qui font appel à des outils externes ; la spécification MCP liste désormais une extension « Skills over MCP ». Dans la bibliothèque, la skill Utiliser le Hub Hugging Face via son serveur MCP ne sert que si ce serveur est connecté, et Installer le serveur MCP Google Ads guide son installation.
Les deux formats partagent aussi le même risque : une skill ou un serveur malveillant peut pousser l’agent à faire fuiter des données ou à agir sans qu’on le veuille. Anthropic recommande de n’installer des skills que de sources de confiance et d’auditer les autres, comme pour un serveur MCP.
QUESTIONS FRÉQUENTES
En bref, avec les sources.
C’est quoi un serveur MCP, en une phrase ?
Un programme qui met à la disposition d’une application d’IA des outils, des données et des modèles d’instructions, selon le protocole standard MCP (Model Context Protocol). Il peut tourner sur votre ordinateur ou sur Internet.
« MCP server » et « serveur MCP », est-ce la même chose ?
Oui : « serveur MCP » est la traduction de « MCP server ». MCP est le sigle de Model Context Protocol, le protocole publié en open source par Anthropic le 25 novembre 2024.
Faut-il savoir coder pour utiliser un serveur MCP ?
Pas pour en brancher un qui existe : dans Claude, un connecteur personnalisé se crée en collant l’adresse du serveur, et Cursor propose une installation en un clic. Un serveur local demande d’éditer un fichier JSON et souvent d’installer Node.js, comme dans le tutoriel officiel du serveur Filesystem. Pour en construire un, il faut programmer avec un SDK ; la skill Construire un serveur MCP de qualité accompagne cette étape.
Comment ajouter un serveur MCP à Claude ?
Dans Claude sur le web ou sur ordinateur : Réglages, Connecteurs, Ajouter, « connecteur personnalisé », puis l’adresse du serveur. Dans Claude Desktop, un serveur local se déclare dans le fichier claude_desktop_config.json (Réglages, Développeur, Edit Config). Dans Claude Code : la commande claude mcp add, puis /mcp pour s’authentifier.
Comment installer le serveur MCP de Supabase ?
Son adresse hébergée est https://mcp.supabase.com/mcp. Dans Claude Code : claude mcp add --scope project --transport http supabase "https://mcp.supabase.com/mcp", puis /mcp pour s’authentifier. Supabase recommande de limiter le serveur à un projet (project_ref), d’activer la lecture seule (read_only=true) et de ne pas le confier à vos clients finaux.
Un serveur MCP est-il sûr ?
Cela dépend du serveur et de la façon de le brancher. La spécification précise que le protocole ne peut pas imposer la sécurité lui-même : un outil revient à exécuter du code. Installez des serveurs de sources fiables, gardez l’approbation de chaque appel d’outil, donnez le moins de droits possible et gardez les clés hors de la conversation.
Quelle différence entre un serveur MCP et une skill ?
Le serveur MCP donne l’accès à un système (données, actions) ; la skill apporte des instructions et des scripts que l’agent charge quand la tâche s’y prête. Les deux se combinent : certaines skills supposent qu’un serveur MCP soit connecté. Voir c’est quoi une skill ?