Skip to main content
Glama
ESJavadex

REE MCP Server

by ESJavadex

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
REE_API_TOKENNoYour REE API token for accessing the Spanish electrical grid data

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_indicator_dataA

Get time-series data for a specific electricity indicator.

Retrieves historical data for any REE indicator (demand, generation, prices, etc.) for a specified date range. Returns the data with statistical summary.

Args: indicator_id: The indicator ID (e.g., 1293 for real demand, 549 for nuclear) start_date: Start datetime in ISO format (YYYY-MM-DDTHH:MM) end_date: End datetime in ISO format (YYYY-MM-DDTHH:MM) time_granularity: Time aggregation level (raw, hour, day, fifteen_minutes)

Returns: JSON string with indicator metadata, time-series values, and statistics.

Examples: Get hourly real demand for Oct 8, 2025: >>> await get_indicator_data(1293, "2025-10-08T00:00", "2025-10-08T23:59", "hour")

Get 5-minute wind generation data:
>>> await get_indicator_data(2038, "2025-10-08T00:00", "2025-10-08T03:00", "raw")
list_indicatorsA

List all available electricity indicators from REE.

Returns metadata for all 1,967+ available indicators including their IDs, names, units, frequencies, and geographic scopes.

Args: limit: Maximum number of indicators to return (default: all) offset: Number of indicators to skip for pagination (default: 0)

Returns: JSON string with list of indicator metadata.

Examples: Get first 50 indicators: >>> await list_indicators(limit=50, offset=0)

Get all indicators:
>>> await list_indicators()
search_indicatorsA

Search for indicators by keyword in their names.

Searches through all available indicators and returns those matching the keyword in their name or short name.

Args: keyword: Keyword to search for (e.g., "demanda", "precio", "solar") limit: Maximum number of results (default: 20)

Returns: JSON string with matching indicator metadata.

Examples: Find all demand-related indicators: >>> await search_indicators("demanda", limit=10)

Find price indicators:
>>> await search_indicators("precio")

Find solar generation indicators:
>>> await search_indicators("solar")
get_demand_summaryA

Get a summary of electricity demand for a specific date.

Convenience tool that fetches key demand indicators (real demand, forecast, max/min) for a given date.

Args: date: Date in YYYY-MM-DD format (default: 2025-10-08)

Returns: JSON string with demand summary.

Examples: Get today's demand summary: >>> await get_demand_summary("2025-10-11")

get_generation_mixA

Get the electricity generation mix at a specific time.

Returns the power generation breakdown by source (nuclear, wind, solar, etc.) for a specific hour.

Args: date: Date in YYYY-MM-DD format hour: Hour in HH format (00-23, default: 12)

Returns: JSON string with generation mix by source.

Examples: Get generation mix at noon on Oct 8: >>> await get_generation_mix("2025-10-08", "12")

Get overnight generation mix:
>>> await get_generation_mix("2025-10-08", "02")
get_international_exchangesA

Get international electricity exchanges at a specific time.

Returns import/export data by country (Andorra, Morocco, Portugal, France) with net balance calculations.

Args: date: Date in YYYY-MM-DD format hour: Hour in HH format (00-23, default: 12)

Returns: JSON string with imports, exports, and net balance by country.

Examples: Get exchanges at noon on Oct 8: >>> await get_international_exchanges("2025-10-08", "12")

Get overnight exchanges:
>>> await get_international_exchanges("2025-10-08", "02")
get_renewable_summaryA

Get renewable energy generation summary at a specific time.

Aggregates wind, solar PV, solar thermal, and hydro generation with renewable percentage calculations.

Args: date: Date in YYYY-MM-DD format hour: Hour in HH format (00-23, default: 12)

Returns: JSON string with renewable generation breakdown and percentages.

Examples: Get renewable summary at noon: >>> await get_renewable_summary("2025-10-08", "12")

Get overnight renewable summary:
>>> await get_renewable_summary("2025-10-08", "02")
get_carbon_intensityA

Get carbon intensity over time (gCO2/kWh).

Calculates CO2 emissions per unit of electricity generated. Lower values indicate cleaner energy mix.

Args: start_date: Start datetime in ISO format (YYYY-MM-DDTHH:MM) end_date: End datetime in ISO format (YYYY-MM-DDTHH:MM) time_granularity: Time aggregation (raw, hour, day, fifteen_minutes)

Returns: JSON string with carbon intensity time series and statistics.

Examples: Get hourly carbon intensity for a day: >>> await get_carbon_intensity("2025-10-08T00:00", "2025-10-08T23:59", "hour")

Get daily carbon intensity for a week:
>>> await get_carbon_intensity("2025-10-01T00:00", "2025-10-07T23:59", "day")
compare_forecast_actualA

Compare forecasted vs actual electricity demand.

Calculates forecast accuracy metrics (error, MAE, RMSE) for demand predictions.

Args: date: Date in YYYY-MM-DD format

Returns: JSON string with forecast comparison and accuracy metrics.

Examples: Compare forecast accuracy for Oct 8: >>> await compare_forecast_actual("2025-10-08")

