Skip to content

jaimebs2/OpenSpain

Repository files navigation

🇪🇸 OpenSpain

Todos los datos públicos de España, a un comando de tu agente de IA.

97 skills que conectan a Claude, ChatGPT (y cualquier agente compatible) con los datos, APIs e información oficial del sector público español: legislación, estadística, fiscalidad, vivienda, emprendimiento, identidad digital, tráfico, meteorología, energía, sanidad, elecciones y mucho más.

npx skills add jaimebs2/OpenSpain --skill openspain

Una skill. Cero servidores. Cero SDKs. Todo el sector público español.

Quick start · Skills · MCPs · Instalación avanzada · Estructura · Documentación

🇬🇧 Read in English


Quick start

Instala la skill openspain y tu agente sabrá qué datos públicos existen, qué skill usar para cada consulta, y cómo instalarla al vuelo:

npx skills add jaimebs2/OpenSpain --skill openspain

Con una sola skill instalada, tu agente puede guiarte a instalar cualquiera de las 97 skills especializadas cuando las necesites. Es como tener un experto en datos públicos españoles siempre disponible.

¿Prefieres instalar todo de golpe? 👇

npx skills add jaimebs2/OpenSpain

Esto instala las 97 skills y tu agente tiene acceso directo a todos los datos e información pública desde el primer momento.


¿Qué es esto?

OpenSpain convierte las APIs, datasets e información del sector público español en skills consumibles desde cualquier agente de IA que soporte el estándar Agent Skills: Claude, ChatGPT, Cursor, GitHub Copilot, Cline y más. Cada skill conoce sus endpoints, normativa, particularidades y límites — el agente solo tiene que invocarla.

Sin servidores que levantar. Sin SDKs que instalar. Sin claves de API en la mayoría de los casos.

Para los casos que necesitan lógica real (cálculo geométrico, tool calls deterministas, Codex) hay además MCPs en Python bajo mcps/ — ver MCPs.


Skills

97 skills cubriendo legislación, parlamentos, meteorología, estadística, fiscalidad, extranjería, derecho laboral, justicia, vivienda, emprendimiento, identidad digital, energía, sanidad, educación, transporte y más. Verificadas con smoke tests reales contra las fuentes oficiales.

# Skill Qué hace Auth Ficha
openspain Meta-skill: directorio completo + routing automático a todas las skills
01 aeat Estadísticas fiscales: IRPF, IVA, sociedades 📄
02 aemet Predicción, climatología, alertas meteorológicas 🔑 📄
03 aena Estadísticas aeroportuarias: pasajeros, operaciones, carga 📄
04 bde Banco de España: tipos de interés, balanza, macroeconomía 📄
05 bne Bibliografía, fondo sonoro, patrimonio 📄
06 boe Legislación, sumarios diarios, leyes consolidadas 📄
07 borme Registro Mercantil: constitución y cambios de empresas 📄
08 catastro Inmuebles, parcelas, referencias catastrales 📄
09 cis Barómetros, encuestas sociológicas desde 1963 📄
10 cnig Cartografía, ortofotos, MDT, geocodificación 📄
11 cnmc Energía, telecomunicaciones, audiovisual, transporte 📄
12 congreso Votaciones, iniciativas, intervenciones, vídeos de plenos 📄
13 cte Código Técnico de la Edificación: Documentos Básicos, incendios, accesibilidad, radón, zonas climáticas 📄
14 dataestur Estadísticas de turismo: FRONTUR, EGATUR, alojamiento 📄
15 datos-gob-es Catálogo nacional: +90.000 datasets públicos 📄
16 dgt Tráfico en tiempo real, zonas de bajas emisiones, siniestralidad vial tráfico · zbe · accidentes
17 educacion Centros educativos, matrículas, estadísticas 📄
18 educacion-guia Becas MEC, Selectividad/EBAU, Formación Profesional, oposiciones becas-mec · selectividad · fp · oposiciones
19 emprendimiento Alta como autónomo, crear empresa, licencias de actividad alta-autonomo · crear-empresa · licencias-actividad
20 esios Sistema eléctrico: precio, demanda, generación por tecnología 🔑 📄
21 extranjeria NIE, residencia, trabajo, nacionalidad, arraigo, reagrupación, familiar UE, asilo nie · residencia · trabajo · nacionalidad · arraigo · reagrupacion · familiar-ue · asilo
22 fiscalidad Autónomos, IVA, IRPF, sociedades, Modelo 036, operaciones intracomunitarias, facturación, no residentes, sucesiones autonomos · iva · irpf-autonomos · irpf-asalariados · sociedades · modelo-036 · operaciones-intracomunitarias · facturacion · retenciones · itp-ajd · impuestos-locales · no-residentes · sucesiones-donaciones
23 identidad-digital Certificado digital FNMT, Cl@ve, DNI electrónico, AutoFirma certificado-digital · clave · dnie · autofirma
24 laboral Contratos, nóminas, desempleo, ERE/ERTE, convenios colectivos, Inspección de Trabajo contratos · nominas · desempleo · ere-erte · convenios · inspeccion
25 ine Demografía, economía, paro, censos, IPC 📄
26 infosubvenciones Convocatorias y concesiones de subvenciones públicas 📄
27 jec Resultados electorales, censo, votos por partido 📄
28 justicia Justicia gratuita, testamentos, herencias, poder notarial, registro civil, protección de datos justicia-gratuita · testamento · herencias · poder-notarial · registro-civil · proteccion-datos
29 miteco Embalses, calidad del aire, biodiversidad 📄
30 placsp Licitaciones y contratos del sector público 📄
31 puertos Oceanografía (mareógrafos, oleaje) y estadísticas portuarias 📄
32 rtve Archivo de noticias, programas, vídeos 📄
33 sanidad Centros de salud, hospitales, mortalidad 📄
34 seguridad-social Afiliación, altas/bajas, pensiones 📄
35 seguridad-social-guia Jubilación, vida laboral, incapacidad, maternidad/paternidad, cotizaciones jubilacion · vida-laboral · incapacidad · maternidad-paternidad · cotizaciones
36 senado Actividad parlamentaria, comisiones, textos 📄
37 snczi Zonas inundables, DPH, zona de policía/servidumbre (SNCZI, MITECO) 📄
38 sepe Paro registrado por municipio, sexo, edad, sector 📄
39 tramites Empadronamiento, antecedentes penales, apostilla, cita previa, TSE, legalización empadronamiento · antecedentes-penales · apostilla · cita-previa · tarjeta-sanitaria-europea · legalizacion-documentos
40 transparencia Contratos, subvenciones, altos cargos 📄
41 vehiculos Carnet de conducir, ITV, permiso internacional, transferencia de vehículos carnet-conducir · itv · permiso-internacional · transferencia-vehiculos
42 vivienda Compraventa, hipotecas, registro propiedad, comunidad propietarios, alquiler compraventa · hipotecas · registro-propiedad · comunidad-propietarios · alquiler

