IA Locale & Souveraine #6 : MCP local - Votre LLM appelle vos outils métier en function calling standard#

Le Model Context Protocol (MCP) d’Anthropic devient le standard pour connecter LLM ⇄ outils externes. Ce tuto : on construit un serveur MCP maison (FastMCP, Python) qui expose verifier_stock et obtenir_meteo_site, et un client LLM local qui découvre les outils, choisit le bon, l’exécute, synthétise la réponse - tout en local, zéro cloud.
Ce que fait ce tuto (en 25 min)#
- Serveur MCP (
mcp_server.py) : 2 outils métiers fictifs (stock entrepôts, météo sites) exposés viastdio- transport léger, pas de port réseau, sécurité maximale. - Client MCP + LLM (
mcp_client.py) : se connecte en sous-processus,list_tools()→ construit le prompt dynamique avec schémas JSON → LLM répond en JSON{"outil": "...", "arguments": {...}}→ client exécute viacall_tool()→ LLM synthétise la réponse finale. - Découverte dynamique : ajoutez un outil dans le serveur → le client le voit au prochain run sans changer une ligne de code client.
- Transport
stdio= exécution dans le même conteneur, pas d’exposition réseau, contrôle total des droits d’accès aux données.
Démo en action#
❓ Question : « Combien de serveurs N100 en stock et où ? »
🤖 LLM décide : {"outil": "verifier_stock", "arguments": {"article_id": "SERVEUR-N100"}}
⚙️ Serveur MCP exécute → « 14 unités (Entrepôt Marseille) »
💬 Réponse finale : « Il reste 14 serveurs N100 à l'entrepôt de Marseille. »Pourquoi MCP change la donne#
| Approche classique | MCP (ce tuto) |
|---|---|
| Logique métier dans le prompt | Logique métier dans le serveur (testable, versionnée) |
| LLM « sait » les données | LLM appelle l’outil qui a les données |
| Un client = un prompt sur mesure | Serveur réutilisable : Claude Desktop, Cursor, Ollama, n’importe quel client MCP |
| Sécurité ? | Outils s’exécutent côté serveur, droits contrôlés |
Pour qui ?#
Architectes, DevOps, Data Engineers qui veulent industrialiser l’accès LLM aux systèmes d’information (API internes, BDD, fichiers, calculs) avec un protocole ouvert, standard, transport-agnostique (stdio aujourd’hui, HTTP/SSE demain - exercice inclus).
Accès au code complet#
👉 Tutoriel pas à pas (GitHub) : 06-mcp/docs/tutoriel.md
Fin de la série. Vous avez maintenant une stack complète : environnement → inférence brute → classification → extraction → RAG prouvé → outils MCP. Tout tourne sur un N100, en conteneurs, zéro cloud.