get_grid_stabilityA

Get grid stability metrics at a specific time.

Analyzes synchronous generation (provides inertia) vs variable renewables (no inertia) to assess grid stability risk.

Args: date: Date in YYYY-MM-DD format hour: Hour in HH format (00-23, default: 12)

Returns: JSON string with grid stability analysis.

Examples: Get grid stability at noon: >>> await get_grid_stability("2025-10-08", "12")

Check overnight stability:
>>> await get_grid_stability("2025-10-08", "02")
get_generation_mix_timelineA

Get generation mix over time for a full day or period.

Returns generation breakdown by source across multiple time points, useful for visualizing energy transition patterns.

Args: date: Date in YYYY-MM-DD format time_granularity: Time aggregation (hour or day, default: hour)

Returns: JSON string with generation mix timeline.

Examples: Get hourly generation mix for a day: >>> await get_generation_mix_timeline("2025-10-08", "hour")

Get daily generation mix for a month:
>>> await get_generation_mix_timeline("2025-10-01", "day")
get_spain_hourly_pricesA

Get Spanish hourly electricity prices (SPOT market) for a specific day.

Returns the 24 hourly prices for the Spanish Peninsular market (OMIE/MIBEL). This is the simplified version focused only on Spain, perfect for checking daily electricity costs.

Args: date: Date in YYYY-MM-DD format

Returns: JSON string with hourly prices, min/max/average, and the cheapest/most expensive hours.

Examples: Get today's hourly prices: >>> await get_spain_hourly_prices("2025-10-19")

get_price_analysisA

Get electricity price analysis over time.

Analyzes SPOT market prices with statistics and multi-country comparison. Note: SPOT price indicator returns data for multiple European countries. Use geo_filter to focus on a specific market.

Args: start_date: Start datetime in ISO format (YYYY-MM-DDTHH:MM) end_date: End datetime in ISO format (YYYY-MM-DDTHH:MM) geo_filter: Optional geographic filter (e.g., "Península", "Portugal", "France") If not specified, returns all countries

Returns: JSON string with price data and analysis.

Examples: Get Spanish hourly prices for a day: >>> await get_price_analysis("2025-10-08T00:00", "2025-10-08T23:59", "Península")

Get all countries' prices for comparison:
>>> await get_price_analysis("2025-10-08T00:00", "2025-10-08T23:59")
get_storage_operationsA

Get pumped storage operations for a day.

Shows pumping consumption (storing energy) and turbining (releasing energy) to identify arbitrage opportunities and storage efficiency.

Args: date: Date in YYYY-MM-DD format

Returns: JSON string with storage operations and efficiency metrics.

Examples: Get storage operations for Oct 8: >>> await get_storage_operations("2025-10-08")

get_peak_analysisB

Get peak demand analysis over a period.

Analyzes daily maximum and minimum demand to identify patterns and calculate load factors.

Args: start_date: Start date in YYYY-MM-DD format end_date: End date in YYYY-MM-DD format

Returns: JSON string with peak demand analysis.

Examples: Get peak analysis for a week: >>> await get_peak_analysis("2025-10-01", "2025-10-07")

Get peak analysis for a month:
>>> await get_peak_analysis("2025-10-01", "2025-10-31")
get_pvpc_rateA

Get the PVPC regulated electricity rate at a specific time.

Returns the PVPC (Precio Voluntario para el Pequeño Consumidor) rate, which is the regulated retail electricity price for consumers in Spain.

Args: date: Date in YYYY-MM-DD format hour: Hour in HH format (00-23, default: 12)

Returns: JSON string with PVPC rate data.

Examples: Get PVPC rate at noon on Oct 8: >>> await get_pvpc_rate("2025-10-08", "12")

Get PVPC rate at midnight:
>>> await get_pvpc_rate("2025-10-08", "00")
get_daily_demand_statisticsA

Get daily demand statistics for a period.

Provides comprehensive daily demand analysis including maximum, minimum, and sum of generation values for each day in the specified period.

Args: start_date: Start date in YYYY-MM-DD format end_date: End date in YYYY-MM-DD format

Returns: JSON string with daily statistics and overall summary.

Examples: Get statistics for a week: >>> await get_daily_demand_statistics("2025-10-01", "2025-10-07")

Get statistics for a month:
>>> await get_daily_demand_statistics("2025-10-01", "2025-10-31")
analyze_demand_volatilityA

Analyze demand volatility patterns over a period.

Calculates daily demand swings, load factors, and volatility levels to identify high-variability days and overall stability patterns.

Args: start_date: Start date in YYYY-MM-DD format end_date: End date in YYYY-MM-DD format

Returns: JSON string with volatility analysis and stability assessment.

Examples: Analyze volatility for a week: >>> await analyze_demand_volatility("2025-10-01", "2025-10-07")

Analyze volatility for a month:
>>> await analyze_demand_volatility("2025-10-01", "2025-10-31")

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
list_all_indicatorsResource providing the complete list of all REE indicators. Returns: JSON string with all indicator metadata.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ESJavadex/ree-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server