🔑 = requiere API key gratuita.

Índice completo de fichas técnicas: docs/README.md


MCPs

Algunas skills disponen además de una implementación MCP en Python bajo mcps/ para clientes que prefieren el Model Context Protocol (Codex, Claude Desktop, inspección HTTP, etc.) o que necesitan lógica que no se puede expresar como instrucciones (cálculo geométrico, parsing estructurado, paralelismo).

Skills y MCPs son artefactos independientes y se pueden usar por separado.

MCP Qué expone Cuándo elegirlo sobre la skill
catastro Provincias, municipios, calles, refcat, coordenadas ↔ inmueble, parcela polígono, inmuebles cercanos Necesitas tool calls deterministas (JSON) en vez de instrucciones a un LLM, o integrarlo con Codex
snczi Zonas inundables (T=10/100/500), DPH, aproximación zona policía/servidumbre, reporte combinado Quieres el cálculo de buffers 100 m/5 m aplicado automáticamente, o lo integras con Codex

Cada MCP trae su propio README con instalación, transportes (stdio / streamable-http / sse) y ejemplos para Codex y Claude Desktop.

Instalación rápida (ejemplo con snczi):

cd mcps/snczi
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
openspain-snczi-mcp                                   # stdio
openspain-snczi-mcp --transport streamable-http       # HTTP

Requisito común: Python ≥ 3.12. Cero autenticación contra los organismos (igual que las skills).


Instalación avanzada

Requisitos previos

El CLI de skills se ejecuta con npx, que viene incluido con Node.js. Si no lo tienes instalado:

# macOS (Homebrew)
brew install node

# Windows (winget)
winget install OpenJS.NodeJS

# Linux (NodeSource)
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

Verifica que funciona:

npx --version

Opción 1 — La skill openspain (recomendado)

La forma más rápida de empezar. Instala una sola skill que actúa como directorio inteligente: tu agente sabrá qué datos públicos existen, qué skill cubre cada consulta, y le dirá al usuario cómo instalarla cuando la necesite.

npx skills add jaimebs2/OpenSpain --skill openspain

Pregunta lo que quieras sobre datos públicos españoles y el agente te guía. Cuando necesites una skill concreta, te dice exactamente qué comando ejecutar.

Opción 2 — Instalar todo

Si sabes que vas a necesitar varias skills, instálalas todas de una vez:

npx skills add jaimebs2/OpenSpain

Opción 3 — Skills individuales

Instala solo las skills que necesites:

npx skills add jaimebs2/OpenSpain --skill boe        # Legislación
npx skills add jaimebs2/OpenSpain --skill ine        # Estadística
npx skills add jaimebs2/OpenSpain --skill catastro   # Inmuebles
npx skills add jaimebs2/OpenSpain --skill aemet      # Meteorología

Busca skills disponibles:

npx skills find openspain

Funciona con 18+ agentes de IA: Claude Code, GitHub Copilot, Cursor, Cline y más. El CLI copia la skill al directorio correcto del agente que estés usando.

Instalación manual

Si prefieres no usar el CLI, copia la carpeta de la skill directamente:

