MCP server: One MCP server.

Italy OpenData

@stucchiMCP server · External

Italian open data: municipalities, provinces, regions, postal codes, coordinates.

Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

PyPIitaly-opendata-mcpv1.0.2

Run

uvx italy-opendata-mcp

MCP client config

{
  "mcpServers": {
    "italy-opendata": {
      "command": "uvx",
      "args": [
        "italy-opendata-mcp"
      ]
    }
  }
}
README2 min read

italy-opendata-mcp

MCP server exposing Italian open data (municipalities, provinces, regions, postal codes, coordinates, geographic data) through simple, developer-friendly tools.

Features

  • 7 MCP tools to navigate the Italian administrative hierarchy
  • Official sources: ISTAT and ANPR where available
  • Lazy download: data is fetched on first use and cached locally (~1.8 MB SQLite)
  • Offline after first use: all queries are local
  • No Docker: installable via uvx or pip, starts and stops with Claude

Data sources

DataSourceType
Municipalities, provinces, regions, ISTAT codesISTATOfficial
Resident populationANPROfficial (daily updates)
Surface area, altitude, altimetric zoneISTATOfficial
Postal codes (CAP)comuni-jsonCommunity (no official source available)
Centroid coordinatesopendatasiciliaCommunity (no official source available)

Installation

bash
uvx italy-opendata-mcp

Usage in .mcp.json

json
{
  "mcpServers": {
    "italy-opendata": {
      "command": "uvx",
      "args": ["italy-opendata-mcp"]
    }
  }
}

From source

bash
git clone https://github.com/stucchi/italy-opendata-mcp.git
cd italy-opendata-mcp
uv venv && uv pip install -e .

Tools

Hierarchical navigation

list_regioni()  →  list_province(regione="Lombardia")  →  list_comuni(provincia="MI")
ToolParametersDescription
list_regioni—All 20 regions with municipality count and population
list_provinceregione?Provinces with optional region filter
list_comuniregione?, provincia?, limit?Municipalities with optional filters (default 400 results)
ToolParametersDescription
get_comunenome_o_codiceFull details of a municipality by name or ISTAT code
get_by_capcapFind municipalities associated with a postal code

Data management

ToolParametersDescription
refresh_datasetforce?Re-download data from sources
datasets_status—Local cache status

Available fields per municipality

Each municipality includes:

  • Registry: name, ISTAT code, cadastral code, province abbreviation, province, region
  • Demographics: population (ANPR, daily updates)
  • Geography: latitude, longitude, surface area (km²), altitude (m), altimetric zone
  • Classification: coastal, island, urbanization degree
  • Postal: list of associated CAP codes

Example output

> get_comune("Roma")

{
  "codice_istat": "058091",
  "nome": "Roma",
  "codice_catastale": "H501",
  "popolazione": 2802399,
  "superficie_kmq": 1288.19,
  "altitudine": 20,
  "zona_altimetrica": "Pianura",
  "litoraneo": 1,
  "latitudine": 41.89332,
  "longitudine": 12.482932,
  "sigla_provincia": "RM",
  "provincia": "Roma",
  "regione": "Lazio",
  "cap": ["00118", "00119", "00120", ...]
}

Cache

Data is saved locally on first use:

OSPath
macOS / Linux~/.cache/italy-opendata-mcp/italia.db
Windows%LOCALAPPDATA%\italy-opendata-mcp\italia.db

To refresh data, use refresh_dataset(force=True).

Data coverage

Count
Regions20
Provinces107
Municipalities7,896
With population7,896
With coordinates7,889
With geographic data7,519
With postal codes7,887

License

MIT

Similar modules

Browse Government open data