get_pvpc_rate
Retrieve Spain's regulated retail electricity price (PVPC) for a specific date and hour. Use this tool to access current electricity rates for consumers in Spain.
Instructions
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")
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | ||
| hour | No | 12 |
Implementation Reference
- Handler function decorated with @mcp.tool() that implements the get_pvpc_rate tool. It fetches PVPC electricity rate data from REE API using a use case, processes the response, and returns formatted JSON.@mcp.tool() async def get_pvpc_rate(date: str, hour: str = "12") -> str: """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") """ try: start_datetime, end_datetime = DateTimeHelper.build_datetime_range(date, hour) async with ToolExecutor() as executor: use_case = executor.create_get_indicator_data_use_case() request = GetIndicatorDataRequest( indicator_id=IndicatorIDs.PVPC_RATE.id, start_date=start_datetime, end_date=end_datetime, time_granularity="hour", ) response = await use_case.execute(request) pvpc_data = response.model_dump() # Extract value values = pvpc_data.get("values", []) if values: result = { "datetime": start_datetime, "pvpc_rate": { "value_eur_mwh": values[0]["value"], "unit": pvpc_data["indicator"]["unit"], "description": "PVPC regulated retail electricity rate for consumers", }, "note": ( "PVPC (Precio Voluntario para el Pequeño Consumidor) is the " "regulated electricity price in Spain" ), } else: result = { "datetime": start_datetime, "error": "No PVPC rate data available for this period", "note": "PVPC data may not be available for all time periods", } return ResponseFormatter.success(result) except DomainException as e: return ResponseFormatter.domain_exception(e) except Exception as e: return ResponseFormatter.unexpected_error(e, context="Error getting PVPC rate")
- src/ree_mcp/interface/mcp_server.py:975-975 (registration)The @mcp.tool() decorator registers the get_pvpc_rate function as an MCP tool.@mcp.tool()
- Input schema defined by function parameters and docstring; output is str (JSON).async def get_pvpc_rate(date: str, hour: str = "12") -> str: """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.