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+
fastmcphttpxtzdata
安装
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.pyMCP端点(可流式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.
许可证
麻省理工学院
