Model Context Protocol (MCP)
Ce que vous saurez dans 3 minutes
- Décideurs : Comprendre pourquoi MCP va réduire les coûts d’intégration et accélérer l’adoption des agents IA.
- Experts Techniques : Maîtriser l’architecture MCP et implémenter un serveur custom.
- Opérationnels : Identifier les cas d’usage où MCP simplifie vos workflows d’automatisation.
1. Comprendre
Chaque LLM aujourd’hui définit sa propre façon d’appeler des outils. OpenAI a son format “function calling”, Anthropic un autre, Google un autre encore. Le Model Context Protocol, lancé par Anthropic en novembre 2024, propose un standard universel : une seule façon de connecter n’importe quel outil à n’importe quel LLM.
Définition
Contexte & Enjeux
Le déclencheur : L’explosion des “agents IA” capables d’utiliser des outils a créé un chaos d’intégrations propriétaires. Chaque combinaison LLM × Outil nécessitait du code custom.
Le risque : Sans standard, l’écosystème se fragmente. Les développeurs d’outils doivent maintenir N intégrations, les utilisateurs sont enfermés dans des silos.
L’Analogie USB
2. Appliquer
Architecture MCP
flowchart LR
subgraph "Votre Machine"
HOST[Host<br/>Claude Desktop<br/>Cursor, Zed] --> CLIENT[Client MCP]
CLIENT <-->|JSON-RPC| SERVER1[Server MCP<br/>Filesystem]
CLIENT <-->|JSON-RPC| SERVER2[Server MCP<br/>GitHub]
CLIENT <-->|JSON-RPC| SERVER3[Server MCP<br/>Slack]
end
SERVER1 --> FS[(Fichiers<br/>Locaux)]
SERVER2 --> GH[(GitHub<br/>API)]
SERVER3 --> SL[(Slack<br/>API)]
style HOST fill:#339af0
style CLIENT fill:#51cf66
style SERVER1 fill:#ffd43b
style SERVER2 fill:#ffd43b
style SERVER3 fill:#ffd43b
Les Trois Composants
Rôle : L’application utilisateur (IDE, assistant IA).
Exemples :
- Claude Desktop
- Cursor
- Zed
- Continue.dev
Responsabilités :
- Gère l’interface utilisateur
- Coordonne les Clients MCP
- Applique les politiques de sécurité
Rôle : Bibliothèque gérant la communication avec les Servers.
Protocole : JSON-RPC 2.0 sur stdio, HTTP/SSE, ou WebSocket.
Capacités :
- Découverte des outils disponibles
- Appels de méthodes
- Gestion des ressources
# Exemple avec le SDK Pythonfrom mcp import ClientSession
async with ClientSession(server_params) as session: tools = await session.list_tools() result = await session.call_tool("read_file", {"path": "/etc/hosts"})Rôle : Expose des capacités à l’écosystème MCP.
Primitives exposées :
| Primitive | Description |
|---|---|
| Tools | Actions exécutables (read_file, send_email) |
| Resources | Données consultables (fichiers, DB) |
| Prompts | Templates de prompts réutilisables |
# Serveur MCP minimalfrom mcp.server import Serverfrom mcp.types import Tool
server = Server("demo-server")
@server.tool()async def get_weather(city: str) -> str: """Récupère la météo pour une ville""" return f"Il fait 22°C à {city}"
# Run via stdioserver.run()Configuration Claude Desktop
// ~/Library/Application Support/Claude/claude_desktop_config.json{ "mcpServers": { "filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/me/Projects"] }, "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_TOKEN": "ghp_xxx" } }, "slack": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-slack"], "env": { "SLACK_TOKEN": "xoxb-xxx" } } }}Serveurs Officiels Disponibles
| Serveur | Fonction | Usage |
|---|---|---|
| @mcp/server-filesystem | Lecture/écriture fichiers locaux | Dev, automatisation |
| @mcp/server-github | Issues, PRs, code search | Dev workflow |
| @mcp/server-slack | Messages, channels | Communication |
| @mcp/server-postgres | Requêtes SQL | Data access |
| @mcp/server-puppeteer | Contrôle navigateur | Web scraping, tests |
| @mcp/server-fetch | HTTP requests | APIs externes |
3. Aller plus loin
Créer un Serveur Custom
-
Initialiser le projet
Fenêtre de terminal npx @anthropic/create-mcp-server my-servercd my-server && npm install -
Définir les Tools
server.tool("analyze_pdf", { path: "string" }, async (args) => {const content = await extractPdfText(args.path);return { analysis: summarize(content) };}); -
Exposer des Resources
server.resource("company-docs", async () => {return listDocuments("/path/to/docs");}); -
Tester localement
Fenêtre de terminal npm run dev# Ajouter à claude_desktop_config.json
Sécurité et Sandboxing
Prospective
MCP est en phase d’adoption rapide. En 2026 :
- Adoption par d’autres éditeurs (Microsoft, Google ?)
- Extension vers les Agents multi-step autonomes
- Marketplace de serveurs certifiés
- Modèle de permissions standardisé
Questions Fréquentes
MCP remplace-t-il les “function calls” d’OpenAI ?
Pas directement. MCP est un protocole de transport entre l’application et les outils. Les “function calls” sont le format de réponse du LLM. MCP peut transporter des appels de function, mais standardise aussi d’autres cas (resources, prompts).
Puis-je utiliser MCP avec ChatGPT ou Claude API ?
MCP est actuellement supporté par Claude Desktop, Cursor, Zed et d’autres IDE. L’API Claude brute ne supporte pas MCP directement – c’est le Host qui gère la connexion. Pour OpenAI, il faudrait un adaptateur custom.
Quelle est la différence entre MCP et LangChain Tools ?
LangChain Tools est un framework avec ses propres abstractions. MCP est un protocole standardisé agnostique. Un tool LangChain peut être exposé via MCP, mais LangChain n’est pas requis pour utiliser MCP.
Notions Liées (Spider Web)
- Concepts : IA Agentique, Agents Autonomes
- Outils : Claude Code, Cursor
- Techniques : LangChain, RAG
Ressources Externes
- Officiel : MCP Documentation
- Code : GitHub - @modelcontextprotocol