Data Collection
opendata.cat
MCP server for discovering, inspecting, and querying open datasets across indexed data portals.
ENDPOINT 1
https://opendata.cat/api/mcp
MCP server metadata
- Name
- opendata-cat
- Version
- 0.4.0
Catalan open data MCP server. You can query real data directly with query_dataset if you know the dataset_id. Always respond in the user's language. FEATURED DATASETS (use query_dataset directly, no search needed): - generalitat:gn9e-3qhr → Embassaments (reservoirs), CURRENT state — one row per reservoir with the latest reading: fields dia, estaci, volum_embassat, percentatge_volum_embassat, nivell_absolut - generalitat:vjx7-6kcp → Embassaments, HISTORICAL series (readings over time). Long format: one row per station/variable/timestamp. Fields: dia, hora, estacio, conca, tipus_variable ('Volum embassat', 'Percentatge volum embassat', 'Nivell absolut'), valor, unitat_mesura. Filter by estacio + tipus_variable. - generalitat:i5n8-43cw → Estat de sequera per municipi (drought status by municipality) - generalitat:rmgc-ncpb → Accidents de trànsit amb morts o ferits greus (traffic accidents with deaths/serious injuries) - generalitat:jq8m-d7cw → Incidents operatius gestionats pel CAT 112 (112 emergency incidents) - generalitat:mfqb-sbx4 → Trucades operatives gestionades pel CAT 112 (112 emergency calls) - generalitat:g2ay-3vnj → Actuacions dels Bombers de la Generalitat (firefighter operations) - generalitat:j6ii-t3w2 → Certificats d'eficiència energètica d'edificis (building energy certificates) - fgc:vehicle-positions-gtfs_realtime → FGC train GPS positions (real-time) - fgc:alerts-gtfs_realtime → FGC service alerts (real-time, in Catalan) - fgc:trip-updates-gtfs_realtime → FGC train delays (real-time) - renfe:vehicle-positions-gtfsrt → Rodalies Barcelona train GPS positions (real-time) - renfe:trip-updates-gtfsrt → Rodalies Barcelona train delays (real-time) - renfe:alerts-gtfsrt → Rodalies Barcelona service alerts (real-time, in Spanish) - idescat:m10328 → Població de Catalunya (population) - idescat:m10234 → Confiança empresarial (business confidence) - barcelona:accidents-gu-bcn → Accidents gestionats per la Guàrdia Urbana BCN (police-managed accidents) - barcelona:relacio-contractistes → Top contractors of Barcelona City Council: company name, NIF, total amount, number of contracts per entity - barcelona:perfil-contractant → Public procurement announcements: tenders, awards, formalizations of Barcelona and its municipal group - generalitat:ybgg-dgi6 → ALL public procurement in Catalonia (PSCP): company name (denominacio_adjudicatari), amount (import_adjudicacio_sense_iva), entity. Filter by denominacio_adjudicatari or organ. - generalitat:hb6v-jcbf → Public contracts registry for ANY Catalan municipality. Filter: organisme_contractant='Ajuntament de X'. Fields: adjudicatari, import_adjudicacio, contracte, exercici - generalitat:nn7v-4yxe → Generalitat contract awards (last 5 years): empresa_adjudicataria, import_adjudicat_sense_iva, departament - ine:poblacio-municipis → Population by municipality from INE (national census) - ine:epa-atur-ocupacio → Employment/unemployment by region (EPA survey) - ine:turisme-ocupacio-hotelera → Hotel occupancy by province/tourist destination - ree:generacio-espanya → Electricity generation mix in Spain (solar, wind, nuclear...) - ree:preus-electricitat → Real-time electricity prices (PVPC) - cnmc:preus-carburants → Fuel prices at every gas station in Spain CORA RESEARCH DATA (academic datasets via CKAN datastore): - cora:electoral-1936 → 1936 Spanish elections at municipal level: votes by coalition (left/right/center), turnout, 8,560 municipalities including 1,065 in Catalonia - cora:airbnb-bcn-demografia → Barcelona census-section demographics (population by age, foreigners) linked to Airbnb impact study - cora:airbnb-bcn-adreces → 1,918 Airbnb-style tourist rentals in Barcelona with GPS coordinates - cora:cova-gran-2025 → Cova Gran (Lleida) archaeological inventory: 5,573 finds (bones, lithic, ceramic) with stratigraphic levels and XYZ coordinates - cora:polat-panel → POLAT 12-wave political-attitudes panel of Spain (2010-2020): 20,991 obs, 106 key variables (trust, vote, ideology, populism) - cora:populistes-espanya → Populist Attitudes Survey Spain 2018: 3,031 respondents, 173 variables (populism, emotions, personality, ideology) - cora:vulnyouth-espanya → VulnYouth: precarious youth in Spain 2023: 3,013 young people (20-34), 138 variables (labour precariousness, WHO-5 mental health, housing) - cora:covid-normes-espanya → COVID-19 Social Norms Spain 2020: 4,523 responses during lockdown on compliance, informal sanctions, risk perception (62 variables) - cora:depcura-bcn → Care & Dependency Barcelona 2020: 1,600 people aged 65+ with functional dependency, 639 variables on care strategies and social services CATALÒNICA DIGITAL HERITAGE (Biblioteca de Catalunya — live, NOT indexed locally): Use query_dataset('catalonica:<set>', search='<text>'). 20 subportals return REAL RECORDS via their native API/scrape (title, creator, date, url_resource, abstract when available); the rest return a SEARCH GUIDE with native cercador URL. NATIVE-HANDLER SUBPORTALS (real records, citable): • DSpace 7 JSON: catalonica:upcommons (UPC), catalonica:o2uoc (UOC), catalonica:e-repositori (UPF), catalonica:dd (UB), catalonica:udlobert + catalonica:udlfonsespecials (UdL) • DSpace XMLUI scrape: catalonica:tdx (TDX theses), catalonica:uivic (UVic), catalonica:repositori_filmoteca (Filmoteca), catalonica:calaix (Cultura Generalitat) • DSpace JSPUI scrape: catalonica:bcnroc (Ajuntament BCN) • CONTENTdm API: catalonica:mdc (Memòria Digital Catalunya — broad heritage aggregator: cartells, fotos, manuscrits, premsa local) • Invenio MARC XML: catalonica:ddduab (UAB general), catalonica:ddduabrecerca (UAB research articles) • Europeana API: catalonica:mnac (MNAC art collection), catalonica:arca (~229K Catalan historical magazines/newspapers), catalonica:cartoteca (historical maps via ICGC), catalonica:regira (~51K Girona patrimoni hemerogràfic), catalonica:dugidocs (~18K UdG repo: postals, articles, documents) • Hardcoded journal catalogue: catalonica:raco (returns matching RACO journals filtered by keywords. Each record is a journal with `url_resource` and `search_within_journal` — the LLM should drill into the chosen journal to find articles, since OJS exposes no public article-level cross-search API) SEARCH-GUIDE SUBPORTALS (no JSON API, returns URLs + topic hints — direct the user to search_url_native, do NOT fabricate records): catalonica:hcc, catalonica:reus, catalonica:iei, catalonica:trencadis, catalonica:corpusliterari, catalonica:arxiuparaula, catalonica:bipadi, catalonica:rde, catalonica:rd_tecnocampus, catalonica:drac, catalonica:maco, catalonica:dugife, catalonica:dugimedia, catalonica:rcub, catalonica:egranados, catalonica:p3d, catalonica:bilderatlas, catalonica:ddduabrecursosdocents, catalonica:ddduabv2 Pick the right subportal for the topic — each one is a thematic source: - catalonica:tdx → Tesis Doctorals en Xarxa — Catalan doctoral theses (best for: scholarly research by author, supervisor, university or topic). Try search='tema:biomedicina', 'pais:Catalunya' - catalonica:raco → Revistes Catalanes amb Accés Obert — 600+ open-access Catalan academic journals (best for: scholarly papers in Catalan/Spanish by discipline) - catalonica:upcommons → UPC engineering & architecture (theses, papers, final-year projects) - catalonica:ddduab → Dipòsit Digital UAB (research + heritage) - catalonica:mnac → Museu Nacional d'Art de Catalunya — paintings, sculpture, photography, decorative arts (best for: Catalan art, modernisme, noucentisme, romanesque, gothic). Try search='Casas', 'modernisme', 'frescos romànics' - catalonica:mdc → Memòria Digital de Catalunya — heritage aggregator (cartells, fotos, manuscrits, premsa local from CSUC universities). Try search='cartell guerra civil' - catalonica:bipadi → Biblioteca Patrimonial Digital UB — manuscripts, incunabula, rare books - catalonica:cartoteca → Cartoteca Digital ICGC — historical maps and atlases. Try search='mapa Barcelona 1850' - catalonica:arca → Arxiu de Revistes Catalanes Antigues — historical magazines/newspapers - catalonica:hcc → Hemeroteca Científica Catalana — historical scientific journals - catalonica:reus → Reus historical local press (1850-1940) - catalonica:iei → Institut d'Estudis Ilerdencs — Lleida heritage and press - catalonica:repositori_filmoteca → Filmoteca de Catalunya — cinema heritage, posters, programs - catalonica:corpusliterari → Corpus Literari Digital — Catalan literature critical editions - catalonica:dd → Dipòsit Digital UB; catalonica:o2uoc → UOC repo; catalonica:e-repositori → UPF repo; catalonica:udlobert → UdL repo; catalonica:uivic → UVic repo (all academic research) - catalonica:bcnroc → Barcelona City Council reports & studies - catalonica:trencadis → XBM local municipal heritage (small towns) - catalonica:rcub → UB Revistes Científiques; catalonica:rde → Dept. Educació Generalitat; catalonica:calaix → Dept. Cultura Generalitat; catalonica:drac → Dades i Recursos Cultura - catalonica:arxiuparaula → Ateneu Barcelonès oral archive; catalonica:egranados → Enric Granados archive - catalonica:dugidocs/dugife/dugimedia → UdG; catalonica:dddua/dddua-recerca/dddua-recursosdocents/dddua-v2 → UAB; catalonica:udlfonsespecials → UdL; catalonica:rd_tecnocampus → TecnoCampus; catalonica:maco → Catalan academic monographs; catalonica:regira → Girona heritage; catalonica:bilderatlas → image archive Strategy: for an unknown query, you may try several subportals or fall back to catalonica:mdc (broadest aggregator). Subportal-specific cercador URLs are exposed via get_dataset_info > extra.subportal_url. MUNICIPAL DATA (filter by NOM_ENS with query_dataset): - aoc:ge-ge-cost-efectiu-serveis-minhap → Cost dels serveis de +1,000 municipis (municipal service costs) - aoc:ge-p-pressupostos-i-plantilles → Pressupostos i plantilles municipals (budgets & staffing) - aoc:ge-ge-endeutament → Endeutament municipal (municipal debt) - aoc:ge-p-liquidacions-per-programes-detallat → Budget execution by program - aoc:ge-ge-termini-pagament-proveidors → Payment terms to suppliers AVAILABLE PORTALS: generalitat (Socrata, ~1091), aoc (CKAN, ~903), barcelona (CKAN, ~555), idescat (API, ~144), reus (CKAN, ~119), diba (REST+CIDO, ~91), girona (CKAN, ~53), fgc (ODS+GTFS-RT, ~50), catalonica (OAI-PMH, ~39 cultural-heritage sets ≈2.2M items), cora (CKAN Datastore, 9 academic), ine (statistics API, ~6), renfe (CKAN+GTFS-RT, ~6), ree (energy API, ~4), sepe (employment, ~2), cnmc (fuel prices, ~1) COMMON SEARCH KEYWORDS: embassament, sequera, aigua, qualitat aire, contaminació, transport, trànsit, pressupost, educació, salut, població, habitatge, turisme, energia, electricitat, preu llum, residus, comerç, seguretat, bombers, accidents, 112, emergència, trens, rodalies, renfe, meteorologia, temps, temperatura, pluja, atur, ocupació, gasolina, carburants, PIB, IPC MAIN CATEGORIES: Medi Ambient, Economia, Educació, Salut, Seguretat, Societat-benestar, Urbanisme-infraestructures, Transport, Territori, Població, Treball, Turisme, Ciència i Tecnologia QUICK REFERENCE — Common queries (use query_dataset directly): - Contracts of any municipality: generalitat:hb6v-jcbf, filter {"organisme_contractant": "Ajuntament de X"} - Municipal budgets/debt: aoc:ge-* datasets, filter {"NOM_ENS": "Ajuntament de X"} - Reservoir levels: generalitat:gn9e-3qhr (no filter needed) - Electricity price now: ree:preus-electricitat (no filter needed) - Fuel prices by town: cnmc:preus-carburants, filter {"municipi": "X"} - Train delays: renfe:trip-updates-gtfsrt or fgc:trip-updates-gtfs_realtime - Population: ine:poblacio-municipis (auto-filtered to Catalonia) IF THE USER ASKS WHAT THEY CAN DO or what data is available: Explain that this server provides 15 portals covering: reservoirs & drought, air quality, traffic accidents, 112 emergencies, firefighters, public contracts & procurement, municipal budgets of 1000+ towns, train delays (FGC + Rodalies real-time), electricity prices (hourly PVPC), fuel prices (1500 gas stations), population, employment, tourism, GDP, housing, plus CORA academic research data (1936 elections, Airbnb, archaeology, political attitudes, populism, youth precariousness, COVID norms, dependency care), plus Catalònica digital heritage (~2.2M cultural objects: MNAC, RACO journals, doctoral theses, BNC library, MDC, Filmoteca, historical newspapers, maps, manuscripts). Suggest they try asking a specific question about any Catalan topic. NOTES: - Embassaments: current state → gn9e-3qhr. Evolution, trends or any past date → vjx7-6kcp. Every other question: follow the normal flow (search_datasets, then query_dataset). - Socrata: filter by any field, case-insensitive. Ex: filters: {"estaci": "Embassament de Sau"} or {"municipi": "badalona"} - CKAN AOC municipal: filter by NOM_ENS (e.g., "Ajuntament de Tiana"). Field names often in Spanish. - Idescat: each dataset_id returns 1 specific indicator with value, unit, period, and time series. - FGC GTFS-RT: auto-decoded protobuf. vehicle-positions → GPS, alerts → Catalan text. - Renfe GTFS-RT: JSON real-time data for Rodalies de Catalunya. Auto-filtered to Barcelona commuter routes. Content in Spanish. - INE: national statistics auto-filtered to Catalunya/Barcelona/Girona/Lleida/Tarragona series. - REE: electricity data (national level). Generation, demand, balance, real-time prices. - CNMC fuel prices: use filters {"provincia": "Barcelona"} or {"municipi": "Sabadell"} to narrow. Default: all Catalunya. - Public contracts: for ANY municipality use generalitat:hb6v-jcbf with filter {"organisme_contractant": "Ajuntament de X"}. Add {"exercici": "2025"} to filter by year. For Barcelona, barcelona:relacio-contractistes has aggregated totals per company. - CORA datasets: CKAN-compatible datastore. Filter by any field (case-insensitive). Survey datasets use coded values (numeric or short text). Wave-based panels (polat) have field 'wave'. Use list_dataset_fields to see all columns. - Catalònica: each dataset_id `catalonica:<set>` is one digital-heritage collection (thousands to millions of records). Use `q` for free-text search on title/creator/subject/description (very effective — try keywords like 'Picasso', 'Barcelona 1936', 'manuscrit medieval'). Filter by `type` (Text, Image, MovingImage, Sound), `language` (cat, spa, eng, lat), or `date` (year). `url_resource` points to the institutional viewer; `url_catalonica` to the BNC aggregator page. - Radioteca: use `search_radioteca` to query radioteca.cat (~485K radio episodes, programs and people from 8 Catalan/Spanish broadcasters: Catalunya Ràdio, RAC1, Catalunya Música, iCat, Catalunya Informació, RTVE, Cadena SER, ara.cat). Searches title, description (contains episode summary with what was said), program and subheading. Filter by `publisher`, `year` (YYYY) or `type` (Episode/Program/Person). Only year-level date filtering is indexed; for a specific day combine year filter + keywords and inspect the URL path (`/YYYY/MM/DD/`) or `subheading`. ALWAYS cite radioteca.cat as source and include each hit's absolute `url` in your reply for traceability — never paraphrase episodes without linking. - Dataset names and field names are in Catalan or Spanish — use them as-is in queries. - Pagination: query_dataset returns max 100 rows per call. Use offset to get more (offset=0, 100, 200...). No duplicates when paginating. Don't assume 100 is all there is. - Sorting (Socrata): pass {"order": "field_name DESC"} in filters to sort results. Example: {"order": "import_adjudicacio DESC"} for top contracts by amount. Default order is stable (:id). - Use search_datasets only when you don't know which dataset you need.
Known tools 8
get_dataset_infoGet complete metadata for a dataset: fields with types and descriptions, API endpoint, license, available formats and last update.
Potential side effectssearch_radiotecaSearch radio shows, episodes and people indexed at radioteca.cat (Catalan radio archive, ~485K documents from Catalunya Ràdio, RAC1, Catalunya Música, iCat, Catalunya Informació, RTVE, Cadena SER, ara.cat).
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.opendata-cat]
url = "https://opendata.cat/api/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"opendata-cat": {
"type": "http",
"url": "https://opendata.cat/api/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: opendata-cat
Remote MCP URL: https://opendata.cat/api/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"opendata-cat": {
"url": "https://opendata.cat/api/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"opendata-cat": {
"type": "http",
"url": "https://opendata.cat/api/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "opendata-cat",
"transport": "streamable-http",
"url": "https://opendata.cat/api/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Loading Trust v2 evidence…
Checking the associated registrable domain. The BuiltWith key remains server-side.
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.