{
  "markdown": "<p align=\"center\">\n  <img src=\"banner.png\" alt=\"Opendata.cat MCP Server — Connecta el teu LLM amb les dades obertes de Catalunya\" width=\"100%\">\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/@opendata.cat/mcp-server\"><img src=\"https://img.shields.io/npm/v/@opendata.cat/mcp-server?color=c44536&label=npm\" alt=\"npm\"></a>\n  <a href=\"https://www.npmjs.com/package/@opendata.cat/mcp-server\"><img src=\"https://img.shields.io/npm/dm/@opendata.cat/mcp-server?color=c44536&label=downloads\" alt=\"npm downloads\"></a>\n  <a href=\"https://github.com/xaviviro/Opendata.cat-MCP-Server\"><img src=\"https://img.shields.io/github/v/tag/xaviviro/Opendata.cat-MCP-Server?label=github&color=1a1a1a\" alt=\"github\"></a>\n  <a href=\"https://opendata.cat/mcp\"><img src=\"https://img.shields.io/badge/web-opendata.cat%2Fmcp-c9a227\" alt=\"web\"></a>\n  <a href=\"https://opensource.org/licenses/MIT\"><img src=\"https://img.shields.io/badge/license-MIT-green\" alt=\"license\"></a>\n</p>\n\n# Opendata.cat MCP Server\n\nServidor [MCP](https://modelcontextprotocol.io/) (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.\n\nUn projecte d'**[opendata.cat](https://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](https://github.com/datagouv/datagouv-mcp) del govern frances.\n\n## Portals disponibles\n\n### Portals catalans\n\n| Portal | Datasets | API |\n|--------|----------|-----|\n| [Generalitat de Catalunya](https://analisi.transparenciacatalunya.cat) | 1.059 | Socrata (SoQL) |\n| [Consorci AOC](https://dadesobertes.seu-e.cat) | ~887 | CKAN datastore |\n| [Ajuntament de Barcelona](https://opendata-ajuntament.barcelona.cat) | 555 | CKAN datastore |\n| [Idescat](https://www.idescat.cat) | 138 | Idescat API |\n| [Ajuntament de Reus](https://opendata.reus.cat) | 119 | CKAN datastore |\n| [Diputacio de Barcelona](https://dadesobertes.diba.cat) | 90 | REST + JSON:API (CIDO) |\n| [Ajuntament de Girona](https://www.girona.cat/opendata/) | 53 | CKAN datastore |\n| [FGC (Ferrocarrils)](https://dadesobertes.fgc.cat) | 50 | Opendatasoft + GTFS-RT |\n| [Renfe Rodalies](https://data.renfe.com) | 6 | CKAN + GTFS-RT JSON |\n\n### Fonts estatals amb focus Catalunya\n\n| Font | Datasets | Que aporta |\n|------|----------|-----------|\n| [INE](https://www.ine.es) | 6 | Poblacio, IPC, EPA (atur/ocupacio), turisme, PIB, habitatge — auto-filtrat a Catalunya |\n| [Red Electrica (REE)](https://www.ree.es) | 4 | Generacio electrica (mix energetic), demanda, balanc, preus PVPC temps real |\n| [SEPE](https://sepe.es) | 2 | Atur registrat i contractes per municipis catalans |\n| [CNMC / Ministeri](https://datos.gob.es) | 1 | Preus carburants a ~1.500 gasolineres de Catalunya, filtrables per municipi |\n\n**+3.073 datasets** de 15 portals. La majoria queryables amb filtres, cerca i paginacio.\n\nEl cataleg s'actualitza automaticament cada setmana. Crawling incremental amb `--portal` per carregar fonts noves sense re-escanejar tot.\n\n**Tipus d'acces:**\n- **Socrata**: consulta SoQL amb filtres i cerca (Generalitat)\n- **CKAN**: datastore_search amb filtres i cerca (Barcelona, AOC, Reus, Girona, Renfe)\n- **Diba REST**: API do.diba.cat amb paginacio i filtres (Diputacio BCN)\n- **CIDO JSON:API**: api.diba.cat per contractacions, normatives, subvencions (Diputacio BCN)\n- **Opendatasoft**: API records amb filtres i cerca (FGC)\n- **GTFS-RT**: posicions GPS, alertes i retards dels trens FGC i Renfe Rodalies en temps real\n- **Idescat**: indicadors estadistics amb series temporals\n- **INE**: estadistica oficial d'Espanya filtrada automaticament a Catalunya\n- **REE**: generacio electrica, demanda i preus de l'electricitat (PVPC) en temps real\n- **CNMC**: preus de carburants per estacio de servei, filtrables per CCAA/provincia/municipi\n- **GIS**: simplificacio automatica de geometries (centroide + bbox)\n- **Dades municipals AOC**: 9 datasets amb dades de +1.000 municipis, filtrables per NOM_ENS\n\n## Installacio rapida\n\n### Claude Desktop\n\nAfegeix al fitxer de configuracio (`~/Library/Application Support/Claude/claude_desktop_config.json` a macOS o `%APPDATA%\\Claude\\claude_desktop_config.json` a Windows):\n\n```json\n{\n  \"mcpServers\": {\n    \"opendata-cat\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@opendata.cat/mcp-server\"]\n    }\n  }\n}\n```\n\n### Claude Code (CLI)\n\n```bash\nclaude mcp add opendata-cat -- npx -y @opendata.cat/mcp-server\n```\n\n### VS Code / Cursor\n\nAfegeix al fitxer `.vscode/mcp.json` del teu projecte:\n\n```json\n{\n  \"servers\": {\n    \"opendata-cat\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@opendata.cat/mcp-server\"]\n    }\n  }\n}\n```\n\n### Windsurf / Cline / JetBrains / Gemini CLI / Warp / ChatGPT / Copilot Studio\n\nConsulta la guia completa amb instruccions per a **13 clients MCP** a **[opendata.cat/mcp](https://opendata.cat/mcp)**.\n\nTambe pots connectar directament via **Streamable HTTP** sense instal·lar res:\n\n```\nhttps://opendata.cat/api/mcp\n```\n\n## Tools disponibles\n\n| Tool | Descripcio |\n|------|-----------|\n| `search_datasets` | Cerca datasets per text lliure al cataleg de +3.073 datasets |\n| `get_dataset_info` | Retorna metadades completes: camps, tipus, llicencia, endpoint |\n| `list_dataset_fields` | Llista els camps d'un dataset amb nom, tipus i descripcio |\n| `query_dataset` | Consulta dades reals directament al portal origen |\n| `list_portals` | Llista els 15 portals disponibles amb estadistiques |\n| `list_categories` | Llista categories i temes disponibles amb comptadors |\n| `related_datasets` | Retorna datasets relacionats d'altres portals |\n| `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 |\n\n### search_datasets\n\nCerca datasets per text lliure.\n\n```\nquery: \"qualitat aire\"\nportal: \"barcelona\"        # opcional: generalitat, barcelona, diba, aoc, reus, girona, fgc, idescat, renfe, ine, ree, sepe, cnmc\ncategory: \"Medi Ambient\"   # opcional\nlimit: 20                  # opcional (defecte: 20)\n```\n\n### query_dataset\n\nExecuta una consulta directament contra el portal origen i retorna dades reals.\n\n```\ndataset_id: \"generalitat:gn9e-3qhr\"\nfilters: {\"estaci\": \"Sau\"}   # opcional\nsearch: \"embassament\"         # opcional\nlimit: 20                     # opcional (defecte: 20, max: 100)\noffset: 0                     # opcional\n```\n\nExemples de filtres per fonts estatals:\n- INE: auto-filtrat a Catalunya (poblacio, IPC, turisme...)\n- REE: `ree:preus-electricitat` — preus PVPC per hora\n- CNMC: `filters: {\"municipi\": \"Sabadell\"}` — gasolineres de Sabadell\n\n## Skills\n\nA més de les tools i els prompts, el servidor publica **skills**: guies d'investigació\n(estil `SKILL.md`) que orienten l'LLM pas a pas en un domini concret — com triar el dataset,\nfiltrar, paginar i citar bé. Es distribueixen dins el paquet (`skills/`) i es serveixen com a\n**resources** MCP (`skill://<nom>/SKILL.md`, via `resources/list` + `resources/read`) i com a\n**prompts-pont** invocables com a slash-command (`/mcp__opendata_cat__skill_<nom>`).\n\n| Skill | Per a què |\n| --- | --- |\n| `consulta-dades-obertes` | Orientació general: navegar els 15 portals, consultar directe vs cercar, paginació, cites |\n| `contractacio-publica` | Investigar contractació pública: creuar PSCP, registres municipals i adjudicacions, sumar imports |\n| `radar-municipal` | Retrat complet d'un municipi creuant portals (pressupost, deute, contractes, població) |\n| `patrimoni-i-hemeroteca` | Recerca a Catalònica (BNC) i radioteca.cat amb selecció de subportal i cites obligatòries |\n\nLes mateixes skills es serveixen també des de l'endpoint HTTP `https://opendata.cat/api/mcp`.\n\n## Exemples d'us\n\nUn cop configurat, pots fer preguntes al teu LLM com:\n\n- *\"Quin es l'estat dels embassaments de Catalunya?\"*\n- *\"Hi ha algun tren de Rodalies o FGC amb retard ara mateix?\"*\n- *\"Quina es la poblacio de Catalunya segons l'INE?\"*\n- *\"Quin es el preu de la gasolina a Sabadell avui?\"*\n- *\"Quant costa l'electricitat ara? (PVPC)\"*\n- *\"Analitza la qualitat de l'aire a Terrassa\"*\n- *\"Quina es la taxa d'atur a Catalunya?\"*\n- *\"Quantes pernoctacions turistiques hi ha a Barcelona?\"*\n- *\"Compara Girona i Tarragona en dades obertes\"*\n- *\"Dona'm les ultimes dades de pressupostos de Reus\"*\n- *\"Quin es l'endeutament de Tiana?\"*\n\n## Com funciona\n\n```\nUsuari → LLM → MCP opendata.cat → API opendata.cat (cataleg)\n                                 → Portal origen (dades reals)\n```\n\n1. L'MCP consulta l'[API d'opendata.cat](https://opendata.cat) per descobrir datasets rellevants\n2. Quan l'usuari vol dades concretes, l'MCP fa la consulta directament al portal origen\n3. Les dades tornen a l'LLM, que les interpreta i presenta a l'usuari\n\nNo emmagatzema ni fa de proxy de dades. Cada consulta va directament a la font oficial.\n\n## API REST\n\nA mes del servidor MCP, opendata.cat ofereix una API REST publica:\n\n| Endpoint | Descripcio |\n|----------|-----------|\n| `GET /api/all-datasets.php` | Llistat complet amb paginacio, filtres i sort |\n| `GET /api/datasets.php?q=...` | Cerca datasets per text lliure |\n| `GET /api/dataset.php?id=...` | Detall complet d'un dataset |\n| `GET /api/categories.php` | Categories i portals amb comptadors |\n| `POST /api/mcp` | Servidor MCP (Streamable HTTP) |\n\nDocumentacio interactiva (Swagger): **[opendata.cat/api/docs.html](https://opendata.cat/api/docs.html)**\n\n## Sobre opendata.cat\n\n[opendata.cat](https://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.\n\n## Changelog\n\n### v0.6.0 (2026-07-15)\n- Noves **skills** servides com a resources MCP (`skill://<nom>/SKILL.md`) + prompts-pont (`skill_<nom>`)\n- 4 skills d'investigació: `consulta-dades-obertes`, `contractacio-publica`, `radar-municipal`, `patrimoni-i-hemeroteca`\n- Empaquetades a `skills/` i sincronitzades amb l'endpoint HTTP `opendata.cat/api/mcp`\n\n### v0.5.0 (2026-06-06)\n- Nou tool `search_radioteca`: cerca a radioteca.cat (~485K documents de radio catalana — 8 emissores)\n- Filtres `publisher`, `year`, `type` (Episode/Program/Person)\n- Tots els hits inclouen URL absoluta a radioteca.cat per trayabilitat\n- Proxy server-side a opendata.cat — la clau de Typesense no s'exposa al paquet npm\n\n### v0.3.1 (2026-04-17)\n- Handler CNMC preus carburants al paquet npm (abans nomes funcionava via HTTP)\n- Filtre per municipi i provincia: `filters: {\"municipi\": \"Sabadell\"}`\n- Per defecte retorna tota Catalunya (~1.500 gasolineres)\n- Nova og:image amb 13 portals i fonts estatals\n\n### v0.3.0 (2026-04-16)\n- 5 noves fonts estatals espanyoles amb focus Catalunya: INE, REE, SEPE, CNMC\n- Handler INE: estadistica oficial (poblacio, IPC, EPA, turisme, PIB, habitatge) auto-filtrat a Catalunya\n- Handler REE: generacio electrica, demanda, balanc, preus PVPC en temps real\n- Handler CNMC: preus carburants amb filtres per CCAA/provincia/municipi via API REST\n- Crawler incremental: flag `--portal` per carregar fonts noves sense re-escanejar tot\n- 13 portals, 2.857 datasets\n\n### v0.2.0 (2026-04-15)\n- Nou portal Renfe (Rodalies de Catalunya) — 6 datasets (estacions, viatgers, GTFS-RT temps real)\n- Handler GTFS-RT JSON amb filtre automatic a rutes Rodalies Barcelona (R1-R16, RT, RG, RL)\n- Instruccions reescrites en angles per millorar comprensio dels LLMs\n- Llistats de portals, keywords i categories a les instruccions\n- Tool descriptions i prompts traduits a angles\n- Nou prompt trens_rodalies_temps_real\n\n### v0.1.2 (2026-04-14)\n- Instructions integrades: l'LLM rep datasets destacats i pot fer query directe sense cercar\n- Fix Idescat: ara retorna l'indicador especific en lloc de 6 aleatoris\n- 9 datasets municipals AOC: pressupostos, cost serveis, endeutament de +1.000 municipis\n\n### v0.1.0 (2026-04-14)\n- Nou portal Idescat — 138 indicadors estadistics amb series temporals\n- Portals Reus i Girona\n\n### v0.0.17 (2026-04-14)\n- Decodificador GTFS-RT integrat: trens FGC en temps real\n- API REST documentada amb Swagger UI (OpenAPI 3.1)\n\n### v0.0.10 (2026-04-13)\n- Portal FGC (50 datasets via Opendatasoft)\n- 14 prompts predefinits\n\n### v0.0.1 (2026-04-12)\n- Versio inicial: Generalitat, Barcelona, Diba, AOC — 6 tools, npm\n\n## Llicencia\n\nMIT\n",
  "bytes": 12526,
  "sha": "1eb4ee42892bf22656005442726840ff591eb32b067f2c7c3205585c3763b8ad",
  "repo_slug": "xaviviro/opendata.cat-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_xaviviro_opendata_cat_9567d4ba/readme"
}