Vibe Coding #2 - Herramientas MCP para datos energéticos europeos | API ENTSO-E con Python

Construimos herramientas MCP que permiten a agentes de IA consultar la Plataforma de Transparencia ENTSO-E. Interfaz en lenguaje natural para flujos transfronterizos, precios day-ahead y datos de generación de más de 35 países europeos — desplegado en Claude.ai con un dashboard interactivo.

4 de febrero de 2026 16:00 CET 1:32:00 EN
pythonmcpai-agentsenergyapiseurope

Recibe actualizaciones semanales

Sesiones de live coding, librerías Python para datos energéticos y tutoriales prácticos. Un email por semana, sin relleno.

Resultado

Pregunta “¿Dónde está la electricidad más barata de Europa hoy?” y obtén una comparación estructurada de 12 países — con un dashboard interactivo renderizado dentro de Claude.ai.

Dashboard de comparación de precios multi-país con Francia, España, Italia y Suiza

El problema

  • La Plataforma de Transparencia ENTSO-E tiene datos increíbles sobre los mercados eléctricos europeos, pero acceder a ellos requiere entender APIs complejas basadas en XML
  • Navegar entre códigos de país, zonas de oferta y tipos de documento es tedioso
  • Cada nueva pregunta implica escribir scripts Python específicos para parsear y transformar los datos

La solución

Partimos de la Plataforma de Transparencia ENTSO-E — la fuente oficial de datos del mercado eléctrico europeo con más de 35 países, flujos transfronterizos, precios day-ahead y desglose de generación.

Plataforma de Transparencia ENTSO-E mostrando datos del mercado eléctrico europeo

El objetivo: construir un servidor MCP (Model Context Protocol) para que un agente IA pueda consultar todos estos datos mediante lenguaje natural.

Arquitectura del servidor MCP conectando agentes IA con la API de ENTSO-E

Construyendo el servidor MCP

Claude Code montó el proyecto a partir de las diapositivas de la presentación — leyendo la agenda, generando un plan y construyendo la estructura de código. La decisión arquitectónica clave fue usar FastMCP con FastMCP.from_fastapi() para auto-generar las herramientas MCP desde una API REST de FastAPI, evitando duplicación de código entre las capas API y MCP.

Código del servidor MCP con herramientas para consultar datos de ENTSO-E

La librería entsoe-py transforma la API XML cruda en DataFrames pandas limpios. Sobre eso, una clase ENTSOEService gestiona el caché (memoria + ficheros Parquet) para que las consultas repetidas no impacten la API:

# Consulta una vez a la API, cachea como Parquet para futuras consultas
prices = service.get_day_ahead_prices("DE", start_date, end_date)

Primeros resultados

Tras refactorizar las respuestas de texto plano a JSON estructurado, el agente pudo comparar precios de electricidad de múltiples países en una sola consulta:

Primera consulta exitosa: comparando precios de electricidad entre países europeos

Respuesta JSON estructurada con códigos de país, fechas y resúmenes de precios

Desplegando para no-programadores

Para que compañeros que no programan puedan usar la herramienta, desplegamos mediante un Cloudflare Quick Tunnel y lo conectamos a Claude.ai como conector MCP — sin necesidad de instalar Python en su equipo:

Usando la herramienta ENTSO-E directamente desde Claude.ai mediante túnel Cloudflare

Dashboard interactivo con MCP apps

El paso final fue construir una MCP app — un dashboard en TypeScript + Chart.js renderizado dentro de Claude.ai. Seleccionamos países desde un desplegable, y el dashboard consulta y visualiza precios en tiempo real:

Dashboard interactivo de energía para España renderizado dentro de Claude.ai

Comparación multi-país con Francia, España, Italia y Suiza — todo sin salir de la interfaz del chat.

Referencia

Herramientas MCP

HerramientaParámetrosDescripción
get_pricescountry, start_date, end_datePrecios day-ahead de electricidad (EUR/MWh)
get_flowsfrom_country, to_country, datesFlujos transfronterizos entre países (MW)
get_generationcountry, dateMix de generación por tipo de fuente (MW)
aggregate_pricescountry, dates, operationAgregaciones: mean, min, max, median
compare_pricescountries, dates, operationComparación lado a lado entre países
list_countries—12 países europeos soportados

Países soportados

DE, FR, ES, PT, NL, IT, PL, DK, GB, BE, AT, CH

Estructura del proyecto

src
mcp_server.py# Servidor MCP (auto-generado desde FastAPI)
api.py# Endpoints REST API (FastAPI)
client.py# Wrapper API ENTSO-E (entsoe-py)
entsoe_service.py# Lógica de negocio + caché (Parquet)
app.py# Punto de entrada servidor HTTP
mcp-app
src/mcp-app.ts# Dashboard (Chart.js + MCP App SDK)
src/mcp-app.html# UI del dashboard
data/cache# Ficheros caché Parquet

Stack

  • Python 3.13 / FastMCP / FastAPI / entsoe-py / pandas / pyarrow
  • TypeScript / Chart.js / MCP App SDK
  • Cloudflare Quick Tunnel (despliegue)

Recursos

Índice
Buscar sección

Usamos cookies para mejorar tu experiencia y analizar el uso del sitio. Puedes gestionar tus preferencias en cualquier momento.