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.
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.

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.

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

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.

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:


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:

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:

Comparación multi-país con Francia, España, Italia y Suiza — todo sin salir de la interfaz del chat.
Referencia
Herramientas MCP
| Herramienta | Parámetros | Descripción |
|---|---|---|
| get_prices | country, start_date, end_date | Precios day-ahead de electricidad (EUR/MWh) |
| get_flows | from_country, to_country, dates | Flujos transfronterizos entre países (MW) |
| get_generation | country, date | Mix de generación por tipo de fuente (MW) |
| aggregate_prices | country, dates, operation | Agregaciones: mean, min, max, median |
| compare_prices | countries, dates, operation | Comparació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
Stack
- Python 3.13 / FastMCP / FastAPI / entsoe-py / pandas / pyarrow
- TypeScript / Chart.js / MCP App SDK
- Cloudflare Quick Tunnel (despliegue)
Recursos
- ENTSO-E Transparency Platform - Fuente oficial de datos energéticos europeos
- entsoe-py - Cliente Python para la API de ENTSO-E
- FastMCP - Librería para construir servidores MCP
- MCP Documentation - Especificación del Model Context Protocol
- MCP Apps - Apps interactivas dentro de clientes IA