Model Context Protocol (MCP) : Le standard pour
By Dorian Laurenceau
📅 Dernière révision : 24 avril 2026. Mise à jour avec les retours et observations d'avril 2026.
Model Context Protocol (MCP) : Le standard pour l'intégration d'outils IA
Fin 2024, Anthropic a lancé le Model Context Protocol (MCP), un standard ouvert pour connecter les assistants IA aux outils externes, sources de données et services. À mesure que les agents IA deviennent plus performants et largement déployés, le besoin d'intégrations standardisées est devenu critique. MCP répond à ce besoin en fournissant un « langage » universel pour la communication IA-outil.
Ce guide complet explique l'architecture, l'implémentation et l'importance de MCP pour le développement IA.
<!-- manual-insight -->
MCP en 2026 : ce que la première année d'adoption nous a vraiment appris
Model Context Protocol (MCP) a été livré fin 2024 et est devenu la façon défaut d'exposer outils et données à Claude d'Anthropic, avec Claude Code, Claude Desktop et l'écosystème plus large l'adoptant. Un an après, les threads sur r/ClaudeAI, r/LocalLLaMA et r/MachineLearning ont une vue plus nuancée que la couverture de lancement.
Ce que MCP a réussi :
- →Un standard vraiment ouvert. La spécification modelcontextprotocol.io est publique, neutre en principe côté vendeur, et a plusieurs implémentations de langage.
- →Séparation des capacités. Outils, ressources et prompts comme primitives distinctes est un design plus propre que l'approche function-calling-only d'OpenAI.
- →Momentum d'écosystème. Le dépôt de serveurs MCP catalogue des centaines d'intégrations communautaires et officielles. GitHub, PostgreSQL, Slack, Stripe, filesystem et bien plus sont des setups d'une ligne.
- →Un fit naturel pour les agents desktop. Les utilisateurs de Claude Desktop peuvent chaîner des outils localement sans écrire de code backend. L'UX est vraiment nouvelle.
Ce que l'année d'adoption a exposé :
- →La sécurité est plus dure qu'il n'y paraît. Laisser un LLM appeler des outils arbitraires sur votre machine nécessite un sandbox soigné. Les écrits de Simon Willison sur la sécurité MCP et le OWASP LLM Top 10 pointent tous deux vers l'injection-prompt-via-résultats-d'outil comme le risque central. Faire tourner des serveurs MCP non fiables n'est pas sécurisé par défaut.
- →Le support cross-vendeur est partiel. OpenAI, Google et les frameworks open-source supportent MCP à des degrés variables. Le cadrage « standard universel » a survendu l'état actuel ; en pratique c'est encore Anthropic-centré.
- →La qualité de description des outils est le bottleneck. MCP ne fixe pas le problème fondamental de fiabilité des agents : les LLMs appellent le mauvais outil ou le bon outil avec les mauvais arguments. Bonnes descriptions, permissions scopées et validation comptent plus que le protocole.
- →Serveurs locaux vs distants ont des tradeoffs différents. Les serveurs stdio locaux sont rapides et privés mais ne scalent pas. Les serveurs distants (HTTP + SSE, maintenant streamable HTTP) scalent mais introduisent latence et nouvelles surfaces d'attaque.
Ce que les équipes de production font vraiment :
- →Curent les serveurs MCP soigneusement. Traitez les serveurs MCP tiers comme des packages tiers : auditer, pinner les versions, sandboxer.
- →Écrivent les descriptions d'outils comme des actifs first-class. La description est la surface de prompt que le modèle utilise ; elle mérite la même attention que n'importe quel prompt système.
- →Utilisent MCP pour l'outillage de développement, pas juste les features end-user. Claude Code expose MCP pour laisser les ingénieurs composer des intégrations IDE ; ça a été un des cas d'usage à plus haut signal.
- →Mélangent MCP avec function calling traditionnel. MCP pour la plomberie universelle, appels de fonction directs pour la logique métier custom où l'overhead du protocole n'aide pas.
Ce qui reste flou :
- →Si OpenAI et Google adopteront pleinement MCP ou forkeront leurs propres standards. Les dynamiques politiques ici comptent plus que les mérites techniques.
- →Comment authentification et autorisation scalent. OAuth, clés API et permissions per-session s'améliorent, mais pas de solution universelle encore.
- →Outils long-running et streaming. Le transport streamable HTTP aide mais a des trous d'adoption.
Le cadrage honnête : MCP est la tentative la plus sérieuse de protocole outil-agent interopérable, et le design technique est solide. La leçon de l'an-un est que le protocole seul ne livre pas d'agents fiables, le design soigné d'outils, la sécurité et l'évaluation le font. MCP est une fondation, pas un produit fini.
Learn AI — From Prompts to Agents
Le problème de l'intégration
Avant MCP
Chaque application IA construisait des intégrations sur mesure :
Chaos des intégrations personnalisées :
| Application IA | Connexion | Service |
|---|---|---|
| App IA 1 | code sur mesure | Base de données A |
| App IA 1 | code sur mesure | API B |
| App IA 1 | code sur mesure | Service C |
| App IA 2 | code différent | Base de données A |
| App IA 2 | code différent | API B |
| App IA 2 | code différent | Service D |
Résultat : N applications × M services = N×M intégrations
Problèmes :
- →Effort dupliqué entre les applications
- →Implémentations incohérentes
- →Maintenance difficile
- →Réutilisabilité limitée
- →Sécurité très variable
La solution MCP
Standardiser la couche de connexion :
Couche standardisée MCP :
| Applications IA | → | Protocole MCP | → | Services |
|---|---|---|---|---|
| App IA 1 | Base de données A | |||
| App IA 2 | Couche standard | API B | ||
| App IA 3 | Service C |
Résultat : N applications + M serveurs (via le standard MCP)
Avantages :
- →Construire une fois, utiliser partout
- →Modèle de sécurité cohérent
- →Serveurs maintenus par la communauté
- →Capacité plug-and-play
- →Limites de responsabilité claires
Architecture MCP
Composants principaux
| Composant | Côté | Rôle | Communication |
|---|---|---|---|
| Hôte MCP | Client | Application IA (Claude Desktop, IDE) | JSON-RPC |
| Serveur MCP | Serveur | Fournisseur de services | JSON-RPC |
| Bibliothèque client | Client | SDK pour l'intégration de l'hôte | Interne |
| Bibliothèque serveur | Serveur | SDK pour l'implémentation du serveur | Interne |
Flux : Hôte MCP ↔ JSON-RPC ↔ Serveur MCP
Hôte MCP :
- →L'application IA (Claude Desktop, IDE, etc.)
- →Maintient les connexions vers les serveurs
- →Route les requêtes de l'IA vers le serveur approprié
Client MCP :
- →Bibliothèque intégrée à l'hôte
- →Gère la communication du protocole
- →Gère le cycle de vie des serveurs
Serveur MCP :
- →Expose des fonctionnalités via MCP
- →Peut être local ou distant
- →Fournit des outils, ressources ou prompts
Trois types de capacités
1. Outils (Tools) Actions que l'IA peut exécuter :
{
"name": "search_database",
"description": "Search the company database",
"inputSchema": {
"type": "object",
"properties": {
"query": {"type": "string"},
"limit": {"type": "integer"}
}
}
}
2. Ressources (Resources) Données que l'IA peut lire :
{
"uri": "file:///data/reports/quarterly.pdf",
"name": "Q4 Report",
"mimeType": "application/pdf"
}
3. Prompts Modèles de prompts réutilisables :
{
"name": "code_review",
"description": "Structured code review prompt",
"arguments": [
{"name": "code", "required": true},
{"name": "language", "required": false}
]
}
Comment fonctionne MCP
Flux de connexion
1. INITIALISATION
- →Hôte → Serveur : requête « initialize »
- →Serveur → Hôte : réponse avec les capacités
- →Hôte → Serveur : notification « initialized »
2. DÉCOUVERTE
- →Hôte → Serveur : requête « list_tools »
- →Serveur → Hôte : liste des outils disponibles
3. INVOCATION
- →L'IA décide d'utiliser un outil
- →Hôte → Serveur : « call_tool » avec arguments
- →Serveur → Hôte : résultat de l'outil
4. NETTOYAGE
- →Hôte → Serveur : notification d'arrêt
Exemple : Outil base de données
Implémentation du serveur (Python) :
from mcp.server import Server
from mcp.types import Tool, TextContent
server = Server("database-server")
@server.list_tools()
async def list_tools():
return [
Tool(
name="query_users",
description="Query user database",
inputSchema={
"type": "object",
"properties": {
"filter": {"type": "string"},
"limit": {"type": "integer", "default": 10}
}
}
)
]
@server.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "query_users":
results = await database.query(
filter=arguments.get("filter"),
limit=arguments.get("limit", 10)
)
return [TextContent(type="text", text=str(results))]
Configuration de l'hôte (Claude Desktop) :
{
"mcpServers": {
"database": {
"command": "python",
"args": ["database_server.py"],
"env": {
"DATABASE_URL": "postgresql://..."
}
}
}
}
Serveurs MCP disponibles
Serveurs officiels
Anthropic fournit des implémentations de référence :
| Serveur | Fonction |
|---|---|
| Filesystem | Lecture/écriture de fichiers locaux |
| GitHub | Opérations sur les dépôts |
| GitLab | Intégration GitLab |
| Slack | Messagerie Slack |
| Google Drive | Accès aux documents |
| PostgreSQL | Requêtes base de données |
| Puppeteer | Automatisation de navigateur |
| Memory | Mémoire persistante |
Serveurs communautaires
Écosystème en pleine croissance :
- →Intégration Notion
- →Linear (suivi des tickets)
- →Obsidian (notes)
- →Diverses API
- →Outils d'entreprise personnalisés
Trouver des serveurs
Ressources :
- →GitHub : github.com/modelcontextprotocol
- →Registre MCP : Liste maintenue par la communauté
- →npm/PyPI : Paquets publiés
Créer des serveurs MCP
SDK Python
# Serveur MCP basique en Python
import asyncio
from mcp.server import Server
from mcp.server.stdio import stdio_server
from mcp.types import Tool, TextContent
# Créer le serveur
app = Server("my-server")
# Définir les outils
@app.list_tools()
async def list_tools():
return [
Tool(
name="greet",
description="Generate a greeting",
inputSchema={
"type": "object",
"properties": {
"name": {"type": "string"}
},
"required": ["name"]
}
)
]
# Implémenter les outils
@app.call_tool()
async def call_tool(name: str, arguments: dict):
if name == "greet":
return [TextContent(
type="text",
text=f"Hello, {arguments['name']}!"
)]
# Exécuter le serveur
async def main():
async with stdio_server() as (read, write):
await app.run(read, write)
asyncio.run(main())
SDK TypeScript
// Serveur MCP basique en TypeScript
import { Server } from "@modelcontextprotocol/sdk/server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";
const server = new Server({
name: "my-server",
version: "1.0.0"
});
// Définir les outils
server.setRequestHandler("tools/list", async () => ({
tools: [{
name: "calculate",
description: "Perform calculation",
inputSchema: {
type: "object",
properties: {
expression: { type: "string" }
}
}
}]
}));
// Implémenter les outils
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "calculate") {
const result = eval(request.params.arguments.expression);
return { content: [{ type: "text", text: String(result) }] };
}
});
// Démarrer le serveur
const transport = new StdioServerTransport();
server.connect(transport);
Considérations de sécurité
Limites de confiance
| Couche | Niveau de confiance | Responsabilités |
|---|---|---|
| Sorties du modèle IA | ⚠️ NON FIABLES | Réponses potentiellement adverses |
| Hôte MCP | ✅ Validé | Valide les appels d'outils, applique les permissions, journalise les actions |
| Serveur MCP | ✅ Contrôlé | Implémente les contrôles d'accès, valide les entrées, limite la portée |
Flux : Sortie IA non fiable → Hôte MCP (validation) → Serveur MCP (exécution)
Bonnes pratiques
Pour les développeurs de serveurs :
- →Valider strictement toutes les entrées
- →Implémenter le principe du moindre privilège
- →Journaliser toutes les opérations
- →Gérer les erreurs de manière élégante
- →Ne jamais faire confiance aux chemins/URL fournis par l'IA
Pour les administrateurs d'hôtes :
- →Vérifier les capacités du serveur avant de l'activer
- →Configurer les permissions appropriées
- →Surveiller l'activité du serveur
- →Maintenir les serveurs à jour
- →Isoler les serveurs sensibles
Support des hôtes
Claude Desktop
Support natif de MCP :
- →Configurer les serveurs dans les paramètres
- →Les serveurs s'exécutent localement
- →Support complet outils/ressources/prompts
Intégrations IDE
Support croissant :
- →Extensions VS Code
- →Plugins JetBrains
- →Intégrations IDE personnalisées
Applications personnalisées
Construisez la vôtre :
- →Utilisez les bibliothèques client MCP
- →Implémentez la logique d'hôte
- →Connectez-vous à n'importe quel serveur MCP
Avenir de MCP
Feuille de route
Améliorations du protocole :
- →Réponses en streaming
- →Meilleure gestion des erreurs
- →Standards d'authentification
- →Protocoles de serveurs distants
Croissance de l'écosystème :
- →Plus de serveurs officiels
- →Intégrations entreprise
- →Programme de certification
- →Découverte améliorée
Adoption par l'industrie
MCP est en passe de devenir :
- →Le standard pour les intégrations IA
- →Une compétence requise pour les développeurs IA
- →Un élément de l'architecture IA d'entreprise
En bref
- →
MCP est un standard ouvert pour connecter les assistants IA aux outils et sources de données
- →
Trois types de capacités : outils (actions), ressources (données), prompts (modèles)
- →
L'architecture sépare les hôtes (applications IA) des serveurs (capacités)
- →
Des SDK sont disponibles pour le développement en Python et TypeScript
- →
Un écosystème en croissance de serveurs officiels et communautaires
- →
La sécurité nécessite une gestion rigoureuse des limites de confiance
- →
En passe de devenir le standard pour l'intégration d'outils IA dans toute l'industrie
Apprenez le développement d'agents IA
MCP est une technologie clé pour créer des agents IA performants. Comprendre comment les agents utilisent les outils, et comment construire ces intégrations, est essentiel pour le développement IA moderne.
Dans notre Module 6, Agents IA & Orchestration, vous apprendrez :
- →Comment les agents IA raisonnent et planifient
- →Les patterns d'intégration d'outils
- →Le framework ReAct
- →L'orchestration multi-agents
- →La construction d'agents sûrs et performants
- →La gestion des erreurs et la récupération
Ces compétences vous prépareront à créer des agents IA prêts pour la production.
Module 6 — AI Agents & ReAct
Create autonomous agents that reason and take actions.
Dorian Laurenceau
Full-Stack Developer & Learning DesignerFull-stack web developer and learning designer. I spent 4 years as a freelance full-stack developer and 4 years teaching React, JavaScript, HTML/CSS and WordPress to adult learners. Today I design learning paths in web development and AI, grounded in learning science. I founded learn-prompting.fr to make AI practical and accessible, and built the Bluff app to gamify political transparency.
Weekly AI Insights
Tools, techniques & news — curated for AI practitioners. Free, no spam.
Free, no spam. Unsubscribe anytime.
→Related Articles
FAQ
Qu'est-ce que le Model Context Protocol (MCP) ?+
MCP est un protocole ouvert créé par Anthropic qui standardise la façon dont les assistants IA se connectent aux outils externes et aux sources de données. C'est comme l'USB pour l'IA, un connecteur universel compatible avec tout service conforme.
En quoi MCP diffère-t-il du function calling ?+
Le function calling est spécifique à chaque fournisseur (OpenAI, Anthropic ont des formats différents). MCP est un standard universel, créez un serveur MCP une seule fois, et il fonctionne avec n'importe quel client IA compatible MCP.
À quoi MCP peut-il se connecter ?+
Bases de données (PostgreSQL, SQLite), API (GitHub, Slack, Linear), systèmes de fichiers, services web et outils personnalisés. L'écosystème inclut des serveurs communautaires pour les services populaires.
Comment utiliser MCP avec Claude Code ?+
Configurez les serveurs MCP dans les paramètres de Claude Code. Spécifiez la commande du serveur et les variables d'environnement. Claude découvre automatiquement les outils disponibles et peut les utiliser pendant les sessions.