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 分