nutshell·mcp

Ask your AI assistant about any European region, and get sourced answers.

nutshell-mcp is an MCP server that brings Eurostat, Copernicus and OpenStreetMap together at a single grain — zone × indicator × period. Your assistant compares regions, crosses sources and tells you how reliable each figure is, without ever writing a query.

⚠ Demonstration server

This instance is provided for demonstration and evaluation only — no guarantee of availability, freshness or performance, no authentication, and it may be reset or shut down at any time. Do not build an operational service on it. For any real use, clone the code and run your own installation.

What your assistant can do with it

Three families of sources, one table. Every value carries its quality flag and provenance.

Eurostat

Official statistics

GDP, unemployment, population, age structure… from NUTS 0 to NUTS 2, plus the full catalogue of 10,301 datasets at their native grain.

OpenStreetMap

What's on the ground

Hospitals, schools, train stations counted per region and city, across 38 European countries.

Copernicus

Earth observation

Climate and land rasters turned into regional statistics — summer surface temperature, soil sealing. Available on self-hosted instances (not materialised on this demo).

Built for small models

7 simple tools

Narrow schemas, bounded outputs, errors that suggest the fix. Works with a 27B local model, not just frontier ones.

One question, several sources

A real prompt, and an excerpt of the answer it produced.

“I need to choose the European region where to open a geriatric clinic. Compare the NUTS2 regions of France, Belgium and Luxembourg: oldest population, weakest hospital supply relative to population, decent GDP per capita. Give me a justified top 5 and state how reliable each source is.”
search_indicators list_zones get_indicators search_datasets query_data
#Region (NUTS2)Dependency 65+Beds / 100kGDP / inh.
1Brabant wallon (BE31)33.4 %225.3€69,500
2Poitou-Charentes (FRI3)47.3 %492.9€34,900
3Vlaams-Brabant (BE24)32.5 %377.4€57,100
4Basse-Normandie (FRD1)44.3 %557.2€34,600
5Corse (FRM0)43.2 %552.0€37,500

The table is the easy part. Because every value carries its quality flag, the assistant also said:

  • Belgian bed counts are flagged d (definition differs): the France/Belgium comparison is indicative, and ranks 1 and 3 are Belgian.
  • OpenStreetMap reports 0 hospitals in the French overseas departments: a completeness gap, so they were excluded rather than ranked.
  • Luxembourg has no bed data: “a data hole, not a bad score”.
  • 2025 values marked [p] are provisional.

More example prompts and the tool chains they trigger →

Connect your assistant

Any client that speaks MCP over HTTP: Claude Desktop, Claude Code, Cursor, pi, and others.

Add the server

Endpoint: https://nutshell.scamp.fr/mcp (streamable HTTP, no key).

{
  "mcpServers": {
    "nutshell": {
      "type": "http",
      "url": "https://nutshell.scamp.fr/mcp"
    }
  }
}

With Claude Code: claude mcp add --transport http nutshell https://nutshell.scamp.fr/mcp

Ask a question about places

“Compare unemployment and median age in Île-de-France, Oberbayern and Lombardia.” The assistant finds the indicators, the zone codes, and returns one table.

Ask for the sources

Add “state how reliable each source is”: that is what makes the assistant reason about provisional values, definition changes and coverage gaps.

Run your own instance

Recommended for any real use. The server is stateless and serves everything from local disk: once synchronised, it runs fully offline, and you choose the indicators, countries and refresh cadence.

git clone https://github.com/scampion/nutshell-mcp.git
cd nutshell-mcp
uv venv --python 3.12 .venv
uv pip install --python .venv/bin/python -e .

.venv/bin/python -m nutshell_mcp.sync --source geo        # NUTS & city geometries
.venv/bin/python -m nutshell_mcp.sync --source eurostat   # registry indicators
.venv/bin/python -m nutshell_mcp.server                   # stdio MCP server

Adding an indicator takes one YAML file, no code. OSM and Copernicus pipelines, HTTP deployment and configuration are described in the README (version française).