Fuentes de datos públicos de España verificadas: endpoints, trampas, recetas, identificadores
Spanish public-sector data sources, catalogued for AI agents and developers: verified endpoints, response shapes, pitfalls, and recipes. Start at llms.txt.
Catálogo de fuentes de datos de la Administración pública española para desarrolladores y agentes de IA: qué hay, dónde está, cómo se llama, qué devuelve y qué falla. Cada endpoint se prueba con una llamada real y cada trampa lleva la fecha en que se comprobó.
uvx --from git+https://github.com/BquantFinance/Administracion-fuentes-publicas mcp-catalogo, o llms-min.txt (7 KB) o llms.txt; todo el catálogo en catalog.json o llms-full.txt.scripts/clientes/ (BOE y BORME, BDNS, AEMET, INE, PLACSP, DataComex, Saiku), probados contra respuestas reales.Algunos ejemplos, verificados con llamadas reales:
Accept: application/json, y la forma del sumario cambia según el día.pageSize, y no avisa.02001) sino un Id interno (6124)..gob.es envían el certificado FNMT sin la intermedia: el navegador entra, curl y requests fallan (arreglo).28:900, no 28079.Fuentes catalogadas: 95. Alcance actual: Administración General del Estado y, desde octubre de 2026, las cuatro comunidades más pobladas (Madrid, Cataluña, Andalucía y Comunitat Valenciana) y los ayuntamientos de Madrid y Barcelona. Después: resto de comunidades y entidades locales, Cortes y Poder Judicial, Unión Europea.
sources/**/*.yaml. Índices, catalog.json y llms*.txt se generan.gotchas recoge los detalles que hacen perder horas: cabeceras obligatorias, codificaciones raras, límites no documentados, URLs que cambian.verified lleva la fecha de la última prueba real del endpoint, o null. Un job semanal comprueba que las URLs siguen respondiendo.| sector | descripción | fuentes |
|---|---|---|
| legislacion-boletines | Legislación y boletines oficiales | 5 |
| economia-finanzas | Economía, finanzas y mercados | 5 |
| hacienda-presupuestos | Hacienda, tributos y presupuestos | 6 |
| estadistica | Estadística oficial | 7 |
| contratacion-subvenciones | Contratación pública y subvenciones | 3 |
| empleo-seguridad-social | Empleo y Seguridad Social | 3 |
| gobierno-abierto-administracion | Gobierno abierto, transparencia y organización administrativa | 11 |
| territorio-cartografia | Territorio, catastro y cartografía | 4 |
| meteorologia-clima | Meteorología y clima | 2 |
| medio-ambiente-agua-biodiversidad | Medio ambiente, agua y biodiversidad | 5 |
| energia | Energía | 5 |
| sanidad-medicamentos | Sanidad y medicamentos | 5 |
| ciencia-investigacion | Ciencia e investigación (biología, química, geología, oceanografía) | 7 |
| agricultura-pesca-alimentacion | Agricultura, pesca y alimentación | 4 |
| transporte-movilidad | Transporte y movilidad | 7 |
| comercio-industria-propiedad | Comercio exterior, industria y propiedad industrial | 4 |
| educacion-universidades | Educación y universidades | 2 |
| justicia-interior-seguridad | Justicia, interior y seguridad | 1 |
| cultura-patrimonio | Cultura y patrimonio | 2 |
| demografia-migraciones-sociedad | Demografía, migraciones y sociedad | 4 |
| vivienda-urbanismo | Vivienda y urbanismo | 1 |
| telecomunicaciones-digital | Telecomunicaciones y sociedad digital | 1 |
exterior-cooperacion | Acción exterior y cooperación | 0 |
| consumo-seguridad-alimentaria | Consumo y seguridad alimentaria | 1 |
defensa | Defensa | 0 |
sources/<sector>/<id>.yaml fichas (fuente de verdad)
sources/<sector>/README.md índice del sector (generado)
schema/source.schema.json esquema de ficha
schema/vocab.yaml vocabulario controlado: sectores, acceso, auth, formatos
catalog.json todo el catálogo (generado)
llms.txt / llms-full.txt entrada para agentes (generado)
indices/*.yaml recetas por intención, necesidades, identificadores, códigos que son parámetros, rutas muertas (fuente de verdad)
indices/README.md los cinco índices en texto (generado)
scripts/ validate.py, build.py, check_links.py, check_recetas.py, check_ejemplos.py, fnmt_bundle.py, mcp_catalogo.py (servidor MCP local)
scripts/clientes/ cargadores en Python que resuelven las trampas (BOE y BORME, BDNS, AEMET, INE, PLACSP, DataComex, Saiku)
scripts/clientes/muestras/ respuestas reales recortadas para probar los parsers sin red (python scripts/test_clientes.py)
evals/ 20 tareas con respuesta esperada para medir lo que aporta el repo a un agente
templates/source.yaml plantilla de ficha
guides/ guías transversales (identificadores para cruzar datasets, etc.)
# Todo el catálogo
curl -s https://raw.githubusercontent.com/BquantFinance/Administracion-fuentes-publicas/main/catalog.json
# Fuentes de un sector con API REST y sin autenticación
curl -s .../catalog.json | jq '.sources[] | select(.sector=="economia-finanzas" and (.access|index("api-rest")) and .auth=="none") | .id'
Además de las fichas, indices/ responde a las preguntas que se hacen antes de elegir una fuente:
python scripts/check_recetas.py ejecuta contra los servidores reales.tv, países de DataComex, estación de AEMET por capital, productos de carburantes, rangos del BOE), obtenidos con llamadas reales.Medido (evals/): en diez tareas resueltas por el mismo agente con y sin catálogo (dos modelos), el acierto fue el mismo; con catálogo, en las tareas difíciles las llamadas HTTP y los pasos del agente bajan a la mitad y las fallidas casi a cero. El consumo de tokens está pendiente de medir bien: las dos primeras tandas registraron el contexto final de cada agente, no los tokens procesados en todos sus turnos.
Todo en indices/README.md y, para consumo programático, bajo la clave indices de catalog.json. Cada endpoint principal de una ficha lleva example (llamada copiable) y returns (forma de la respuesta vista en esa llamada). python scripts/mcp_catalogo.py expone el catálogo por MCP en local para cargar solo lo necesario (guía).
Lee CONTRIBUTING.md. Resumen: copia templates/source.yaml, rellena, ejecuta python scripts/validate.py && python scripts/build.py, abre un PR.
Catálogo y documentación: CC0 1.0. Los datos a los que apuntan las fichas tienen cada uno su propia licencia, indicada en el campo license.
This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.
https://github.com/BquantFinance/Administracion-fuentes-publicas/releases/download/v0.10.0/catalogo-fuentes-publicas.mcpbotherCatálogo de fuentes públicas de España works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.