Les grands modèles de langage ne peuvent ni interroger votre base de données, ni lire vos fichiers locaux, ni appeler vos API internes. Le manque n'est pas d'intelligence — c'est un standard pour relier l'IA au monde réel. C'est précisément le rôle du Model Context Protocol (MCP).
Ce guide s'adresse aux ingénieurs backend et AI avec de l'expérience Python ou TypeScript. Vous passerez de la théorie du protocole au déploiement production et livrerez un MCP Server fonctionnel avec Tools, Resources et Prompts. À la fin, vous l'intégrerez dans Cursor ou Claude Desktop et lancerez un projet de base de connaissances personnelle — avec mention RGPD là où le transport cloud et les appels externes entrent en jeu.
01 Protocole MCP : du Function Calling au standard unifié
Points de friction : chaque éditeur LLM propose un format de function calling différent. Changer de modèle implique de réécrire les intégrations. Les tools LangChain restent dans le framework et ne voyagent pas entre les IDE.
- Évolution : Function Calling (propriétaire) → ChatGPT Plugins (verrouillage plateforme) → MCP (standard ouvert). Anthropic a open-sourcé MCP en novembre 2024 pour unifier la communication AI-système via JSON-RPC.
- Rôles : le MCP Client vit côté IA (Claude Desktop, Cursor). Le MCP Server est ce que vous développez. Il expose des Tools (fonctions appelables), des Resources (données lisibles) et des Prompts (modèles réutilisables).
- Transport : JSON-RPC 2.0 sur stdio (local, faible latence) ou HTTP + SSE / Streamable HTTP (distant, multi-clients). Cycle de vie : poignée de main → négociation des capacités → requêtes → arrêt propre.
| Dimension | MCP | OpenAI FC | LangChain |
|---|---|---|---|
| Standardisation | Ouvert, multi-modèles | Propriétaire éditeur | Lié au framework |
| Resources / Prompts | Natif | Non supporté | Non supporté |
| Écosystème (2026) | 10 000+ serveurs | Mature, OpenAI seul | Mature, framework seul |
Écrivez un MCP Server — Cursor, Claude Desktop et VS Code peuvent l'appeler. C'est le moment USB-C pour le tooling IA.
02 Configuration de l'environnement et premier serveur Hello World
Choix du langage : Python avec le package officiel mcp et FastMCP (idéal pour débuter). TypeScript avec @modelcontextprotocol/sdk pour les équipes full-stack. Les exemples ci-dessous sont en Python.
python -m venv .venv
source .venv/bin/activate
pip install mcp
npm init -y
npm install @modelcontextprotocol/sdk
Arborescence : server.py, tools/, resources/, prompts/, tests/, pyproject.toml.
Stack de debug : MCP Inspector officiel (npx @modelcontextprotocol/inspector), Claude Desktop via claude_desktop_config.json, Cursor via Réglages → MCP.
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("my-first-server")
@mcp.tool()
def say_hello(name: str) -> str:
"""Salue une personne par son prénom."""
return f"Bonjour, {name} ! Voici votre premier tool MCP."
if __name__ == "__main__":
mcp.run()
Lancez python server.py ou npx @modelcontextprotocol/inspector python server.py. Après configuration Cursor ou Claude Desktop, le tool doit apparaître dans le contexte IA.
03 Tools : cinq patterns pratiques, async et gestion d'erreurs
Les signatures de fonctions deviennent du JSON Schema pour le modèle. Utilisez des noms verbe en snake_case comme search_web. Les entrées complexes passent proprement via Pydantic BaseModel avec Field(description=...).
Cinq tools de départ : calculatrice (parsing d'expressions sécurisé), lecture/écriture de fichiers (allowlist de répertoires), client HTTP (timeouts et plafonds de taille), SQL en lecture seule (requêtes paramétrées) et utilitaires de fuseaux horaires.
Async IO : async def avec httpx.AsyncClient pour les appels réseau. Retournez des dicts d'erreur structurés plutôt que des exceptions brutes. Ajoutez timeouts et contrôles de permissions en production — surtout si des données personnelles transitent (RGPD art. 5/32).
04 Resources et Prompts : alimentation de données et modèles réutilisables
Resource vs Tool : les Resources fournissent des données ; les Tools exécutent des actions. Adressez les resources par URI : file://, http://, custom://. Les resources statiques ont des URI fixes ; les dynamiques acceptent des paramètres comme user://{user_id}/profile.
Supportez texte, JSON, binaire et payloads en streaming. Un serveur de resources filesystem peut lister des répertoires, lire des fichiers et s'abonner aux événements de changement.
Les Prompts livrent des modèles de messages préconstruits avec paramètres injectés — idéal pour revue de code, simulation d'entretien ou assistants de debug. Les modèles multi-tours peuvent mélanger les rôles user et assistant.
05 Transport HTTP, débogage et déploiement production
| Trait | stdio | HTTP + SSE |
|---|---|---|
| Déploiement | Processus local | Serveur distant |
| Multi-client | Non | Oui |
| Idéal pour | Outils locaux personnels | MCP SaaS partagé en équipe |
Exemple distant : FastMCP("remote-server", transport="streamable-http") derrière uvicorn sur le port 8000. Renforcez avec Bearer tokens, middleware API-key, allowlists CORS et rate limits. Pour des flux de données UE, documentez sous-traitance et journaux conformément au RGPD.
Testez avec MCP Inspector et pytest via mcp.client.stdio. Échecs fréquents : mauvais chemin de config (tool invisible), types de retour non sérialisables, appels bloquants provoquant des timeouts.
Déployez avec Docker (Python 3.12-slim), Railway/Render pour les projets hobby, Lambda/Cloud Run serverless ou Nginx sur VPS. Ajoutez logs structurés, métriques Prometheus, alertes Sentry et un endpoint /health. Déclarez les versions du protocole MCP et gardez les upgrades de tools rétrocompatibles.
06 Projet base de connaissances, données écosystème et déploiement en six étapes
Projet final : un MCP Server de base de connaissances personnelle qui recherche sémantiquement des notes Markdown, crée des entrées et surveille les fichiers avec ChromaDB/Qdrant, text-embedding-3-small et watchfiles. Demandez à Cursor : « Qu'ai-je écrit sur MCP la semaine dernière ? » — l'agent appelle votre tool de recherche.
Serveurs de référence 2026 : mcp-server-filesystem, mcp-server-github, mcp-server-brave-search, mcp-server-postgres, mcp-server-slack. Les grands clients intègrent MCP nativement ; les baselines sécurité entreprise et marketplaces mûrissent.
- Protocole : Anthropic a open-sourcé MCP en novembre 2024 (JSON-RPC 2.0) ; la gouvernance a rejoint la Linux Foundation AAIF en 2026.
- Écosystème : les serveurs MCP publics dépassent 10 000 ; les SDK Python et TypeScript sont la voie officielle — vérifiez les versions sur GitHub après chaque release.
- Transport : Streamable HTTP remplace le SSE pur pour le load balancing stateless en cloud.
Docs officielles et SDK (revérifier les liens après releases upstream) :
https://modelcontextprotocol.io
https://github.com/modelcontextprotocol/python-sdk
https://github.com/modelcontextprotocol/typescript-sdk
https://github.com/modelcontextprotocol/inspector
- Choisir langage et transport : Python + stdio pour solo ; HTTP pour partage d'équipe.
- Scaffolder les modules : séparer tools, resources, prompts ; installer MCP Inspector.
- Livrer Hello World : vérifier la visibilité dans Cursor ou Claude Desktop.
- Ajouter cinq tools plus resources : commencer en lecture seule, puis écritures et API externes.
- Automatiser tests et Docker : tests d'intégration stdio en CI.
- Déployer 24/7 : la veille du laptop tue les sessions MCP ; un VPS Linux seul manque de sandbox macOS et Xcode. Pour une infra MCP stable, des agents partagés et de la CI iOS, la location Mac bare-metal CALMVPS est souvent le meilleur choix : M4/M4 Pro dédié, provisioning ~120 s, facturation flexible. Voir tarifs et centre d'aide.
MCP est le protocole standard du tooling IA. Maîtrisez-le et vous étendrez n'importe quel LLM avec des capacités réelles — en commençant par le Hello World d'aujourd'hui.