Token导航 LogoToken导航TokenDH.com
Datos Gob Es MCP logo
搜索检索stdio官方级别未说明来源级核验

Datos Gob Es MCP

MCP Server

一个集中化的MCP服务器,连接多个西班牙公共数据API,提供统一的访问接口,适用于AI助手和其他MCP客户端。

工具数

0

提示词数

0

GitHub Stars

15

资源数

0
开放数据PythonClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AlbertoUAH

提供方

AlbertoUAH

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m venv .venv

详细介绍

datos-gob-es-mcp

](https://github.com/AlbertoUAH/datos-gob-es-mcp/releases) ![Python 3.10+](https://www.python.org/downloads/) ![License: MIT](https://opensource.org/licenses/MIT) ![MCP](https://modelcontextprotocol.io/) ![Tests](docs/test_report.md)

Hub de OpenData Espanol - Servidor MCP (Model Context Protocol) que unifica el acceso a las principales fuentes de datos abiertos de Espana en una sola interfaz.

Descripcion

Este servidor MCP actua como un hub centralizado que conecta multiples APIs de datos publicos espanoles, permitiendo a asistentes de IA como Claude, ChatGPT y otros clientes MCP acceder a toda la informacion desde un unico punto.

Fuentes de datos integradas

FuenteDescripcionAuthDocumentacion
datos.gob.esCatalogo nacional de datos abiertos (+40.000 datasets)NoAPI
INEInstituto Nacional de EstadisticaNoAPI
AEMETAgencia Estatal de MeteorologiaAPI keyAPI
BOEBoletin Oficial del EstadoNoAPI

Caracteristicas

  • 11 herramientas MCP simplificadas para consultar multiples APIs de datos publicos
  • 5 recursos MCP (templates dinamicos) para acceso directo a datos
  • 6 prompts MCP para guias de busqueda detalladas
  • Busqueda semantica: Busqueda por significado usando embeddings (IA)
  • Cache de metadatos: Cache local de 24h para respuestas instantaneas
  • Paginacion paralela: Descarga 5x mas rapida con fetch_all=True
  • Descarga integrada: get(id, include_data=true) en una sola llamada
  • Busqueda AEMET por nombre: Usa nombres de municipio directamente (ej: "Madrid")
  • Retry automatico: Reintentos con backoff exponencial para mayor resiliencia
  • Sinonimos INE: Expansion de consultas para mejores resultados
  • Cliente HTTP asincrono con rate limiting por API
  • Modelos Pydantic para tipado seguro
  • Listo para desplegar en FastMCP Cloud

Instalacion

Requisitos

  • Python 3.10 o superior
  • pip

Instalacion rapida

# Clonar el repositorio
git clone https://github.com/AlbertoUAH/datos-gob-es-mcp.git
cd datos-gob-es-mcp

# Crear entorno virtual e instalar
make dev

Instalacion manual

# Crear entorno virtual
python3 -m venv .venv
source .venv/bin/activate

# Instalar dependencias
pip install -r requirements.txt

Configuracion

Variables de entorno

Crea un archivo .env basandote en .env.example:

cp .env.example .env
VariableRequeridaDescripcion
AEMET_API_KEYPara meteorologiaAPI key de AEMET OpenData (obtener gratis)
PRELOAD_EMBEDDINGS_MODELNoPre-cargar modelo de embeddings en startup (default: true)
LOG_LEVELNoNivel de logging: DEBUG, INFO, WARNING, ERROR (default: INFO)
LOG_FORMATNoFormato de logs: console o json (default: console)
RATE_LIMIT_DATOS_GOB_ESNoPeticiones/segundo a datos.gob.es (default: 10)
RATE_LIMIT_INENoPeticiones/segundo a INE (default: 5)
RATE_LIMIT_AEMETNoPeticiones/segundo a AEMET (default: 10)
RATE_LIMIT_BOENoPeticiones/segundo a BOE (default: 10)

Uso

Ejecutar el servidor MCP

# Modo stdio (para clientes MCP)
make run-stdio

# O directamente
mcp run server.py

Inspeccionar herramientas disponibles

make inspect

Arquitectura

flowchart TB
    subgraph Cliente["Cliente MCP"]
        ChatGPT["ChatGPT"]
    end

    subgraph MCP["Servidor MCP (FastMCP)"]
        Server["server.py"]
    end

    ChatGPT |"Protocolo MCP"| Server

    subgraph Tools["TOOLS (11)"]
        subgraph ToolsDatosGob["datos.gob.es (2)"]
            search
            get
        end

        subgraph ToolsINE["INE (2)"]
            ine_search
            ine_download
        end

        subgraph ToolsAEMET["AEMET (3)"]
            aemet_list_locations
            aemet_get_observations
            aemet_get_forecast
        end

        subgraph ToolsBOE["BOE (3)"]
            boe_get_summary
            boe_get_document
            boe_search
        end
    end

    subgraph Resources["RESOURCES (5)"]
        R1["dataset://{id}"]
        R2["theme://{id}"]
        R3["publisher://{id}"]
        R4["format://{id}"]
        R5["keyword://{keyword}"]
    end

    subgraph Prompts["PROMPTS (6)"]
        P1["buscar_datos_por_tema"]
        P2["datasets_recientes"]
        P3["explorar_catalogo"]
        P4["analisis_dataset"]
        P5["guia_herramientas"]
        P6["buscar_estadisticas"]
    end

    Server --> Tools
    Server --> Resources
    Server --> Prompts

    subgraph APIs["APIs Externas"]
        API1["datos.gob.es"]
        API2["INE"]
        API3["AEMET"]
        API4["BOE"]
    end

    ToolsDatosGob --> API1
    Resources --> API1
    ToolsINE --> API2
    ToolsAEMET --> API3
    ToolsBOE --> API4

Capacidades MCP

CapacidadCantidadDescripcion
Tools11Funciones que el LLM puede invocar
Resources5Templates dinamicos para acceso directo
Prompts6Guias de busqueda predefinidas

Tools (Herramientas)

datos.gob.es (2 herramientas)

HerramientaDescripcion
searchBusqueda unificada de datasets: por filtros (titulo, tema, publicador, formato, fecha), semantica (IA con embeddings) o hibrida. Soporta multi-tema con logica OR y paginacion paralela
getObtiene metadatos de un dataset y opcionalmente descarga sus datos. Con include_data=true descarga y parsea CSV/JSON (hasta 50MB)

INE - Instituto Nacional de Estadistica (2 herramientas) - FUENTE PRINCIPAL DE ESTADISTICAS

El INE es la fuente oficial principal de estadisticas en Espana. Contiene datos de empleo (EPA), poblacion, precios (IPC), PIB, turismo, censos, y mas.

HerramientaDescripcion
ine_searchBusca operaciones estadisticas o lista tablas. Usa query para buscar operaciones, operation_id para listar tablas
ine_downloadObtiene datos estadisticos reales de una tabla del INE

AEMET - Meteorologia (3 herramientas)

HerramientaDescripcion
aemet_list_locationsLista municipios y/o estaciones meteorologicas. Usa location_type para filtrar
aemet_get_observationsObtiene observaciones meteorologicas actuales de una estacion
aemet_get_forecastObtiene la prediccion meteorologica para un municipio (acepta nombre o codigo)

BOE - Boletin Oficial del Estado (3 herramientas)

HerramientaDescripcion
boe_get_summaryObtiene el sumario del BOE. Si no se especifica fecha, devuelve el BOE mas reciente
boe_get_documentObtiene metadatos completos de un documento del BOE por su ID
boe_searchBusca documentos en el BOE por texto en un rango de fechas

Referencia de IDs

Los IDs de temas, publicadores y provincias estan incluidos en las instrucciones del servidor MCP.

Temas (usar con theme=)

economia, hacienda, educacion, salud, medio-ambiente, transporte, turismo, empleo, sector-publico, ciencia-tecnologia, cultura-ocio, urbanismo-infraestructuras, energia

Publicadores principales (usar con publisher=)

IDOrganizacion
EA0010587INE (Instituto Nacional de Estadistica)
E05024401Ministerio de Hacienda
E05024301Ministerio de Economia
E00003901AEMET
L01280796Ayuntamiento de Madrid
L01080193Ajuntament de Barcelona

Resources (Recursos)

Templates dinamicos para acceso directo a datos de datos.gob.es:

URI TemplateDescripcionEjemplo
dataset://{dataset_id}Informacion de un datasetdataset://l01280066-presupuestos
theme://{theme_id}Datasets de una tematicatheme://economia
publisher://{publisher_id}Datasets de un publicadorpublisher://E00003901
format://{format_id}Datasets en un formatoformat://csv
keyword://{keyword}Datasets con una palabra clavekeyword://presupuestos

Prompts (Guias de Busqueda)

Los prompts proporcionan guias estructuradas para tareas comunes de busqueda:

PromptDescripcion
buscar_datos_por_temaBusqueda guiada de datasets por tematica y formato
datasets_recientesEncontrar datasets actualizados en los ultimos dias
explorar_catalogoExploracion guiada del catalogo de datos abiertos
analisis_datasetAnalisis detallado de un dataset especifico
guia_herramientasDocumentacion de todas las herramientas MCP
buscar_estadisticasBusqueda de estadisticas oficiales consultando INE y datos.gob.es

Ejemplos de Uso

Buscar datasets por texto

Usuario: Busca datasets sobre empleo en Andalucia
Asistente: [Usa search(title="empleo Andalucia")]

Buscar por significado (semantica)

Usuario: Encuentra datos sobre desempleo juvenil
Asistente: [Usa search(query="desempleo juvenil")]

Buscar por multiples temas

Usuario: Busca datasets de economia o hacienda
Asistente: [Usa search(themes=["economia", "hacienda"])]

Obtener y descargar datos en una sola llamada

Usuario: Descarga los datos del dataset de presupuestos
Asistente: [Usa get(dataset_id="l01280066-presupuestos", include_data=true)]

Buscar estadisticas del INE

Usuario: Busca estadisticas sobre empleo
Asistente: [Usa ine_search(query="empleo")]
           -> Obtiene operacion EPA (id: 30308)
           [Usa ine_search(operation_id="30308")]
           -> Lista tablas disponibles
           [Usa ine_download(table_id="4247", n_last=12)]
           -> Obtiene datos reales

Obtener el BOE mas reciente

Usuario: Dame el BOE de hoy
Asistente: [Usa boe_get_summary()]

Usuario: Dame el BOE del 2 de enero de 2025
Asistente: [Usa boe_get_summary(date="20250102")]

Obtener prediccion meteorologica

Usuario: Que tiempo hara manana en Madrid?
Asistente: [Usa aemet_get_forecast(location="Madrid")]

Usuario: Que tiempo hara en Sevilla?
Asistente: [Usa aemet_get_forecast(location="Sevilla")]

Nota: aemet_get_forecast acepta tanto nombres de municipio como codigos (ej: "28079" para Madrid).

Configuracion en Clientes MCP

Claude Desktop

Anade a tu archivo de configuracion claude_desktop_config.json:

{
  "mcpServers": {
    "datos-gob-es": {
      "command": "mcp",
      "args": ["run", "/ruta/a/datos-gob-es-mcp/server.py"]
    }
  }
}

Desarrollo

Comandos disponibles

make help          # Mostrar ayuda
make dev           # Instalar en modo desarrollo
make run           # Ejecutar servidor
make run-stdio     # Ejecutar en modo stdio
make inspect       # Inspeccionar herramientas MCP
make test          # Ejecutar tests
make lint          # Verificar codigo con ruff
make format        # Formatear codigo con ruff
make clean         # Limpiar archivos de cache
make notebooks     # Iniciar servidor Jupyter

# Benchmark de latencia
python scripts/latency_benchmark.py

Estructura del proyecto

datos-gob-es-mcp/
├── server.py                 # Servidor MCP principal
├── core/                     # Modulo central
│   ├── logging.py           # Logging estructurado (structlog)
│   ├── ratelimit.py         # Rate limiting (aiolimiter)
│   ├── config.py            # Configuracion centralizada
│   └── http.py              # Cliente HTTP centralizado
├── integrations/             # APIs externas
│   ├── ine.py               # Instituto Nacional de Estadistica
│   ├── aemet.py             # Agencia de Meteorologia
│   └── boe.py               # Boletin Oficial del Estado
├── prompts/                  # Guias de busqueda MCP
├── scripts/                  # Scripts de utilidad
│   └── latency_benchmark.py # Benchmark de latencia
├── examples/                 # Jupyter notebooks de ejemplo
├── tests/                    # Tests automatizados
├── docs/                     # Documentacion adicional
│   └── latency_report.md    # Informe de latencia
├── requirements.txt         # Dependencias Python
├── Makefile                 # Comandos de desarrollo
└── README.md

Rendimiento

Latencia por herramienta

ToolLatencia PromedioClasificacion
boe_get_summary54 ms🟢 Rapido
get (metadata)80 ms🟢 Rapido
search (titulo)127 ms🟢 Rapido
boe_search142 ms🟢 Rapido
search (tema)174 ms🟢 Rapido
ine_download197 ms🟢 Rapido
search (keyword)805 ms🟡 Moderado
ine_search1,368 ms🟡 Moderado
search (semantica)125 ms*🟢 Rapido

\* Con PRELOAD_EMBEDDINGS_MODEL=true (habilitado por defecto). Ver informe completo.

Optimizaciones implementadas

MejoraDescripcionImpacto
Pre-carga de embeddingsModelo ML se carga en startupBusqueda semantica: 35s → 125ms
Cache de metadatosPublishers, themes, provincias y regiones se cachean 24hRespuestas instantaneas en llamadas repetidas
Cache de municipios AEMETLista de municipios cacheada 24hEvita rate limits en busquedas por nombre
Paginacion paralelafetch_all=True descarga 5 paginas en paralelo~5x mas rapido
Descarga integradaget(id, include_data=true) combina metadatos + datosUna sola llamada
HTTP/2Conexiones multiplexadasMenor latencia en llamadas concurrentes
Retry con backoffReintentos automaticos (max 3) con backoff exponencialMayor resiliencia ante errores transitorios
Sinonimos INEExpansion automatica de consultas con sinonimosMejores resultados de busqueda

Licencia

MIT License - ver LICENSE para mas detalles.

Contribuciones

Las contribuciones son bienvenidas. Por favor, abre un issue o pull request en el repositorio.

Enlaces

目录标签

目录标签

开放数据PythonClaude数据整合本地部署API网关语义搜索数据缓存

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

api-key

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdioapi-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP