内容
# ⚡ 电价预测 MCP — 面向 AI 代理的德国实时电价预测
[](https://www.python.org/downloads/)
[](LICENSE)
[](https://smithery.ai/servers/DasClown/strompreis-mcp)
**为智能家居代理提供德国实时电价预测的 MCP 服务器。**
告诉你的智能家居代理何时运行洗衣机、给汽车充电或安排耗电任务。
为 [模型上下文协议](https://modelcontextprotocol.io) 构建 — 与 Claude Desktop、Cline 和任何 MCP 兼容的客户端配合使用。
---
## 架构
```
┌────────────────────────────┐
│ SMARD(联邦网络代理) │
│ 实时电价 15 分钟 │
└──────────┬─────────────────┘
│ API
┌──────────▼─────────────────┐
│ 电价收集器 │
│ (Cron:每 15 分钟) │
└──────────┬─────────────────┘
│ 写入
┌──────────▼─────────────────┐
│ SQLite 数据库 │
│ ~/.strompreis/strompreis.db │
│ ├── 价格数据(历史) │
│ ├── API 密钥(身份验证) │
│ └── 使用日志(速率限制) │
└──────────┬─────────────────┘
│ 读取
┌────────────────┼────────────────┐
│ │ │
┌─────────▼──────┐ ┌─────▼──────┐ ┌──────▼─────────┐
│ MCP 服务器 │ │ B2C 网站 │ │ CLI 工具 │
│ (stdio/SSE) │ │ (FastAPI) │ │ 状态/清理 │
│ 价格预测 │ │ 节省 │ │ │
│ 最佳时间 │ │ 检查器 │ │ │
│ 数据库状态 │ │ 联盟 │ │ │
└─────────────────┘ └────────────┘ └─────────────────┘
```
## 快速开始
### 1. 安装
```bash
pip install strompreis-mcp
```
或从源码安装:
```bash
git clone https://github.com/DasClown/strompreis-mcp.git
cd strompreis-mcp
pip install -e .
```
### 2. 初始化数据库 + 首次数据收集
```bash
# 自动设置
bash scripts/setup.sh
# 或手动:
strompreis-collector collect
strompreis-collector status
```
### 3. 添加到 Claude Desktop
编辑 `~/.config/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"strompreis": {
"command": "strompreis-mcp"
}
}
}
```
或使用 Cline / 任意 MCP 客户端:
```json
{
"mcpServers": {
"strompreis": {
"command": "strompreis-mcp",
"args": []
}
}
}
```
## 工具
| 工具 | 参数 | 返回值 |
|:-----|:-----------|:--------|
| `price_forecast` | `hours` (1-72, 默认 24) | JSON 数组:`[{timestamp, price_ct, confidence, is_peak}]` |
| `best_hours` | `count` (默认 3) | 人类可读的最便宜时间推荐 |
| `db_status` | _无_ | 数据库健康状况:行数、最新时间戳、使用统计 |
### 示例提示
> *"今天什么时候是洗衣服最便宜的时间?"*
> → 代理调用 `best_hours(count=3)` → "今晚 00:00-02:00,约 28 分/千瓦时"
> *"明天电价预测是多少?"*
> → 代理调用 `price_forecast(hours=48)` → 每小时电价,分/千瓦时
> *"我现在应该给电动汽车充电还是等待?"*
> → 代理调用 `price_forecast(hours=24)`,找到最便宜的时间窗口
## 数据库持久性
数据库位于 `~/.strompreis/strompreis.db`。它持久化:
| 表 | 用途 | 保留期 |
|:------|:--------|:----------|
| `price_data` | 历史 SMARD 电价 + 发电数据 | 无限(用于机器学习训练) |
| `api_keys` | 货币化:分级 API 访问 | 手动过期 |
| `usage_log` | 速率限制 + 分析 | 累积 |
### Cron 设置(推荐)
```bash
# 每 15 分钟获取数据
*/15 * * * * cd /path/to/strompreis-mcp && strompreis-collector collect
# 每周数据库维护(星期日 03:00)
0 3 * * 0 cd /path/to/strompreis-mcp && strompreis-collector vacuum
```
或使用提供的 crontab:
```bash
crontab deploy/crontab
```
### CLI 命令
```bash
# 获取并存储最新的 SMARD 数据
strompreis-collector collect
# 显示数据库健康状况
strompreis-collector status
# → 📊 电价数据库状态
# 总行数: 1,248
# 最新数据: 2026-06-30T21:00:00+00:00
# 数据库文件大小: 180 KB
# 每周维护
strompreis-collector vacuum
```
## 部署
### systemd(生产环境)
```bash
# 编辑 deploy/strompreis-mcp.service 路径以适应您的系统,然后:
sudo cp deploy/strompreis-mcp.service /etc/systemd/system/
sudo systemctl enable --now strompreis-mcp
# 监控
journalctl -u strompreis-mcp -f
```
### B2C 网站(侧流)
```bash
# 安装依赖
pip install strompreis-mcp[b2c]
# 运行
python3 -m uvicorn b2c.server:app --host 0.0.0.0 --port 8080
```
然后打开 `http://localhost:8080` — 用户输入他们的年度千瓦时消耗量并获得:
- ✅ 节省计算(固定 vs 动态关税)
- ✅ Tibber/Awattar 联盟比较
- ✅ 24 小时价格预测片段
### Smithery
[](https://smithery.ai/servers/DasClown/strompreis-mcp)
通过 Smithery 为 Claude Desktop 一键安装。
## API 密钥模式(生产环境)
默认情况下,服务器运行在 **无密钥模式** (100 次请求/天,全局限制)。
对于生产环境,请设置 API 密钥:
```bash
# 生成密钥
python3 -c "
from strompreis_mcp.database import create_api_key
print(create_api_key('my-app', tier='pro', daily_limit=10000))
"
# 设置密钥
export STROMPREIS_API_KEY=sp_your_key_here
strompreis-mcp
```
在密钥模式下:
- 所有请求都针对 `api_keys` 表进行验证
- 每个密钥的每日速率限制
- 使用情况记录到 `usage_log` 表中
## 数据源
| 源 | 提供商 | API | 数据 |
|:-------|:---------|:---:|:-----|
| 日前拍卖价格 | [SMARD(BNetzA)](https://www.smard.de) | [开放 REST](https://www.smard.de/app/chart_data/122/DE-LU/) | 实时,15 分钟分辨率 |
| 太阳能发电 | SMARD | 图表 API | 实时,每小时 |
| 风能发电 | SMARD | 图表 API | 实时,每小时 |
| 电网负载 | SMARD | 图表 API | 实时,每小时 |
**计划在 v0.3 中:**
- ENTSO-E 透明度(跨界交换,网络约束)
- DWD BrightSky(天气:太阳辐射,风速,温度)
- ML 模型(累积数据库数据的随机森林)
## 许可证
MIT
---
由 [@DasClown](https://github.com/DasClown) 构建 — 面向 AI 代理的德国电价。