Install
$ agentstack add mcp-agent-engineering-studio-opendata-ai ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ● Shell / process execution Used
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
opendata-ai
[](https://www.buymeacoffee.com/f9t3zol)
Conversational + map-based access to Italian and European open data portals through a single AI-powered backend. The user asks for "electric-vehicle charging stations in Lombardy" and the platform fans the query out across CKAN portals (dati.gov.it, regional / municipal CKAN instances) and statistical providers (ISTAT, Eurostat, OECD via SDMX 2.1), synthesises one answer, renders any geographic resources on a Leaflet+OSM map, and optionally classifies the dataset against a caller-supplied taxonomy with Claude Haiku.
> Static frontend on GitHub Pages, FastAPI backend on a self-hosted Aruba > VPS, Clerk-authenticated everywhere except /health.
Capability layer (valorizzazione + maturità)
Sopra l'accesso ai dati, la piattaforma offre un capability layer (Fasi 0–5): maturità open-data degli enti (ODM 2025), valore del dato (art. 14 Dir. UE 2019/1024), modalità Territorio (profilo + investimenti OpenCoesione), use case applicativi (ApriQui AI, PugliaTrip Brain), sito civico statico esportabile con accountability di community, un anello valore⇄maturità (i gap di dato penalizzano l'Impact dell'ente) e un agente di monitoraggio schedulato (cron) che controlla in automatico freshness/qualità/link dei dataset e notifica via webhook o email quando qualcosa cambia o si rompe. Diagramma e flussi: docs/architettura.md; modello dati: docs/data-model.md. Pilota: Comune di Gioia del Colle.
Le quattro modalità: Esplora · Territorio · Maturità · Qualità
La navbar dell'applicazione corrisponde a tre modalità d'uso, costruite l'una sull'altra: si esplora il dato grezzo, lo si trasforma in uno studio del territorio azionabile, e si misura quanto bene un ente pubblica e mantiene quel dato. Esplora è l'accesso conversazionale alle fonti; Territorio e Maturità sono le due lenti del capability layer che danno valore e accountability al patrimonio informativo.
1. Esplora — esplorazione conversazionale dei dati
Cos'è. Una chat che traduce una domanda in linguaggio naturale (es. "piste ciclabili a Bologna", "tasso di disoccupazione 2018–2023") in interrogazioni concrete sui portali open data, e restituisce sia una sintesi testuale sia le risorse effettivamente trovate, ciascuna con un'anteprima navigabile.
Come funziona. La domanda viene fatta fan-out in parallelo su più fonti — portali CKAN (dati.gov.it, regionali/comunali, e portali esteri) e provider statistici SDMX (ISTAT, opzionalmente Eurostat/OECD). Le risposte parziali e la sintesi finale arrivano in streaming. La sintesi è protetta da guardrail anti-allucinazione: niente segnaposto inventati, e gli URL delle risorse vengono verificati invece di essere fabbricati, con una rete di sicurezza deterministica che fa sempre emergere i dati pubblici realmente esistenti. Ogni risorsa può inoltre riportare una value card (valore del dato secondo l'art. 14 della Dir. UE 2019/1024).
La stessa risorsa si visualizza in tre modi, a seconda del contenuto:
- Tabella — dati tabellari (CSV/JSON da CKAN, osservazioni SDMX-CSV da
ISTAT/Eurostat/OECD) con righe, colonne e tipi rilevati automaticamente. Sopra l'anteprima compaiono numero di righe/colonne e quali colonne sono numeriche.
- Grafico — le colonne numeriche diventano serie selezionabili, raggruppate
per una dimensione a scelta (es. PROVINCE); per i dataset grandi mostra le prime 30 categorie per somma decrescente. Utile per leggere subito un trend o un confronto senza scaricare il file.
- Mappa — le risorse geografiche (GeoJSON, KML, SHP, ZIP) vengono rese
come layer distinti su una mappa Leaflet+OSM, attivabili/disattivabili dal selettore in alto a destra; le risorse non geografiche restano disponibili come tabella/grafico.
A cosa serve / per chi. È il punto d'ingresso per chiunque debba trovare e capire un dato senza conoscere API, formati o portali: giornalisti e data analyst che cercano una fonte ufficiale citabile, sviluppatori che vogliono individuare in fretta il dataset giusto da integrare, funzionari e cittadini che vogliono una risposta documentata. Sostituisce ore di ricerca manuale su decine di cataloghi eterogenei con un'unica domanda.
2. Territorio — studio evidence-based di un comune
Cos'è. Un'analisi completa di un comune generata a partire dai soli dati pubblici. Si seleziona il comune (risolto via ISTAT — es. Gioia del Colle, ISTAT 072021 — con il confine amministrativo mostrato sulla mappa) e, opzionalmente, un tema (es. energia, trasporti) che mira l'analisi nelle città grandi; senza tema l'analisi si concentra sugli ambiti a maggiore dotazione di dati.
Cosa produce. Un report strutturato e azionabile: quadro di sintesi, analisi SWOT, proposte concrete, e idee nuove ricavate dal confronto con territori simili. L'analisi tematica passa per dieci lenti dedicate — Commercio, Turismo, Lavoro, Trasporti, Welfare, Istruzione, Casa/ Abitazioni, Reddito, Ambiente, Sanità — ciascuna ancorata a fonti specifiche (es. ISTAT ASIA per il commercio, indicatori di inclusione e investimenti OpenCoesione per il welfare, condizioni abitative ISTAT 8milaCensus per la casa, dichiarazioni IRPEF del MEF per il reddito). Le zone interne sono individuate via tag OpenStreetMap.
Affidabilità e accountability. Ogni affermazione è evidence-based, ancorata a fonti pubbliche verificabili — non è materiale elettorale. Sotto la soglia minima di dati l'analisi dichiara "dato insufficiente" invece di produrre numeri fuorvianti, e tutto ciò che usa fonti live è fail-safe. I report sono versionati (snapshot non sovrascritti, con diff tra versioni) ed esportabili come sito civico statico e autoconsistente, con accountability di community (check-in). Un avviso segnala che i dati pubblici possono essere disallineati per ritardi burocratici. Vale infine l'anello valore⇄maturità: i gap di dato emersi dai report penalizzano la dimensione Impatto dell'ente e si traducono in "domanda di riuso non soddisfatta".
Riconciliazione del suolo. Per i vuoti urbani e le aree dismesse individuate via OpenStreetMap, il report confronta il tag OSM con lo stato reale del suolo ricostruito dalle fonti pubbliche oggi disponibili (vincolo idrogeologico IdroGEO PAI a scala comunale, copertura del suolo puntuale da Corine Land Cover ISPRA per capire se un'area è già impermeabilizzata/edificata, vincoli paesaggistici dal piano regionale — PPTR, oggi Puglia — siti contaminati e bonifiche SIN-SIR dal catasto MOSAICO di ISPRA, destinazione urbanistica dalla zonizzazione PUG/PRG quando il comune la pubblica come open data, progetti OpenCoesione nel comune) e propone una classificazione (dismesso, brownfield se contaminato, vincolato, frangia urbana, libero…) con causa di abbandono e azione consigliata. Per le aree produttive e a verde il report applica i pattern di rigenerazione: zone industriali → «riuso prima di espansione» + dotazione verde ≥10% in zona D (strumenti PIP/ASI/APEA); parchi → 9 mq/ab fruibili entro ~300 m. Coerente col principio del progetto — la fonte ufficiale è il dato aperto, non un documento caricato — quando un comune non pubblica il PUG come dato aperto l'analisi non lo inventa: lo segnala come dato da aprire (raccomandazione DCAT-AP_IT) e come domanda di riuso non soddisfatta nella maturità dell'ente. L'incertezza è esplicita, non nascosta: ogni poligono ha una confidenza (Alta solo se ≥2 fonti concordano, Bassa se l'unica evidenza è il tag OSM) e i campi non ancora verificabili con le fonti correnti (catasto, destinazione PUG) restano "da verificare". Un controllo di qualità avvisa (senza mai bloccare il report) quando lo stato del suolo non è verificabile — coerente col principio: ogni fonte mancante degrada la confidenza, non blocca. Nel report la sezione "Stato reale del suolo" mostra ogni area con un badge di confidenza (Alta/Media/Bassa) e i campi "da verificare" resi espliciti; la proprietà non è mai presentata come pubblica per default. La sezione è inclusa anche nell'export PDF e nel sito civico (pagina "Stato del suolo").
Export. Ogni analisi generata può essere esportata in tre formati: PDF (documento da condividere o stampare), Markdown (testo riusabile in altri strumenti) e sito (sito civico statico e autoconsistente). L'export riporta il comune (ISTAT) e la data/ora di generazione, così la versione resta tracciabile.
A cosa serve / per chi. Trasforma il patrimonio open data in materiale decisionale: amministratori e uffici tecnici che pianificano interventi, associazioni e comitati che vogliono un quadro neutro e citabile, giornalisti che documentano un territorio, consulenti e ricercatori che confrontano comuni simili. È il ponte tra "il dato esiste" e "il dato serve a decidere".
3. Maturità — scorecard open data dell'ente (ODM 2025)
Cos'è. Una scorecard 0–100 che misura quanto bene un ente pubblica e mantiene i propri dati aperti, secondo il modello Open Data Maturity (ODM) 2025.
Cosa misura. Il punteggio si compone su quattro dimensioni — Policy, Portale, Qualità, Impatto — alimentate da standard riconosciuti (modello 5-star di Berners-Lee, principi FAIR, DCAT-AP_IT, ISO 25012, High-Value Datasets). All'ente è assegnato un livello (Beginner → Follower → Fast-tracker → Trend-setter) ed è mostrato un radar delle quattro dimensioni con le leve di miglioramento ordinate per impatto sul punteggio — così l'ente sa cosa cambiare per primo per salire di livello. Sotto la soglia minima di dati dichiara "dato insufficiente" invece di assegnare punteggi fuorvianti. La scorecard è esportabile (CSV, e PNG/PDF della scheda).
A cosa serve / per chi. È lo strumento del Responsabile per la Transizione Digitale (RTD) e dell'open data manager: dà una fotografia oggettiva e comparabile dello stato di pubblicazione, evidenzia le priorità d'azione, e permette benchmarking tra enti — e, quando ci sono almeno due misurazioni salvate, anche un piccolo grafico dell'andamento nel tempo (il punteggio sale o scende? di quanto?). Per chi riusa i dati è un segnale di affidabilità della fonte; per chi li pubblica, una roadmap concreta di miglioramento.
Provalo subito. Vai su /maturita, digita il nome di un ente (es. "Regione Puglia" o "Comune di Bari") e premi Valuta. La prima volta ottieni la scorecard con radar e leve di miglioramento; se rivaluti lo stesso ente in un momento successivo (giorni o settimane dopo), dalla seconda valutazione in poi compare anche la sezione "Andamento nel tempo" con il grafico del punteggio.
4. Qualità — come si misura la qualità di un dataset
Cos'è. Il Data Quality Lab: porti un file di dati (o apri una risorsa trovata in Esplora) e ottieni una diagnosi automatica della sua qualità, la versione già sistemata da scaricare, i suggerimenti per arricchirlo e la scheda descrittiva pronta da pubblicare — passo per passo, senza dover essere un esperto di database:
flowchart LR
A["📄 Carica un fileCSV · GeoJSONExcel · Shapefile (zip)"] --> B["🔍 Diagnosierrori + punteggio"]
B --> C["🩹 Correggicon un clic"]
C --> D["✨ Arricchiscicodici ISTAT · indirizzi · vocabolari"]
D --> E["🗂️ Organizzaschema SQL/PostGIS · tabelle · viste · Parquet"]
E --> F["🏷️ Descrivischeda DCAT-AP_IT"]
F --> G["📦 Pubblicapacchetto pronto (.zip)"]
Come si misura. La qualità non è un'opinione: parte dal profilo automatico del dato — già visibile nell'anteprima di ogni risorsa, che rileva righe, colonne, colonne numeriche e tipo dei campi — e la confronta con standard riconosciuti: principi FAIR (trovabile, accessibile, interoperabile, riusabile), modello 5-star di Berners-Lee, ISO 25012 (accuratezza, completezza, coerenza, attualità) e DCAT-AP_IT per i metadati. Su questa base il Lab segnala gli errori più comuni (celle vuote, date in formati diversi, codifiche/accenti sbagliati, doppioni), calcola un punteggio prima/dopo e propone le correzioni applicabili con un clic. Quando il dato è sotto la soglia minima per un giudizio attendibile dichiara "dato insufficiente" invece di assegnare punteggi fuorvianti.
Oltre la diagnosi: arricchire e organizzare. Una volta pulito, il Lab suggerisce come renderlo più utile:
- Arricchimento — se ci sono nomi di comuni senza codice ISTAT, indirizzi
senza coordinate, o colonne con poche parole ripetute ma scritte in modo incoerente, propone rispettivamente un join con l'anagrafica ISTAT, una geocodifica (indirizzo → coordinate) e un vocabolario controllato.
- Da dato a schema — genera il comando pronto (
CREATE TABLE) per caricare
il dato in un database: tipi di colonna, chiave primaria, indici. Per i dati geografici (GeoJSON), lo stesso ma per PostGIS/GeoPackage.
- Normalizzazione — le colonne ripetute (es. una "zona" con pochi valori
ripetuti mille volte) diventano tabelle di lookup vere e proprie, più viste già pronte per i riepiloghi più richiesti (totali per categoria, andamento nel tempo, incroci tra le due).
- Schede standard — genera la scheda descrittiva in due vocabolari: DCAT-AP_IT
(il catalogo nazionale) e schema.org/Dataset (quello letto da Google Dataset Search), entrambe validabili con lo stesso controllo FAIR + licenza.
- I dati che contano di più (HVD) — stima se il file rientra in una delle 6
categorie di High-Value Dataset della normativa UE (Reg. 2023/138): geospaziale, ambiente, meteo, statistici, imprese, mobilità. È un'euristica sui nomi di colonna, sul titolo e sul nome del file: ogni stima dichiara la propria confidenza (alta/media/bassa) e gli indizi che l'hanno prodotta — mai un verdetto secco. La stima compare anche nella scheda DCAT/schema.org, nella validazione e nel README del pacchetto di pubblicazione, perché per gli HVD valgono obblighi specifici (licenza aperta, formato machine-readable, API).
- Convertitori avanzati — non serve partire da un CSV: un file **Excel
(XLSX/XLS) viene convertito in CSV direttamente nel browser (con scelta del foglio), e uno Shapefile zippato diventa un GeoJSON già riproiettato in WGS84, pronto per la mappa. In uscita, oltre al CSV corretto, si può scaricare la versione Parquet** (colonnare e compressa, con i tipi inferiti dal contenuto): il consiglio "usa un formato colonnare" della sezione scala, applicato con un clic.
A cosa serve / per chi. È lo strumento di chi pubblica — uffici dati, RTD, open data manager — per alzare la qualità prima della pubblicazione e rispettare gli standard europei; e di chi riusa, per capire in fretta se un dataset è davvero pronto all'uso, come arricchirlo e come portarlo in un database. Si integra con la Maturità: i problemi di qualità trovati qui sono le leve concrete che fanno salire la dimensione Qualità della scorecard dell'ente.
Provalo subito. Vai su /qualita, incolla uno di questi esempi e premi Analizza:
Tabellare (CSV) — mostra diagnosi, arricchimento e normalizzazione:
comune,zona,indirizzo,anno
Gioia del Colle,Nord,Via Roma 1,2023
Bari,Sud,Via Garibaldi 5,2023
Modugno,Nord,Via Dante 12,2024
Bari,Sud,Via Cavour 3,2024
Poi apri "Suggerimenti di arricchimento" (join ISTAT per comune, geocodifica per indirizzo) e "Normalizzazione & modello" (tabella di lookup per zona + viste di totali/andamento/pivot).
Geografico (GeoJSON) — mostra diagnosi e schema PostGIS/GeoPackage:
{"type":"FeatureCollection","features":[{"type":"Feature","geometry":{"type":"Point","coordinates":[16.92,40.79]},"properties":
…
## Source & license
This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [agent-engineering-studio](https://github.com/agent-engineering-studio)
- **Source:** [agent-engineering-studio/opendata-ai](https://github.com/agent-engineering-studio/opendata-ai)
- **License:** MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.