In this article
Qu’est-ce que le MCP en IA ? Toutes les réponses à vos questions
Qu’est-ce que le MCP ?
MCP signifie Model Context Protocol. Il s’agit d’une spécification d’Anthropic qui définit comment les LLM (grands modèles de langage) peuvent communiquer, partager des données et exploiter des ressources externes au-delà des données sur lesquelles ils ont été entraînés.
Annoncé en novembre 2024, le MCP a profondément marqué le secteur. Il a incité les développeurs à créer différents types de fonctionnalités accessibles aux modèles pour étendre leurs capacités au-delà de la simple génération de texte à partir de texte. Les modèles peuvent désormais agir et exploiter des données provenant de sources sur lesquelles ils n’ont pas été entraînés, ce qui renforce leur autonomie dans l’exécution de tâches.

La spécification MCP définit officiellement l’« application alimentée par l’IA » comme un MCP Host. Toutefois, le terme « serveur » pouvant prêter à confusion, nous utiliserons principalement l’expression « application alimentée par l’IA » dans cet article.
Qui crée le client MCP ?
Les applications alimentées par l’IA permettent généralement aux utilisateurs d’ajouter des serveurs MCP avec lesquels ils peuvent interagir. Le client MCP est donc souvent implémenté par l’application alimentée par l’IA, tandis que les développeurs créent les serveurs MCP qui fournissent les fonctionnalités tierces.
Voici quelques exemples d’applications alimentées par l’IA, également appelées MCP Hosts :
Claude Desktop
Cursor
Qodo AI
Ces applications d’IA implémentent un client MCP auquel vous pouvez ajouter différents serveurs MCP afin d’accéder à des fonctionnalités variées, comme la gestion de vos workflows Git ou la recherche sur le Web.
Où trouver des serveurs MCP ?
Anthropic tient à jour un dépôt recensant les serveurs MCP proposés par la communauté. Le dépôt @modelcontextprotocol/servers contient des implémentations de référence de serveurs MCP ainsi que des contributions de tiers.
Avertissement de sécurité :
Vous devez faire preuve d’une grande prudence avec le code de serveurs MCP non officiels et non audités, car il peut contenir des logiciels malveillants, présenter des risques pour la sécurité de la chaîne d’approvisionnement et inclure des pratiques de codage non sécurisées susceptibles d’affecter votre infrastructure et vos applications d’IA.
Vous pouvez également créer votre propre serveur MCP. Anthropic fournit des SDK MCP, comme le SDK JavaScript très populaire @modelcontextprotocol/sdk, qui permet aux développeurs de créer leurs propres serveurs MCP et d’exposer des outils utilisables par les LLM.
Voici un exemple simplifié de code de serveur MCP implémenté en JavaScript :
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
// Create an MCP server
const server = new McpServer({
name: "Demo",
version: "1.0.0"
});
// Add an addition tool
server.tool("add",
{ a: z.number(), b: z.number() },
async ({ a, b }) => ({
content: [{ type: "text", text: String(a + b) }]
})
);Quels aspects de sécurité prendre en compte lors de l’adoption du MCP ?
La liste suivante des risques de sécurité liés à l’adoption de serveurs MCP pour renforcer vos applications alimentées par l’IA n’est pas exhaustive. Elle présente néanmoins un aperçu et des exemples concrets de problèmes de sécurité et de vulnérabilités de sécurité susceptibles d’apparaître dans les serveurs MCP :
Contrôle des accès - Si vous exposez une ressource MCP dans un serveur MCP, comment distinguer les utilisateurs et leurs rôles lorsqu’ils manipulent le LLM via l’application alimentée par l’IA pour accéder aux données exposées par une ressource MCP et les récupérer ?
Programmation sécurisée - Les serveurs MCP ne sont que des logiciels supplémentaires, qui peuvent être programmés de manière non sécurisée par inadvertance. Comme pour le développement d’applications sans rapport avec MCP, les développeurs doivent respecter les pratiques de programmation sécurisée, notamment se protéger contre les traversées de répertoires et les injections de code. Par exemple, un serveur MCP peut exposer un outil de lecture de fichiers. Si l’accès aux fichiers doit être limité à un répertoire parent, comment vous assurer que votre code n’est pas vulnérable par erreur à l’attaque classique de traversée de répertoires ../ ?
Comment le serveur MCP et le client communiquent-ils ?
Le format d’échange de données repose sur JSON-RPC 2.0 et sur une spécification MCP détaillée qui définit un protocole de communication optimal pour les LLM et les workflows basés sur l’IA.
Le protocole de communication JSON-RPC peut être établi via l’un de ces deux types de canaux entre un serveur MCP et un client MCP :
Entrées/sorties standard d’un processus système - Ce canal permet de lancer des serveurs MCP localement, ce qui présente des avantages en matière de sécurité et de confidentialité, entre autres, comme la réduction de la latence. Il démarre un processus système (tel que
npx <mcp-server>). Tant que le processus est en cours d’exécution, les données et les commandes transitent par les fluxstdout,stdioetstderrdu processus.Réseau HTTP avec Server-Sent Events (SSE) - Principalement conçu pour communiquer avec des serveurs MCP déployés à distance, qui peuvent étendre les capacités d’une application alimentée par l’IA.
Le serveur MCP peut-il fournir des données ?
Oui. Au-delà des outils abstraits, qui regroupent des fonctionnalités générales, les serveurs MCP peuvent définir des sources de données et même proposer un ensemble d’invites que les LLM peuvent exploiter comme technique de prompt engineering pour déclencher des actions et collecter des données.
Les serveurs MCP peuvent fournir les fonctionnalités suivantes pour étendre les capacités des LLM :
Ressources MCP - Les ressources sont essentiellement différentes sources de données pouvant être mises à la disposition des LLM. Par exemple, un serveur MCP peut exposer le contenu d’un fichier ou la liste des fichiers d’un répertoire comme ressource de données pour un LLM. On peut considérer les ressources MCP comme une forme de RAG qui enrichit et étend les sources de données du LLM.
Prompts MCP - Les utilisateurs d’applications alimentées par l’IA ne connaissent pas nécessairement toutes les fonctionnalités à leur disposition. Les serveurs MCP peuvent donc exposer une liste de prompts textuels que les clients MCP peuvent leur proposer en fonction de leur signification. Les utilisateurs peuvent ainsi utiliser directement ces prompts pour déclencher des actions précises ou collecter des données.
Outils MCP - Sans doute le cas d’usage le plus courant des serveurs MCP : permettre aux LLM d’effectuer des actions. Avant le MCP, les LLM pouvaient générer du texte en réponse, mais pas effectuer de recherche sur le Web ni exécuter d’actions. Cela a changé avec l’arrivée des MCP (ou, plus précisément, avec le précurseur du MCP chez OpenAI : l’appel de fonctions). Les serveurs MCP peuvent désormais implémenter une action complète, comme faire fonctionner la main d’un robot ou saisir une requête dans le champ de recherche d’un navigateur, puis exposer cette fonctionnalité au LLM, qui peut alors déclencher ces actions.
Comment déboguer la communication entre le serveur MCP et le client ?
Les développeurs qui créent un serveur MCP utilisant le transport HTTP peuvent toujours consulter les journaux de sortie dans la console, comme le font habituellement les développeurs JavaScript. Cependant, cette méthode ne fonctionne pas pour le transport de communication interprocessus STDIO (Standard Input/Output) des serveurs MCP : les canaux STDIO sont exclusivement réservés au protocole, et le serveur MCP s’exécute comme un sous-processus du MCP Host, et non comme un outil en ligne de commande que vous utiliseriez normalement dans un shell (techniquement, un TTY).
Claude recommande principalement les méthodes et outils suivants pour déboguer un serveur MCP :
MCP Inspector - MCP Inspector est un outil dédié en ligne de commande qui intercepte la communication entre le client MCP et le serveur MCP. Il vous permet d’inspecter, de déboguer et de suivre les échanges, ainsi que d’en extraire des informations et des enseignements. Voici un exemple d’utilisation de l’inspecteur MCP JavaScript disponible dans le registre npm :
npx @modelcontextprotocol/inspector <command> <arg1> <arg2>Remarque : un package PyPI existe également pour les développeurs qui créent des serveurs MCP en Python.
Outil de journalisation - Il est recommandé d’utiliser un outil de journalisation dédié, comme un système de journaux local ou un service de journalisation à distance sur réseau, pour recueillir des informations auprès d’un serveur MCP basé sur HTTP ou STDIO. La conservation de journaux dans des fichiers est particulièrement accessible et utile pour les serveurs MCP qui communiquent via STDIO.
En quoi le MCP diffère-t-il des outils d’OpenAI ?
Les outils, également appelés utilisation de fonctions dans d’autres API et frameworks, permettent de créer des workflows agentiques en exposant au modèle des fonctionnalités qu’il peut exécuter. Les outils correspondent aux détails de l’implémentation, tandis que le Model Context Protocol est une spécification de niveau supérieur qui définit les contrats et les normes pour la création de ces outils et fonctions.
Le MCP est-il similaire à GraphQL ?
À l’annonce des MCP et lors de leur popularisation, les développeurs se sont demandé s’ils ne réinventaient pas tout simplement GraphQL, une alternative aux API RESTful et un langage de communication et de requête basé sur JSON-RPC. Malgré certaines similitudes, les MCP ne visent pas à remplacer GraphQL, à le reproduire ni à s’en inspirer.
Les MCP sont conçus pour tirer parti du comportement autonome des LLM et des données disponibles, et pour renforcer ces capacités. Avant l’arrivée des LLM, les workflows OpenAI et d’IA agentique utilisant l’appel de fonctions ou l’appel d’outils obligeaient les développeurs à créer ces fonctionnalités sans norme définissant l’interface. Leur découvrabilité dépendait alors du modèle et du framework choisis par les développeurs. Les MCP ont été créés pour résoudre ce problème en fournissant une plateforme de communication standardisée, qui propose des actions et des données enrichies grâce à des fonctionnalités d’auto-découverte.
Vous souhaitez en savoir plus sur le développement d’applications avec l’IA ? Découvrez 10 bonnes pratiques pour développer de manière sécurisée avec l’IA.
Bonnes pratiques pour développer avec l’IA en toute sécurité
10 conseils pour aider les développeurs et les professionnels de la sécurité à atténuer efficacement les risques potentiels tout en tirant pleinement parti du développement avec l’IA.