Construisez pas à pas un serveur MCP (Model Context Protocol) qui expose des données sur les risques majeurs en France (climatiques et technologiques), en s'appuyant sur les APIs ouvertes de Géorisques et de l'IGN.
À la fin de ce workshop, votre serveur MCP pourra être connecté à Claude (ou tout autre client MCP) pour répondre à des questions comme :
- "Quels sont les risques naturels à Rouen ?"
- "Y a-t-il des installations SEVESO près de chez moi ?"
- "Montre-moi le plan de prévention des risques de ma commune."
- Node.js 18+ (télécharger)
- Un éditeur de code (VS Code, Cursor, etc.)
- Des notions de base en TypeScript (types, async/await) — voir notre rappel des bases TypeScript et Zod si besoin
- Claude Code ou Claude Desktop pour tester le serveur en conditions réelles (optionnel pour le Step 1)
Le Model Context Protocol (MCP) est un protocole ouvert qui permet à un LLM (comme Claude) d'interagir avec des services externes de manière standardisée.
Les concepts clés :
| Concept | Description |
|---|---|
| Server | Un programme qui expose des capacités (tools, resources…) via le protocole MCP |
| Tool | Une fonction que le LLM peut appeler — similaire au "function calling", mais standardisé |
| Resource | Des données que le LLM peut lire (fichiers, référentiels, etc.) |
| Transport | Le canal de communication entre client et serveur : stdio (stdin/stdout) ou Streamable HTTP |
Dans ce workshop, on construit un serveur MCP qui expose des tools pour interroger des APIs de données publiques. Le LLM (Claude) appellera ces tools pour répondre aux questions de l'utilisateur.
Pour en savoir plus : modelcontextprotocol.io
Chaque step est un dossier autonome avec son code et sa documentation. Vous pouvez lancer le serveur à n'importe quel step sans avoir besoin de changer de branche git.
| Step | Titre | Concepts |
|---|---|---|
| Step 1 | Hello MCP | Serveur MCP, tool, Zod schema, transport Streamable HTTP, sessions |
| Step 2 | Premier outil de risques | Chaînage d'APIs, descriptions riches de tools |
| Step 3 | Risques naturels détaillés | API V1 vs V2, gestion de token |
| Step 4 | Risques technologiques | Paramètres avancés, pagination |
| Step 5 | Plans de prévention (PPR) | Filtres complexes, codes de référence |
| Step 6 | MCP Resources | Différence Tools vs Resources |
| Step 7 | Resource Templates & rapport PDF | URI templates, content types variés |
| Step 8 (bonus) | Visualisations | Possibilités UI de MCP |
Pour lancer un step :
cd step-1 # (ou step-2, step-3, etc.)
npm install
npm run build
node dist/index.js- Base URL :
https://data.geopf.fr/geocodage - Auth : Aucune
- Transforme une adresse en coordonnées GPS + code INSEE
- Utilisée dès le Step 1
- Base URL :
https://georisques.gouv.fr/api/v1 - Auth : Aucune
- Risques par commune, radon, cavités, catastrophes naturelles, rapports PDF
- Utilisée à partir du Step 2
- Base URL :
https://georisques.gouv.fr/api/v2 - Auth : Bearer token
- Séismes, argiles, ICPE, PPR, recherche par parcelle cadastrale
- Utilisée à partir du Step 3