
Solar Data
io.github.hoodsyPublished by GitHub account hoodsyv0.1.1Updated Oct 24, 2026
US open solar data for agents: PVWatts production, tariffs & ROI, market data, forecasts. 18 tools.
Overview
Local MCP server giving assistants 18 tools over US open solar data: PVWatts production modeling, tariffs and ROI, market data, and forecasts.
- What you can do
- Model production: estimate output, irradiance, orientation comparisons and system sizing
- Analyze economics: utility tariffs, electricity prices, incentives and payback/ROI
- Research the market: installed system prices, permitting timelines, utility-scale plants and AHJ lookup
- Forecast generation and compare forecasts against modeled output
- Use bundled skills and report prompts (market brief, site assessment, quote review, proposal builder) that chain the tools
- When to use it
- Useful when an assistant needs to answer US solar questions — home payback and quote checks, installer proposals, or market and pricing research — with sourced numbers, units and stated assumptions.
- Requirements
- Runs locally via uvx (Python) over stdio; desktop client only. Optional free API keys: NREL_API_KEY (needed for production, irradiance and ROI tools), OPENEI_API_KEY for tariffs, EIA_API_KEY for electricity prices, and AHJ_REGISTRY_TOKEN for permitting-authority lookup. Market and forecast tools need no key; full forecasts need the Quartz model installed. Network access required.
Installation
In SourceWeft
- Open Solar Data in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
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
-
Get a free NREL API key — https://developer.nlr.gov/signup/ (or use
DEMO_KEYto try it out — 10 requests/hour). -
Add the server to your agent — snippets for every major agent below; for Claude Desktop, merge this into
claude_desktop_config.json(full example inexamples/):Only
NREL_API_KEYis needed to start: the server runs with any subset of keys, and a tool missing its key returns setup instructions instead of failing silently. -
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:
Add it to your agent
Claude Code
(or commit the quickstart JSON to your project's .mcp.json)
Codex CLI — ~/.codex/config.toml:
(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):
Hermes — ~/.hermes/config.yaml, then /reload-mcp:
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.
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:
Per-server config:
examples/claude_desktop_config.per-server.json.
⚠️ Run the combined
solar-dataserver or the per-domain servers, not both — and neversolar-economicsandsolar-marketside 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.
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
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).
Source: README.md at commit 7181708
Tools
0Version history
1- v0.1.1LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts