Solar Data

io.github.hoodsy由 GitHub 账号 hoodsy 发布v0.1.1更新于 Oct 24, 2026

US open solar data for agents: PVWatts production, tariffs & ROI, market data, forecasts. 18 tools.

概览

AI 生成的概览

本地 MCP 服务器,为助手提供 18 个工具,覆盖美国公开太阳能数据:PVWatts 发电建模、电价与投资回报、市场数据和发电预测。

可以做什么
  • 发电建模:估算发电量、太阳辐照资源、比较不同朝向并反推系统容量
  • 经济性分析:查询公用事业电价方案、电力价格、补贴激励与回本/投资回报
  • 市场研究:已安装系统价格、审批周期、公用事业级电站与审批机构查询
  • 发电预测,并将预测结果与模型输出对比
  • 内置技能与报告提示词(市场简报、场地评估、报价审查、方案书),引导助手串联工具
适用场景
适合需要回答美国太阳能相关问题的场景,例如家庭回本测算与报价合理性判断、安装商方案书撰写,或市场价格与趋势研究,且要求数字带单位、来源和假设说明。
运行要求
通过 uvx(Python)以 stdio 在本地运行,仅支持桌面客户端。可选免费 API 密钥:NREL_API_KEY(发电、辐照与 ROI 工具需要)、OPENEI_API_KEY(电价方案)、EIA_API_KEY(电力价格)、AHJ_REGISTRY_TOKEN(审批机构查询)。市场与预测工具无需密钥;完整预测需另装 Quartz 模型。需要网络访问。
安装前请注意
多个工具需要在客户端 env 配置中填写第三方 API 密钥,尽量避免写入提交到仓库的配置文件。部分工具会把批量快照同步到本地 DuckDB 存储,且同一时间只允许一个进程访问,不要与分领域服务器同时运行。预测与 ROI 均为模型估算并带有默认假设,用于报价前应人工核对。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Solar Data,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

☀️ solar-data-mcp

US solar data, agent-accessible.

[CI] [Python 3.11+] [License: MIT] [MCP]

One MCP server that brings US open solar data to Claude, ChatGPT, and anything else that speaks MCP.

Install one server — uvx solar-data-mcp — and your agent gets all 18 tools, 11 skills that teach it how to use them, and 4 ready-made report prompts, across four data domains: production modeling, economics, market data, and forecasts. Every tool returns the same envelope — data + units + source + assumptions + warnings — so the agent always knows what a number means, where it came from, and which defaults were injected on its behalf.

What can you ask it?

  • Thinking about solar at home — "Would a 6 kW system pay off at my house?" · "Is this $21,000 quote fair?" · "What will my array generate tomorrow?"
  • Selling or installing solar — "Build a proposal for this customer" · "How long does permitting take in Phoenix?" · "Where should we expand next?"
  • Studying the market — "Brief me on the Texas solar market" · "How have installed prices trended in Colorado?" · "Which big plants have batteries?"

Behind each question the agent picks the right tools (or a skill routes it), and every number comes back with units, a source, and the assumptions made on your behalf.

Quickstart

  1. Get a free NREL API key — https://developer.nlr.gov/signup/ (or use DEMO_KEY to try it out — 10 requests/hour).

  2. Add the server to your agent — snippets for every major agent below; for Claude Desktop, merge this into claude_desktop_config.json (full example in examples/):

    json
    {  "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"      }    }  }}

    Only NREL_API_KEY is needed to start: the server runs with any subset of keys, and a tool missing its key returns setup instructions instead of failing silently.

  3. Restart your client and ask — try "Compare annual production for an 8 kW system in Mesa, AZ at 10° vs 25° tilt."

Verify keys and connectivity anytime:

console
$ uvx solar-data-mcp doctor

Add it to your agent

Claude Code

console
$ 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

(or commit the quickstart JSON to your project's .mcp.json)

Codex CLI — ~/.codex/config.toml:

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"

(or codex mcp add solar-data --env NREL_API_KEY=YOUR_KEY -- uvx solar-data-mcp; use env_vars = ["NREL_API_KEY"] to forward keys from your shell instead of hardcoding them)

OpenCode — opencode.json in your project (or ~/.config/opencode/opencode.json):

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, then /reload-mcp:

yaml
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 — the quickstart JSON above.

Anything else that speaks MCP (stdio) — command uvx, args ["solar-data-mcp"], keys in the env block.

API keys

All free, and every one optional — the server starts with none set.

Env varUnlocksGet one
NREL_API_KEYestimate_production, get_solar_resource, compare_orientations, size_system_for_target, estimate_roi, compare_forecast_to_modelhttps://developer.nlr.gov/signup/
OPENEI_API_KEYlookup_tariffshttps://openei.org/services/api/signup/
EIA_API_KEYget_electricity_priceshttps://www.eia.gov/opendata/register.php
AHJ_REGISTRY_TOKEN (optional)identify_ahjemail [email protected]

Market tools (USPVDB, Tracking the Sun, SolarTRACE) and forecasts need no key. Full forecast output additionally needs the Quartz model installed into a persistent environment (see packages/solar-forecast/); without it the forecast tools return install instructions.

Servers

uvx solar-data-mcp — the install above — serves all four domains on one stdio entry. Each domain also ships as a standalone server:

DomainDataStandalone server
ProductionPVWatts v8 modeling, NSRDB irradianceuvx --from solar-data-mcp-nrel nrel-solar-mcp
EconomicsURDB tariffs, EIA prices, federal ITC + DSIREuvx --from solar-data-mcp-economics solar-economics-mcp
MarketSolarTRACE, Tracking the Sun, USPVDB, AHJ lookupuvx --from solar-data-mcp-market solar-market-mcp
ForecastQuartz open-source forecasts (OCF)uvx --from solar-data-mcp-forecast solar-forecast-mcp

Per-server config: examples/claude_desktop_config.per-server.json.

⚠️ Run the combined solar-data server or the per-domain servers, not both — and never solar-economics and solar-market side by side. Both open the same local DuckDB bulk store, which allows only one process at a time.

Tools

Eighteen tools across four domains; parameter details live in each tool's docstring and each domain package's README.

DomainAsk it aboutTools
Productionoutput, sunniness, sizing, roof orientationestimate_production, get_solar_resource, compare_orientations, size_system_for_target
Economicstariffs, electricity prices, incentives, paybacklookup_tariffs, get_electricity_prices, get_incentives, estimate_roi, sync_incentives
Marketinstalled $/W, permitting times, utility-scale plantsquery_installed_systems, get_permitting_timelines, find_utility_scale_projects, identify_ahj, market_snapshot, sync_*
Forecasttomorrow's output, "is today unusual?"forecast_generation, compare_forecast_to_model

Skills & reports

Skills are procedures shipped inside the combined server that teach an agent to chain the tools correctly — ordering, sync prerequisites, honest reporting. They're MCP resources: skill://solar/index routes by question shape, skill://solar/<name> is the procedure. Grouped by who's asking:

  • Homeowners — site assessment, quote review, performance check
  • Installers — proposal builder, territory expansion
  • Analysts — market brief, pricing analysis, utility-scale scout, incentive scan
  • Cross-cutting — data sync (bulk snapshots), data conventions (envelope literacy)

Four of these render reports with a fixed document shape and are also exposed as MCP prompts your host surfaces natively — market_brief, site_assessment, quote_review, proposal_builder (in Claude Code: /mcp__solar-data__market_brief).

Full catalog, routing design, and report templates: docs/skills.md.

Development

console
$ 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

Layout: packages/core (shared HTTP client, cache, envelope), one package per domain server, and packages/solar-data-mcp (the umbrella that mounts all four on one stdio entry). Smallest possible client: examples/example_client.py.

License

MIT. Per-source data licensing/attribution is exposed as MCP resources (source://<name>/license).

来源:README.md,提交 7181708

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.1最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分