电力现货价格MCP服务器

提供芬兰电力现货价格的实时和前瞻性数据,使AI代理和基于LLM的自动化无需直接调用外部API即可获取结构化电价数据。

  • by JussiSavola
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 JussiSavola/spot-mcp-server

使用说明

spot mcp服务器

芬兰电力现货价格MCP服务器,由 api.现货价格.fi.

将实时和前瞻性的现货价格数据作为MCP工具公开,使人工智能代理和基于LLM的自动化可以获得电价,而不需要他们直接调用外部API。

背景

芬兰的电价每15分钟变化一次(每天96个时段)。了解当前的价格排名和即将到来的价格窗口对于智能家居自动化至关重要——在廉价时段进行预热,在昂贵时段推迟负载,让人工智能代理在舒适性和成本之间进行权衡。

该服务器填补了空白:一个轻量级的MCP端点,任何兼容MCP的AI客户端(Claude等)都可以查询该端点以获得结构化、合理的价格数据。

工具

工具 说明
get_current_price 当前季度小时:排名、含税/不含税价格。从缓存中提供。
get_today_prices 今天的所有四分之一小时时段。
get_tomorrow_prices 如果公布,明天的所有季度时段(芬兰时间约14:15)。
get_prices_for_hours(hour_from, hour_to) 带有最小/最大/平均摘要和最便宜/最昂贵插槽的过滤时间窗口。
get_cheapest_remaining_slots(n) 按价格排序,今天剩余的前N个最便宜的插槽。
get_today_summary 当前价格背景:排名、评估(非常便宜→ 非常昂贵),在今天的范围内的位置,明天的可用性。

价格单位为欧元/千瓦时。 排名 是当今价格的1-96个百分点(1=最便宜的一刻钟,96=最贵)。由于夏令时转换,每天每小时可能有23、24或25个时段。

缓存策略

一个 /TodayAndDayForward fetch填充所有数据。价格一旦公布,就保持不变;缓存仅在出现新数据时过期:

  • 明天的数据→ 后天午夜到期
  • 只有今天的数据,14:15之前→ 今晚午夜到期
  • 只有今天的数据,14:15之后→ 15分钟后过期(延迟投票将于明天公布)

当前价格是通过匹配当前季度小时时段从缓存中得出的,没有单独的 /JustNow 呼叫已发出。

需求

  • Python 3.10+
  • fastmcp
  • httpx
  • tzdata

安装

git clone https://github.com/JussiSavola/spot-mcp-server.git
cd spot-mcp-server
pip install -r requirements.txt

跑步

python spot_hinta_mcp.py

默认端口: 8765.用环境变量覆盖:

SPOT_HINTA_PORT=9000 python spot_hinta_mcp.py

MCP端点(可流式HTTP传输):

http://localhost:8765/mcp

或通过 run.sh:

bash run.sh

连接到克劳德

添加到您的Claude MCP配置中:

{
  "mcpServers": {
    "spot-hinta": {
      "type": "url",
      "url": "http://localhost:8765/mcp"
    }
  }
}

测试

pip install pytest
pytest test_spot_hinta.py -v

测试涵盖了缓存TTL逻辑、季度小时时隙匹配、DST转换处理和数据解析。网络通话被嘲笑。

数据源

api.现货价格.fi -免费芬兰电力现货价格API。 使用的端点: /TodayAndDayForward.

许可证

麻省理工学院