About opendata-cat
An MCP server that lets LLM clients search and query Catalan open government data. It covers 15 portals, including national sources focused on Catalonia, and the radioteca.cat radio archive. The project is maintained by the non-profit association opendata.cat and queries original sources directly.
Key features
- 01Search 3,073 datasets across 15 portals
- 02View dataset metadata, fields and licences
- 03Query source portals directly with filters and paging
- 04Access national sources such as INE, REE and CNMC
- 05Search the radioteca.cat archive with absolute URLs
Use cases
- 01Look up Catalan population, unemployment or CPI statistics
- 02Retrieve municipal budgets, contracts or debt figures
- 03Check PVPC electricity prices, fuel prices or live train delays
MCP support
This project is an MCP server that exposes search, metadata, query and radioteca.cat tools to MCP clients, and serves skills as resources and prompts.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://opendata.cat/api/mcpclaude mcp add --transport http xaviviro-opendata-cat https://opendata.cat/api/mcp{"mcpServers":{"xaviviro-opendata-cat":{"type":"http","url":"https://opendata.cat/api/mcp"}}}Open in Cursor{"servers":{"xaviviro-opendata-cat":{"type":"http","url":"https://opendata.cat/api/mcp"}}}Open in VS Code{"mcpServers":{"xaviviro-opendata-cat":{"type":"http","url":"https://opendata.cat/api/mcp"}}}{"mcpServers":{"xaviviro-opendata-cat":{"serverUrl":"https://opendata.cat/api/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project README
Opendata.cat MCP Server
Servidor MCP (Model Context Protocol) que connecta els models de llenguatge (Claude, ChatGPT, Gemini...) amb les dades obertes publiques de Catalunya. Cerca datasets, explora metadades i consulta dades reals de 15 portals directament des del teu assistent d'IA.
Un projecte d'opendata.cat — associacio sense anim de lucre fundada el 2012 que promou la transparencia, la difusio i l'estandarditzacio de les dades obertes a Catalunya. Inspirat en el projecte datagouv-mcp del govern frances.
Portals disponibles
Portals catalans
| Portal | Datasets | API |
|---|---|---|
| Generalitat de Catalunya | 1.059 | Socrata (SoQL) |
| Consorci AOC | ~887 | CKAN datastore |
| Ajuntament de Barcelona | 555 | CKAN datastore |
| Idescat | 138 | Idescat API |
| Ajuntament de Reus | 119 | CKAN datastore |
| Diputacio de Barcelona | 90 | REST + JSON:API (CIDO) |
| Ajuntament de Girona | 53 | CKAN datastore |
| FGC (Ferrocarrils) | 50 | Opendatasoft + GTFS-RT |
| Renfe Rodalies | 6 | CKAN + GTFS-RT JSON |
Fonts estatals amb focus Catalunya
| Font | Datasets | Que aporta |
|---|---|---|
| INE | 6 | Poblacio, IPC, EPA (atur/ocupacio), turisme, PIB, habitatge — auto-filtrat a Catalunya |
| Red Electrica (REE) | 4 | Generacio electrica (mix energetic), demanda, balanc, preus PVPC temps real |
| SEPE | 2 | Atur registrat i contractes per municipis catalans |
| CNMC / Ministeri | 1 | Preus carburants a ~1.500 gasolineres de Catalunya, filtrables per municipi |
+3.073 datasets de 15 portals. La majoria queryables amb filtres, cerca i paginacio.
El cataleg s'actualitza automaticament cada setmana. Crawling incremental amb --portal per carregar fonts noves sense re-escanejar tot.
Tipus d'acces:
- Socrata: consulta SoQL amb filtres i cerca (Generalitat)
- CKAN: datastore_search amb filtres i cerca (Barcelona, AOC, Reus, Girona, Renfe)
- Diba REST: API do.diba.cat amb paginacio i filtres (Diputacio BCN)
- CIDO JSON:API: api.diba.cat per contractacions, normatives, subvencions (Diputacio BCN)
- Opendatasoft: API records amb filtres i cerca (FGC)
- GTFS-RT: posicions GPS, alertes i retards dels trens FGC i Renfe Rodalies en temps real
- Idescat: indicadors estadistics amb series temporals
- INE: estadistica oficial d'Espanya filtrada automaticament a Catalunya
- REE: generacio electrica, demanda i preus de l'electricitat (PVPC) en temps real
- CNMC: preus de carburants per estacio de servei, filtrables per CCAA/provincia/municipi
- GIS: simplificacio automatica de geometries (centroide + bbox)
- Dades municipals AOC: 9 datasets amb dades de +1.000 municipis, filtrables per NOM_ENS
Installacio rapida
Claude Desktop
Afegeix al fitxer de configuracio (~/Library/Application Support/Claude/claude_desktop_config.json a macOS o %APPDATA%\Claude\claude_desktop_config.json a Windows):
{
"mcpServers": {
"opendata-cat": {
"command": "npx",
"args": ["-y", "@opendata.cat/mcp-server"]
}
}
}
Claude Code (CLI)
claude mcp add opendata-cat -- npx -y @opendata.cat/mcp-server
VS Code / Cursor
Afegeix al fitxer .vscode/mcp.json del teu projecte:
{
"servers": {
"opendata-cat": {
"command": "npx",
"args": ["-y", "@opendata.cat/mcp-server"]
}
}
}
Windsurf / Cline / JetBrains / Gemini CLI / Warp / ChatGPT / Copilot Studio
Consulta la guia completa amb instruccions per a 13 clients MCP a opendata.cat/mcp.
Tambe pots connectar directament via Streamable HTTP sense instal·lar res:
https://opendata.cat/api/mcp
Tools disponibles
| Tool | Descripcio |
|---|---|
search_datasets | Cerca datasets per text lliure al cataleg de +3.073 datasets |
get_dataset_info | Retorna metadades completes: camps, tipus, llicencia, endpoint |
list_dataset_fields | Llista els camps d'un dataset amb nom, tipus i descripcio |
query_dataset | Consulta dades reals directament al portal origen |
list_portals | Llista els 15 portals disponibles amb estadistiques |
list_categories | Llista categories i temes disponibles amb comptadors |
related_datasets | Retorna datasets relacionats d'altres portals |
search_radioteca | Cerca al cataleg de radioteca.cat (~485K episodis, programes i persones de Catalunya Radio, RAC1, Catalunya Musica, iCat, RTVE...). Sempre retorna URL absolut a radioteca.cat per trayabilitat |
search_datasets
Cerca datasets per text lliure.
query: "qualitat aire"
portal: "barcelona" # opcional: generalitat, barcelona, diba, aoc, reus, girona, fgc, idescat, renfe, ine, ree, sepe, cnmc
category: "Medi Ambient" # opcional
limit: 20 # opcional (defecte: 20)
query_dataset
Executa una consulta directament contra el portal origen i retorna dades reals.
dataset_id: "generalitat:gn9e-3qhr"
filters: {"estaci": "Sau"} # opcional
search: "embassament" # opcional
limit: 20 # opcional (defecte: 20, max: 100)
offset: 0 # opcional
Exemples de filtres per fonts estatals:
- INE: auto-filtrat a Catalunya (poblacio, IPC, turisme...)
- REE:
ree:preus-electricitat— preus PVPC per hora - CNMC:
filters: {"municipi": "Sabadell"}— gasolineres de Sabadell
Skills
A més de les tools i els prompts, el servidor publica skills: guies d'investigació
(estil SKILL.md) que orienten l'LLM pas a pas en un domini concret — com triar el dataset,
filtrar, paginar i citar bé. Es distribueixen dins el paquet (skills/) i es serveixen com a
resources MCP (skill://<nom>/SKILL.md, via resources/list + resources/read) i com a
prompts-pont invocables com a slash-command (/mcp__opendata_cat__skill_<nom>).
| Skill | Per a què |
|---|---|
consulta-dades-obertes | Orientació general: navegar els 15 portals, consultar directe vs cercar, paginació, cites |
contractacio-publica | Investigar contractació pública: creuar PSCP, registres municipals i adjudicacions, sumar imports |
radar-municipal | Retrat complet d'un municipi creuant portals (pressupost, deute, contractes, població) |
patrimoni-i-hemeroteca | Recerca a Catalònica (BNC) i radioteca.cat amb selecció de subportal i cites obligatòries |
Les mateixes skills es serveixen també des de l'endpoint HTTP https://opendata.cat/api/mcp.
Exemples d'us
Un cop configurat, pots fer preguntes al teu LLM com:
- "Quin es l'estat dels embassaments de Catalunya?"
- "Hi ha algun tren de Rodalies o FGC amb retard ara mateix?"
- "Quina es la poblacio de Catalunya segons l'INE?"
- "Quin es el preu de la gasolina a Sabadell avui?"
- "Quant costa l'electricitat ara? (PVPC)"
- "Analitza la qualitat de l'aire a Terrassa"
- "Quina es la taxa d'atur a Catalunya?"
- "Quantes pernoctacions turistiques hi ha a Barcelona?"
- "Compara Girona i Tarragona en dades obertes"
- "Dona'm les ultimes dades de pressupostos de Reus"
- "Quin es l'endeutament de Tiana?"
Com funciona
Usuari → LLM → MCP opendata.cat → API opendata.cat (cataleg)
→ Portal origen (dades reals)
- L'MCP consulta l'API d'opendata.cat per descobrir datasets rellevants
- Quan l'usuari vol dades concretes, l'MCP fa la consulta directament al portal origen
- Les dades tornen a l'LLM, que les interpreta i presenta a l'usuari
No emmagatzema ni fa de proxy de dades. Cada consulta va directament a la font oficial.
API REST
A mes del servidor MCP, opendata.cat ofereix una API REST publica:
| Endpoint | Descripcio |
|---|---|
GET /api/all-datasets.php | Llistat complet amb paginacio, filtres i sort |
GET /api/datasets.php?q=... | Cerca datasets per text lliure |
GET /api/dataset.php?id=... | Detall complet d'un dataset |
GET /api/categories.php | Categories i portals amb comptadors |
POST /api/mcp | Servidor MCP (Streamable HTTP) |
Documentacio interactiva (Swagger): opendata.cat/api/docs.html
Sobre opendata.cat
opendata.cat es una associacio catalana sense anim de lucre fundada el 2012 (registre 47468) dedicada a promoure la transparencia i l'acces a la informacio publica.
Changelog
v0.6.0 (2026-07-15)
- Noves skills servides com a resources MCP (
skill://<nom>/SKILL.md) + prompts-pont (skill_<nom>) - 4 skills d'investigació:
consulta-dades-obertes,contractacio-publica,radar-municipal,patrimoni-i-hemeroteca - Empaquetades a
skills/i sincronitzades amb l'endpoint HTTPopendata.cat/api/mcp
v0.5.0 (2026-06-06)
- Nou tool
search_radioteca: cerca a radioteca.cat (~485K documents de radio catalana — 8 emissores) - Filtres
publisher,year,type(Episode/Program/Person) - Tots els hits inclouen URL absoluta a radioteca.cat per trayabilitat
- Proxy server-side a opendata.cat — la clau de Typesense no s'exposa al paquet npm
v0.3.1 (2026-04-17)
- Handler CNMC preus carburants al paquet npm (abans nomes funcionava via HTTP)
- Filtre per municipi i provincia:
filters: {"municipi": "Sabadell"} - Per defecte retorna tota Catalunya (~1.500 gasolineres)
- Nova og:image amb 13 portals i fonts estatals
v0.3.0 (2026-04-16)
- 5 noves fonts estatals espanyoles amb focus Catalunya: INE, REE, SEPE, CNMC
- Handler INE: estadistica oficial (poblacio, IPC, EPA, turisme, PIB, habitatge) auto-filtrat a Catalunya
- Handler REE: generacio electrica, demanda, balanc, preus PVPC en temps real
- Handler CNMC: preus carburants amb filtres per CCAA/provincia/municipi via API REST
- Crawler incremental: flag
--portalper carregar fonts noves sense re-escanejar tot - 13 portals, 2.857 datasets
v0.2.0 (2026-04-15)
- Nou portal Renfe (Rodalies de Catalunya) — 6 datasets (estacions, viatgers, GTFS-RT temps real)
- Handler GTFS-RT JSON amb filtre automatic a rutes Rodalies Barcelona (R1-R16, RT, RG, RL)
- Instruccions reescrites en angles per millorar comprensio dels LLMs
- Llistats de portals, keywords i categories a les instruccions
- Tool descriptions i prompts traduits a angles
- Nou prompt trens_rodalies_temps_real
v0.1.2 (2026-04-14)
- Instructions integrades: l'LLM rep datasets destacats i pot fer query directe sense cercar
- Fix Idescat: ara retorna l'indicador especific en lloc de 6 aleatoris
- 9 datasets municipals AOC: pressupostos, cost serveis, endeutament de +1.000 municipis
v0.1.0 (2026-04-14)
- Nou portal Idescat — 138 indicadors estadistics amb series temporals
- Portals Reus i Girona
v0.0.17 (2026-04-14)
- Decodificador GTFS-RT integrat: trens FGC en temps real
- API REST documentada amb Swagger UI (OpenAPI 3.1)
v0.0.10 (2026-04-13)
- Portal FGC (50 datasets via Opendatasoft)
- 14 prompts predefinits
v0.0.1 (2026-04-12)
- Versio inicial: Generalitat, Barcelona, Diba, AOC — 6 tools, npm
Llicencia
MIT
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.