Skip to main content
Glama
franckh-stack

mcp-datagouv

mcp-datagouv 🇫🇷

Serveur MCP (Model Context Protocol) pour interroger les Open Data de data.gouv.fr, la plateforme ouverte des données publiques françaises.

v2.0 — Cache, retry, rate limiting, agrégations, API Geo, API Adresse, prompts guidés, transport HTTP.

Fonctionnalités

📊 Catalogue data.gouv.fr (20 outils)

Outil

Description

search_datasets

Recherche par mots-clés, tags, organisation, licence, badge

get_dataset

Détail complet d'un dataset

list_dataset_resources

Fichiers/ressources d'un dataset

get_resource

Détail d'une ressource

download_resource_preview

Aperçu du contenu d'un fichier (CSV, JSON, texte)

search_organizations

Recherche d'organisations

get_organization

Détail d'une organisation

list_organization_datasets

Datasets d'une organisation

search_reuses

Réutilisations de données

get_tabular_meta

Métadonnées tabulaires (colonnes, types)

query_tabular_data

Requête de données avec recherche textuelle

query_tabular_data_filtered

RequĂŞte avec filtres sur colonnes

aggregate_tabular_data

Statistiques (sum, avg, min, max, count, distinct)

group_by_tabular_data

GROUP BY + agrégation

list_licenses

Licences disponibles

list_frequencies

Fréquences de mise à jour

search_tags

Tags/thématiques

cache_stats

Statistiques du cache

cache_clear

Vider le cache

🗺️ API Geo — Découpage administratif (5 outils)

Outil

Description

search_communes

Recherche par nom, code postal, département, GPS

get_commune

Détail d'une commune par code INSEE

list_departements

Liste des départements

get_departement_communes

Communes d'un département

list_regions

Liste des régions

📍 API Adresse — Géocodage (2 outils)

Outil

Description

geocode_address

Adresse → coordonnées GPS

reverse_geocode

Coordonnées GPS → adresse

💬 Prompts prédéfinis (5 prompts)

Prompt

Description

analyse_dataset

Workflow guidé : recherche → inspection → stats → synthèse

explorer_organisation

Explorer une organisation en profondeur

trouver_donnees_territoire

Trouver des données sur un territoire

comparer_datasets

Comparer deux jeux de données

geocoder_adresses

Géocoder une liste d'adresses

📦 Resources MCP (3 resources)

Resource

Description

datagouv://platform-info

Documentation des APIs disponibles

datagouv://server-config

Configuration active du serveur

datagouv://recent-datasets

Datasets consultés durant la session

Related MCP server: data-bs-mcp

Installation

git clone <votre-repo>
cd mcp-datagouv
npm install
npm run build

Configuration

Copiez .env.example en .env et ajustez les variables :

cp .env.example .env

Variables principales :

Variable

Défaut

Description

DATAGOUV_API_KEY

—

Clé API (optionnel, pour écriture)

MCP_TRANSPORT

stdio

Transport : stdio ou http

MCP_HTTP_PORT

3000

Port HTTP

MCP_LOG_LEVEL

info

Niveau de log

MCP_CACHE_TTL

300000

Cache TTL par défaut (5 min)

MCP_CACHE_TTL_REF

21600000

Cache TTL référentiels (6h)

MCP_MAX_RETRIES

3

Retries sur erreurs transitoires

MCP_ENABLE_GEO

true

Module Geo

MCP_ENABLE_ADRESSE

true

Module Adresse

MCP_TABULAR_RATE_LIMIT

80

Rate limit API tabulaire (req/s)

MCP_CATALOG_RATE_LIMIT

30

Rate limit API catalogue (req/s)

Usage

Claude Desktop

Fichier claude_desktop_config.json :

{
  "mcpServers": {
    "datagouv": {
      "command": "node",
      "args": ["/chemin/absolu/vers/mcp-datagouv/build/index.js"],
      "env": {
        "MCP_LOG_LEVEL": "debug"
      }
    }
  }
}

Claude Code

claude mcp add datagouv node /chemin/absolu/vers/mcp-datagouv/build/index.js

Transport HTTP (serveur distant)

MCP_TRANSPORT=http MCP_HTTP_PORT=3000 npm start

Docker

docker build -t mcp-datagouv .
docker run -p 3000:3000 mcp-datagouv

Exemples d'utilisation

"Recherche les données sur la qualité de l'air en Île-de-France"
"Montre-moi les datasets du Ministère de l'Intérieur"
"Quels sont les fichiers du dataset des prix du carburant ?"
"Affiche les premières lignes de ce CSV"
"Calcule la moyenne et le max de la colonne 'population'"
"Groupe les données par département et calcule la somme des habitants"
"Géocode l'adresse '8 bd du Port, Amiens'"
"Quelles communes se trouvent dans le département 59 ?"
"Liste les régions de France"

Avec les prompts :

"Utilise le prompt 'analyse_dataset' sur le sujet 'transport ferroviaire'"
"Utilise 'trouver_donnees_territoire' pour Lyon, thématique environnement"

Robustesse

  • Cache mĂ©moire avec TTL configurable (5 min donnĂ©es, 6h rĂ©fĂ©rentiels)

  • Retry automatique avec backoff exponentiel sur erreurs 429/5xx

  • Rate limiting par domaine API (catalogue, tabulaire, geo, adresse)

  • Timeout configurable avec abort

  • Logging structurĂ© sur stderr (compatible STDIO)

Architecture

src/
├── index.ts              # Point d'entrée, transport STDIO/HTTP
├── config.ts             # Configuration via env
├── logger.ts             # Logger structuré (stderr)
├── cache.ts              # Cache mémoire TTL
├── rate-limiter.ts       # Rate limiter sliding window
├── http-client.ts        # Client HTTP (retry, cache, rate limit)
├── api-client.ts         # API data.gouv.fr (catalogue + tabulaire)
├── api-geo.ts            # API Découpage Administratif
├── api-adresse.ts        # API Adresse (géocodage)
├── formatters.ts         # Formatage des réponses
├── aggregations.ts       # Calculs statistiques
├── tools.ts              # Outils MCP catalogue
├── tools-geo.ts          # Outils MCP geo
├── tools-adresse.ts      # Outils MCP adresse
├── prompts.ts            # Prompts MCP prédéfinis
├── resources.ts          # Resources MCP dynamiques
└── __tests__/            # Tests unitaires
    ├── cache.test.ts
    ├── rate-limiter.test.ts
    ├── formatters.test.ts
    └── aggregations.test.ts

Tests

# Tests avec Node.js >= 22 (strip-types natif)
npm test

# Ou après compilation
npm run test:build

APIs utilisées

API

URL

Authentification

Catalogue data.gouv.fr

https://www.data.gouv.fr/api/1/

Non (lecture)

API Tabulaire (beta)

https://tabular-api.data.gouv.fr/api/

Non

API Geo

https://geo.api.gouv.fr/

Non

API Adresse

https://api-adresse.data.gouv.fr/

Non

Licence

MIT

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/franckh-stack/mcp-datagouv'

If you have feedback or need assistance with the MCP directory API, please join our Discord server