cp -r openspain ~/.claude/skills/openspain

O instala todas las skills especializadas a la vez:

for d in openspain/skills/*/; do
  name=$(basename "$d")
  [ -f "$d/SKILL.md" ] && cp -r "$d" "$HOME/.claude/skills/$name"
done

Claude carga la skill automáticamente cuando una pregunta encaje con su description. Cero dependencias: las skills usan WebFetch directamente contra las APIs públicas.

Skills con API key

Algunos organismos exigen registro gratuito. Exporta la variable antes de usar la skill:

export AEMET_API_KEY="tu_clave"     # AEMET
export ESIOS_TOKEN="tu_token"       # Red Eléctrica / ESIOS

Las skills leen estas variables del entorno — nunca las piden como parámetro al modelo.


Estructura de una skill

El repositorio agrupa la skill maestra y todas las skills especializadas bajo la carpeta openspain/:

openspain/
├── SKILL.md              # skill maestra: directorio completo + routing automático
└── skills/
    ├── boe/
    │   ├── service.yml   # metadata estándar: URLs, auth, rate limits, licencia, datos
    │   └── SKILL.md      # frontmatter YAML + instrucciones para Claude
    └── ...

Tests junto a cada skill:

openspain/skills/boe/
├── service.yml
├── SKILL.md
└── tests/
    ├── smoke.sh          # llamada real contra la API
    └── prompts.md        # casos de uso para validación manual

Skills con variantes (ej. DGT) se agrupan en subcarpetas. El CLI escanea recursivamente, así que el name del frontmatter solo debe coincidir con el directorio padre inmediato:

openspain/skills/dgt/
├── dgt-trafico/
│   ├── service.yml
│   └── SKILL.md          # name: dgt-trafico
├── dgt-zbe/
│   ├── service.yml
│   └── SKILL.md          # name: dgt-zbe
└── dgt-accidentes/
    ├── service.yml
    └── SKILL.md           # name: dgt-accidentes

service.yml — el contrato de la skill

Cada skill declara en service.yml todo lo que un agente (o un humano) necesita saber antes de usarla: qué hace, URLs oficiales, si requiere auth, rate limits conocidos, qué datos son accesibles y cuáles no, licencia, organismo emisor.

Es el contrato público de la skill. No hay magia oculta: las URLs, los límites y los términos de uso están a la vista en YAML legible.

SKILL.md — la skill en sí

Sigue el estándar Agent Skills: frontmatter YAML (name, description, license…) seguido de instrucciones markdown que Claude carga cuando la skill se activa. El nombre del directorio debe coincidir con el campo name. Compatible con npx skills add.

tests/ — verificación reproducible

  • smoke.sh — script bash autocontenido que hace una llamada real a la API y verifica la respuesta. Sin dependencias más allá de curl y jq. Sale con código 0 si todo va bien, 1 si algo falla.
  • prompts.md — preguntas de prueba con criterios de "pasa/falla" para validar manualmente que el agente está usando la skill correctamente.

mcps/<nombre>/ — MCP opcional en Python

Cuando una skill necesita lógica que un LLM no puede expresar de forma fiable (buffers geométricos, parsing binario, llamadas paralelas con retry específico) se añade un MCP independiente bajo mcps/ con su propio pyproject.toml, src/<nombre>/, tests/ y README. Sigue el Model Context Protocol y es compatible con Codex, Claude Desktop y cualquier cliente MCP.

mcps/<nombre>/
├── README.md           # instalación, transportes, ejemplos Codex/Claude Desktop
├── pyproject.toml      # paquete openspain-<nombre>, script openspain-<nombre>-mcp
├── src/<nombre>/
│   ├── server.py       # tools MCP (stdio / streamable-http / sse)
│   └── service.py      # cliente HTTP puro, testeable sin MCP
└── tests/              # unittest con httpx.MockTransport

Calidad

Antes de dar una skill por lista:

  1. bash openspain/skills/<nombre>/tests/smoke.sh debe pasar.
  2. Al menos 2 pruebas manuales con el agente usando los prompts de openspain/skills/<nombre>/tests/prompts.md.

Contribuir

¿Falta un organismo? ¿Una API que conoces no está cubierta? Abre un issue o un PR. La barrera es baja: si la fuente es oficial, los datos son reutilizables y existe un endpoint o página estable, encaja.

Tres reglas no negociables (verificadas en CI): origen declarado (URLs oficiales en service.yml), licencia de los datos declarada y contenido actualizable (cada dato debe poder re-verificarse contra su fuente, por un humano o por un agente).

Guía completa en CONTRIBUTING.md · Plan del proyecto en ROADMAP.md · Código de conducta


Licencia

Código: MIT.

Datos: pertenecen a sus organismos emisores y se rigen por sus respectivas condiciones de reutilización (mayoritariamente Ley 37/2007 sobre reutilización de información del sector público o licencias abiertas equivalentes). Cada service.yml declara la licencia específica de la skill.

About

Datos e información pública de España para agentes de IA — directorio abierto y colaborativo de skills y MCPs

Resources

License

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors