关于 Solar Data
Solar Data 是一个 MCP 服务,为 Agent 提供美国太阳能发电、经济性、市场和预测数据。其工具、技能和报告提示词会为数据标注单位、来源、假设与警告。
主要功能
- 01覆盖四类太阳能数据的 18 个工具
- 02建模发电量并计算系统规模
- 03估算电价、激励和投资回报
- 04查询安装与市场数据
- 05获取发电预测
- 06提供 Agent 技能和报告提示词
适用场景
- 01评估住宅太阳能发电量与回本情况
- 02审查太阳能安装报价
- 03准备安装商项目提案
- 04研究区域太阳能市场和项目
MCP 相关
向 MCP 客户端提供四类领域的 18 个工具、作为 MCP 资源的 Agent 技能,以及四种报告提示词。整合服务通过 stdio 运行,各领域也可作为独立服务运行。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx solar-data-mcpNREL_API_KEY密钥Free key from https://developer.nlr.gov/signup/ — required for production modeling and irradiance toolsOPENEI_API_KEY密钥Free key for URDB utility tariff lookups (economics tools)EIA_API_KEY密钥Free key for EIA electricity price data (economics tools)AHJ_REGISTRY_TOKEN密钥Optional SunSpec AHJ Registry token for permitting-authority lookups本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
18收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| lat | number | 是 | |
| lon | number | 是 | |
| albedo | any | 否 | |
| bifacial | boolean | 否 | |
| tilt_deg | any | 否 | |
| array_type | any | 否 | |
| losses_pct | any | 否 | |
| azimuth_deg | any | 否 | |
| dc_ac_ratio | any | 否 | |
| module_type | any | 否 | |
| system_capacity_kw | number | 是 |
详细介绍
安装一个服务——uvx solar-data-mcp——即可让你的 Agent 获得全部 18 个工具、11 个教它如何使用这些工具的技能,以及 4 个现成的报告提示词,覆盖四个数据领域:发电建模、经济分析、市场数据和预测。每个工具都返回相同的结构——data + units + source + assumptions + warnings——因此 Agent 始终清楚数字的含义、来源,以及代表你自动填入了哪些默认值。
你可以问它什么?
- 考虑在家安装太阳能 — “在我家安装一个 6 kW 系统划算吗?” · “这份 21,000 美元的报价合理吗?” · “我的太阳能阵列明天会发多少电?”
- 销售或安装太阳能系统 — “为这位客户制作一份方案” · “在凤凰城,许可审批需要多久?” · “我们接下来应该在哪里拓展?”
- 研究市场 — “向我介绍德克萨斯州的太阳能市场” · “科罗拉多州的安装价格趋势如何?” · “哪些大型电站配备了电池?”
面对每个问题,Agent 都会选择合适的工具(或由某项技能负责路由),而每个数字都会附带单位、来源以及代表你采用的假设。
快速开始
-
获取免费的 NREL API 密钥 — https://developer.nlr.gov/signup/ (也可以使用
DEMO_KEY试用——每小时 10 次请求)。 -
将服务添加到你的 Agent — 下方提供了各主要 Agent 的配置片段;对于 Claude Desktop,请将其合并到
claude_desktop_config.json(完整示例见examples/):{ "mcpServers": { "solar-data": { "command": "uvx", "args": ["solar-data-mcp"], "env": { "NREL_API_KEY": "YOUR_KEY_HERE", "OPENEI_API_KEY": "YOUR_KEY_HERE", "EIA_API_KEY": "YOUR_KEY_HERE" } } } }启动时只需要
NREL_API_KEY:服务可在提供任意一部分密钥的情况下运行,缺少所需密钥的工具会返回设置说明,而不是静默失败。 -
重启客户端并提问 — 试试 “比较亚利桑那州梅萨一套 8 kW 系统在倾角为 10° 和 25° 时的年发电量。”
随时验证密钥和连接状态:
$ uvx solar-data-mcp doctor
将它添加到你的 Agent
Claude Code
$ claude mcp add solar-data \
--env NREL_API_KEY=YOUR_KEY --env OPENEI_API_KEY=YOUR_KEY --env EIA_API_KEY=YOUR_KEY \
-- uvx solar-data-mcp
(或者将快速开始 JSON 提交到项目的 .mcp.json)
Codex CLI — ~/.codex/config.toml:
[mcp_servers.solar-data]
command = "uvx"
args = ["solar-data-mcp"]
[mcp_servers.solar-data.env]
NREL_API_KEY = "YOUR_KEY_HERE"
OPENEI_API_KEY = "YOUR_KEY_HERE"
EIA_API_KEY = "YOUR_KEY_HERE"
(或者使用 codex mcp add solar-data --env NREL_API_KEY=YOUR_KEY -- uvx solar-data-mcp;
使用 env_vars = ["NREL_API_KEY"] 从 shell 转发密钥,而不是将密钥硬编码)
OpenCode — 项目中的 opencode.json(或 ~/.config/opencode/opencode.json):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"solar-data": {
"type": "local",
"command": ["uvx", "solar-data-mcp"],
"enabled": true,
"environment": {
"NREL_API_KEY": "YOUR_KEY_HERE",
"OPENEI_API_KEY": "YOUR_KEY_HERE",
"EIA_API_KEY": "YOUR_KEY_HERE"
}
}
}
}
Hermes — ~/.hermes/config.yaml,然后运行 /reload-mcp:
mcp_servers:
solar-data:
command: "uvx"
args: ["solar-data-mcp"]
env:
NREL_API_KEY: "YOUR_KEY_HERE"
OPENEI_API_KEY: "YOUR_KEY_HERE"
EIA_API_KEY: "YOUR_KEY_HERE"
Claude Desktop — 使用上方的快速开始 JSON。
其他任何支持 MCP(stdio)的工具 — 命令为 uvx,参数为 ["solar-data-mcp"],密钥放在 env 块中。
API 密钥
全部免费,且均为可选项——服务器即使未设置任何密钥也能启动。
| 环境变量 | 解锁的功能 | 获取方式 |
|---|---|---|
NREL_API_KEY | estimate_production, get_solar_resource, compare_orientations, size_system_for_target, estimate_roi, compare_forecast_to_model | https://developer.nlr.gov/signup/ |
OPENEI_API_KEY | lookup_tariffs | https://openei.org/services/api/signup/ |
EIA_API_KEY | get_electricity_prices | https://www.eia.gov/opendata/register.php |
AHJ_REGISTRY_TOKEN (可选) | identify_ahj | 发送邮件至 [email protected] |
市场工具(USPVDB、Tracking the Sun、SolarTRACE)和预测功能无需密钥。
要获取完整预测输出,还需在持久化环境中安装 Quartz 模型(参见
packages/solar-forecast/);
未安装时,预测工具会返回安装说明。
服务器
uvx solar-data-mcp(即上文所述的安装方式)通过一个 stdio 入口提供全部四个领域的服务。
每个领域也都提供独立服务器:
| 领域 | 数据 | 独立服务器 |
|---|---|---|
| 发电 | PVWatts v8 建模、NSRDB 辐照度 | uvx --from solar-data-mcp-nrel nrel-solar-mcp |
| 经济 | URDB 电价、EIA 电价、联邦 ITC + DSIRE | uvx --from solar-data-mcp-economics solar-economics-mcp |
| 市场 | SolarTRACE、Tracking the Sun、USPVDB、AHJ 查询 | uvx --from solar-data-mcp-market solar-market-mcp |
| 预测 | Quartz 开源预测(OCF) | uvx --from solar-data-mcp-forecast solar-forecast-mcp |
各服务器的配置:
examples/claude_desktop_config.per-server.json。
⚠️ 请运行组合版
solar-data服务器或各领域的独立服务器,不要同时运行两者;也切勿同时运行solar-economics和solar-market。两者都会打开同一个本地 DuckDB 批量存储,而该存储一次只允许一个进程访问。
工具
四个领域共十八种工具;参数详情请参阅各工具的文档字符串和各领域软件包的 README。
| 领域 | 可询问的内容 | 工具 |
|---|---|---|
| 发电 | 发电量、日照情况、系统容量、屋顶朝向 | estimate_production, get_solar_resource, compare_orientations, size_system_for_target |
| 经济 | 电价、激励措施、投资回收期 | lookup_tariffs, get_electricity_prices, get_incentives, estimate_roi, sync_incentives |
| 市场 | 已安装系统的 $/W、许可办理时间、公用事业级电站 | query_installed_systems, get_permitting_timelines, find_utility_scale_projects, identify_ahj, market_snapshot, sync_* |
| 预测 | 明天的发电量、“今天是否异常?” | forecast_generation, compare_forecast_to_model |
技能与报告
技能是随组合版服务器一同发布的流程,用于教会 Agent 如何正确串联工具——包括调用顺序、同步前置条件和如实报告。它们是 MCP 资源:skill://solar/index 根据问题类型进行路由,skill://solar/<name> 则对应具体流程。按提问者分类:
- 业主 — 场地评估、报价审核、性能检查
- 安装商 — 方案构建器、拓展服务区域
- 分析师 — 市场简报、定价分析、公用事业级项目调查、激励措施扫描
- 跨领域 — 数据同步(批量快照)、数据约定(掌握数据封装格式)
其中四项技能会生成具有固定文档结构的报告,并作为 MCP 提示词提供,由宿主原生呈现:market_brief、site_assessment、
quote_review、proposal_builder(在 Claude Code 中:/mcp__solar-data__market_brief)。
完整目录、路由设计和报告模板:docs/skills.md。
开发
$ git clone https://github.com/hoodsy/solar-data-mcp && cd solar-data-mcp
$ uv sync # install the workspace
$ uv run pytest # fixture replay only, no network
布局:packages/core(共享 HTTP 客户端、缓存、信封),每个领域服务对应一个包,以及 packages/solar-data-mcp(将全部四个服务挂载到一个 stdio 入口)。最精简的客户端:
examples/example_client.py。
许可证
MIT。各数据源的许可/署名信息通过 MCP 资源公开
(source://<name>/license)。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。