Italian open data: municipalities, provinces, regions, postal codes, coordinates.
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
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).
Run
uvx italy-opendata-mcp
MCP client config
{
"mcpServers": {
"italy-opendata": {
"command": "uvx",
"args": [
"italy-opendata-mcp"
]
}
}
}MCP server exposing Italian open data (municipalities, provinces, regions, postal codes, coordinates, geographic data) through simple, developer-friendly tools.
uvx or pip, starts and stops with Claude| Data | Source | Type |
|---|---|---|
| Municipalities, provinces, regions, ISTAT codes | ISTAT | Official |
| Resident population | ANPR | Official (daily updates) |
| Surface area, altitude, altimetric zone | ISTAT | Official |
| Postal codes (CAP) | comuni-json | Community (no official source available) |
| Centroid coordinates | opendatasicilia | Community (no official source available) |
uvx italy-opendata-mcp
{
"mcpServers": {
"italy-opendata": {
"command": "uvx",
"args": ["italy-opendata-mcp"]
}
}
}
git clone https://github.com/stucchi/italy-opendata-mcp.git
cd italy-opendata-mcp
uv venv && uv pip install -e .
list_regioni() → list_province(regione="Lombardia") → list_comuni(provincia="MI")
| Tool | Parameters | Description |
|---|---|---|
list_regioni | — | All 20 regions with municipality count and population |
list_province | regione? | Provinces with optional region filter |
list_comuni | regione?, provincia?, limit? | Municipalities with optional filters (default 400 results) |
| Tool | Parameters | Description |
|---|---|---|
get_comune | nome_o_codice | Full details of a municipality by name or ISTAT code |
get_by_cap | cap | Find municipalities associated with a postal code |
| Tool | Parameters | Description |
|---|---|---|
refresh_dataset | force? | Re-download data from sources |
datasets_status | — | Local cache status |
Each municipality includes:
> 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", ...]
}
Data is saved locally on first use:
| OS | Path |
|---|---|
| macOS / Linux | ~/.cache/italy-opendata-mcp/italia.db |
| Windows | %LOCALAPPDATA%\italy-opendata-mcp\italia.db |
To refresh data, use refresh_dataset(force=True).
| Count | |
|---|---|
| Regions | 20 |
| Provinces | 107 |
| Municipalities | 7,896 |
| With population | 7,896 |
| With coordinates | 7,889 |
| With geographic data | 7,519 |
| With postal codes | 7,887 |
MIT