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.

Demo server Free, no key, no guarantee, rate limited. For an operational service, talk to us.

Map of the European NUTS2 regions; the five regions of the example are highlightedDE50DE60DE71DE72DE73DE80DE91BG41BG42CH01AT32AT33AT34BE23BE25BE32BE33BE34BE35BG31BG32BG33BG34DE92DE93DE94CZ07CZ08AL01AL02AL03AT11AT12AT13AT21AT22AT31DK05BE21BE22ES43ES51ES52ES53ES61ES62CH02CH03CH04CH05CH06CH07CY00CZ01CZ02CZ03CZ04CZ05CZ06DE40EL53EL54EL61EL62EL63ITC1ITC2DE11DE12DE13DE14DE21DE22DE23DE24DE25DE26DE27DE30EL42LV00ME00MK00NL11NL12EL64EL65ES11ES12ES13ES21ES22ES23ES24ES30IE05IE06ITC3FI19FI1BFI1CDEA1DEA2DEA3DEA4DEA5DEB1DEB2DEB3DEC0DED2DED4DED5DEE0DEF0DEG0DK01DK02DK03DK04ES41ES42HU23HU31HU32HU33IE04EE00EL30EL41EL43EL51EL52FI20FR10FRB0FRC1FRC2FRD2FRE1FRE2FRF1NL13NL21NL22NL23NL31NL32ITG2ITH1ITH2FRJ1FRJ2FRK1FRK2FRL0TR31TR32TR33HR03HR02HU11HU12HU21HU22PT16PT17FRF2FRF3FRG0FRH0FRI1FRI2ITC4ITF1ITF2ITF3ITF4ITF5ITF6ITG1LT01LT02LU00PL22PL41PL42PT18RO11RO12RO21RO22RO31RO32ITH3ITH4ITH5ITI1ITI2ITI3ITI4FI1DTR82PL43PL51PL52PL61PL62PL63PL71PL72PL81PL82PL84PL91PL92PT11PT15RS12RS21RS22SE11SE12NL33NL34NL41NL42PL21UKM6TR22UKC1UKC2UKD1UKD3UKD4UKD6UKD7UKE1UKE2UKE3RO41RO42RS11TR41TR42TR51TR52TR61TR62TR71TR81UKK1UKK2UKK3UKK4UKL1UKL2UKM5UKM7UKM8UKM9UKN0SE21SE22SE23SE31SE32SE33SI03SI04SK01SK02SK03SK04TR10TR21UKE4UKF1UKF2UKF3UKG1UKG2UKG3UKH1UKH2UKH3UKI5UKI6UKI7UKJ1UKJ2UKJ3UKJ4NO09NO0ANO0BHR05HR06NO02NO06NO07NO08BE24BE31FRD1FRI3FRM0
In blue, the five NUTS2 regions picked by the assistant in the example below.

What your assistant can do with it

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

Eurostat
10,301 datasets

Official statistics

GDP, unemployment, population, age structure… from NUTS 0 to NUTS 2, plus the full catalogue at its native grain.

OpenStreetMap
38 countries

What's on the ground

Hospitals, schools, train stations counted per region and city.

Copernicus
2,300 regions & cities

Earth observation

Climate and land rasters turned into regional statistics. On this demo: summer surface temperature 2022–2024, continental Europe (sampled estimate).

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.3d€69,500
2Poitou-Charentes (FRI3)47.3 %492.9€34,900
3Vlaams-Brabant (BE24)32.5 %377.4d€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 →

Cross all three sources

Some questions need three views of a territory at once: who lives there (Eurostat), what the environment is like (Copernicus) and what is available (OpenStreetMap). Three real runs with Qwen3.8-27B, figures checked against the server's data.

Heatwaves and the elderly

Copernicus × Eurostat × OSM · NUTS3
“Among the NUTS3 regions of Spain and Italy, which ones combine the hottest summers, the oldest population and the fewest hospitals per 100,000 inhabitants?”
#Province65+ / 15–64HospitalsPer 100k
1Asti (ITC17)45.2 %20.97
2Lecce (ITF45)42.6 %182.35
3Terni (ITI22)48.0 %41.86

The assistant ranked OSM hospital counts as “the weakest link” and called its top 10 “a directional shortlist, not a precise ordering”.

Moving with a young family

Copernicus × Eurostat × OSM · NUTS2
“Germany or Austria: mild summers, low unemployment, as many schools and train stations as possible relative to population.”
#RegionSummerUnempl.Schools / 1k
1Oberösterreich19.7 °C3.8 %0.64
2Steiermark18.4 °C4.4 %0.61
3Lüneburg18.7 °C2.7 %0.49

One call, 5 indicators from 3 sources over 45 regions. The assistant also listed what the data cannot say: daycare places, housing costs, train frequency.

Summer tourism, heat and rail

Eurostat × Copernicus × OSM · NUTS2
“Among the regions of Spain, Italy, Greece and Croatia, which ones receive the most tourist nights, have the hottest summers, and how well are they served by rail?”
#RegionSummer nightsSummerStations / 100k
1Jadranska Hrvatska63.0 M23.6 °C3.8
2Cataluña40.3 M23.9 °C5.3
3Illes Balears37.7 M26.9 °C2.9

June–August nights from the monthly Eurostat series. The hottest regions are not the most visited, and the busiest destinations are among the least served by rail.

Full prompts, answers and transcripts →

Try it in your browser

Bring your own model: pick a provider, paste its API key, and ask. The page calls your provider and the demo server directly from this tab.

Get a key

Advanced

Your key stays in this tab (session storage) and is sent only to the provider you chose, never to nutshell. OpenRouter also works with a 27B open model.

Tool calls count against the demo quota (100 per day per IP); tokens are billed by your provider.

Connect your assistant

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

7 tools

Built for small models. Narrow schemas, bounded outputs, errors that suggest the fix: works with a 27B local model, not just frontier ones.

Add the server

Claude Code plugin: two commands, nothing else to install.

/plugin marketplace add scampion/nutshell-mcp
/plugin install nutshell@nutshell

Any other MCP client: endpoint https://nutshell.arcamens.ai/mcp (streamable HTTP, no key).

{
  "mcpServers": {
    "nutshell": {
      "type": "http",
      "url": "https://nutshell.arcamens.ai/mcp"
    }
  }
}

Claude Code without the plugin: claude mcp add --transport http nutshell https://nutshell.arcamens.ai/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.

Beyond the demo

The code is open source. If you need more than the demo server, we can help.

Hosted instance

An operational server with availability commitments, authentication and the indicators you need.

Enterprise support

Deployment on your infrastructure, integration with your assistants and models, training.

Custom data

New indicators, internal sources joined to NUTS, specific geographies or refresh cadences.