civic-superagents

civic-superagents

Enables querying a comprehensive data lake of Italian civic open data, returning cited facts about Italian municipalities across domains like environment, education, finance, and governance.

Category
Visit Server

README

Civic SuperAgents — data lake + mappa open data civici

Commons di skill AI civici e data lake sugli open data pubblici italiani, comune-keyed, con uno strato agentico (MCP) che rende ogni comune leggibile in italiano naturale — ogni dato ancorato a una fonte citabile.

Sintesi pubblica → civic-superagents.md · mappa verificata delle fonti → notes/mappa-open-data-civici.md.

Stato

Data lake su Supabase (Postgres + Storage + PostGIS). 16 sistemi-fonte / 17 dataset, oltre 1,9 M righe, prevalentemente nazionali (l'aria copre i ~comuni con centralina, per natura del dato). Strato serving via MCP con 11 tool (eseguibile in locale o deployabile come server HTTP — vedi mcp/). Provenance per ogni dato (meta.fonti → file immutabile in Storage raw/).

Cosa c'è nel lake

Tema Fonte Tabella mart.* Copertura
Rischio frane/alluvioni ISPRA IdroGEO idrogeo_comune 🇮🇹 7.896 comuni
Rifiuti / differenziata ISPRA Catasto Rifiuti rifiuti_comune_anno 🇮🇹 2020-24
Consumo di suolo ISPRA consumo_suolo_comune 🇮🇹 7.890
Qualità aria (PM10) EEA (sintesi annuale) · ARPA Lombardia (pilota) aria_comune_anno · aria_misure comuni con centralina
Edilizia scolastica MIUR scuola_edificio 🇮🇹 39.331 edifici
Popolazione / demografia ISTAT SDMX geo.comuni.popolazione 🇮🇹 7.890
Spesa per missione BDAP FET Rendiconto bilancio_comune 🇮🇹 2024 (99%)
Appalti (chi vince) ANAC appalto 🇮🇹 2024, ~313k (≥ €40k)
Fondi di coesione OpenCoesione progetto_coesione (+_comune) 🇮🇹 2021-27, 171k progetti
PNRR OpenPNRR pnrr_progetto (+_comune) 🇮🇹 291k progetti
Chi governa Min. Interno DAIT amministratore_comune 🇮🇹 115k
Cultura — biblioteche ICCU biblioteca_comune 🇮🇹 19.598
Acque — balneazione EEA/WISE (EMODnet) balneazione_sito 🇮🇹 siti costieri/lacustri
Energia — CER GSE cer_comune 🇮🇹 751 comuni
Welfare — asili nido ISTAT SDMX welfare_comune 🇮🇹 7.898

Lo strato agentico

mcp/ espone il lake come 11 strumenti civici (vedi mcp/README.md) — la narrazione in italiano civico la fa l'agente, il data layer restituisce dati citati:

  • cerca_comune / leggi_comune — risolve un comune e ne dà il profilo civico completo (ambiente · scuola · cultura · welfare · energia · bilancio per missione · appalti · fondi coesione+PNRR · gemelli finanziari · chi governa), ogni numero con la sua fonte.
  • progetti_comune, confronta_comuni, classifica, appalti_comune — query mirate sui mart.
  • helper_foia — bozza di accesso civico con i riferimenti normativi.
  • domande_da_verificare/firma_risposta e fonti_da_verificare/verifica_licenza — revisione umana del test set e delle licenze.
npm run mcp          # server MCP (stdio, locale)
npm run start:http   # server MCP (Streamable HTTP) — proteggi /mcp con MCP_AUTH_TOKEN

Registrazione locale in Claude Code:

claude mcp add civic-superagents -- npx tsx /ABS/PATH/civic-superagents/mcp/stdio.ts

Licenze delle fonti

Ogni fonte è stata verificata (con URL di prova). Riuso libero citando la fonte; due fonti sono share-alike.

Fonte Licenza
ISPRA — IdroGEO, Catasto Rifiuti, Consumo di suolo CC-BY-4.0
ISTAT — popolazione, servizi prima infanzia CC-BY-4.0
ANAC — appalti CC-BY-4.0
Min. Interno DAIT — amministratori CC-BY-4.0
OpenCoesione — progetti coesione CC-BY-4.0
EEA — aria PM10, balneazione (via EMODnet) CC-BY-4.0
Openpolis geojson-italy — confini (da ISTAT) CC-BY-4.0
MIUR — edilizia scolastica IODL-2.0 (≈ CC-BY)
BDAP / MEF-RGS — rendiconti CC-BY-3.0
dati.lombardia (ARPA) — aria · ICCU — biblioteche CC0-1.0
OpenPNRR — progetti PNRR ODbL-1.0 ⚠️ share-alike
GSE — comunità energetiche CC-BY-SA-3.0-IT ⚠️ share-alike

⚠️ Il dataset combinato include due fonti share-alike (OpenPNRR ODbL-1.0, GSE CC-BY-SA-3.0-IT): le elaborazioni derivate vanno ricondivise con la stessa licenza e il lake non è ridistribuibile come CC0. Vanno sempre attribuite tutte le fonti usate (la leggi_comune espone fonti per ogni profilo).

Questo repo: codice EUPL-1.2, prompt e documentazione CC-BY-SA-4.0 (vedi LICENSE e LICENSES/). I dati restano sotto le licenze delle rispettive fonti, qui sopra.

Struttura

supabase/      progetto Supabase: config.toml + migrations/ (geo · meta · glossary · mart)
ingestors/     un modulo per fonte (fetch → land Storage → load → upsert mart → nota) + manifest.yaml
  _framework/  download · storage · provenance · util (parser IT, normName, bulkUpsert)
mcp/           server MCP (11 tool) — read-only via SUPABASE_DB_URL_READONLY (ruolo civic_serve)
glossary/      lookup JSON curati
notes/         mappa consolidata + una nota per fonte (quirk operativi)
tests/         questions.jsonl — 16 domande civiche con risposta verificata a mano
rfc/ · LICENSE · CONTRIBUTING.md · LICENSES/   governance RFC-style, EUPL-1.2 + CC-BY-SA-4.0

Principi non negoziabili

  • Citation policy dura: ogni numero → riga meta.fonti → file immutabile in raw/. Senza fonte non si risponde.
  • Il comune è la chiave: tutto fa join su geo.comuni (ISTAT / pro_com / catastale / PostGIS).
  • Trappole dichiarate: liste d'attesa, acqua potabile, ritardi treni, criminalità comunale → "non pubblicato", mai promesse.
  • Le API italiane cambiano in silenzio → riverificare la liveness delle fonti prima di ogni release.

Setup

.env da .env.example (Supabase: URL, service-role key, pooler SUPABASE_DB_URL). Poi supabase db push, npm run ingest:wedges / ingest:money, npm run verify, npm run mcp. Dettagli in ingestors/README.md.

⚠️ Le API pubbliche italiane cambiano spesso e in silenzio: riverificare la liveness delle fonti prima di qualsiasi ridistribuzione. I valori dell'aria sono operativi, non certificati.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured