Solar MCP

Solar MCP

An MCP server that enables AI assistants to look up solar permitting authorities, estimate solar production via PVWatts, and retrieve irradiance data. It streamlines the creation of solar-aware workflows by integrating industry-standard APIs like NREL.

Category
Visit Server

README

License: MIT

Solar MCP

A community-sponsored open-source MCP server that wraps solar industry APIs as tools for AI assistants. Built with FastMCP and hosted as a public endpoint at api.ontologic.co/solar-mcp.

Solar MCP gives AI assistants the ability to look up permitting authorities, estimate solar production, and retrieve solar resource data — making it easy to build solar-aware AI workflows.


Available Tools

lookup_ahj

Look up the Authority Having Jurisdiction (AHJ) for a solar installation site.

Parameter Type Required Description
address string One of address or lat/lon Street address
lat float One of address or lat/lon Latitude
lon float One of address or lat/lon Longitude

Returns: ahj_name, ahj_id, building_code, electrical_code, fire_code, permit_authority, inspection_body, contact_name, contact_email, contact_phone, website

lookup_ahj_requirements

Look up detailed permitting requirements for a specific AHJ.

Parameter Type Required Description
ahj_id string Yes AHJ ID from lookup_ahj

Returns: nec_version, ibc_version, irc_version, special_requirements (list), permit_process_notes, online_submission (bool), typical_turnaround_days

lookup_pvwatts

Get a PVWatts v8 solar production estimate.

Parameter Type Required Default Description
address string One of address or lat/lon Street address
lat float One of address or lat/lon Latitude
lon float One of address or lat/lon Longitude
system_capacity_kw float Yes System size in kW
tilt float No 20 Panel tilt angle
azimuth float No 180 Panel azimuth (180 = south)
array_type int No 1 0=fixed ground, 1=fixed open rack, 2=1-axis, 3=1-axis backtrack, 4=2-axis
module_type int No 0 0=standard, 1=premium, 2=thin film
losses float No 14 System losses (%)

Returns: ac_annual_kwh, ac_monthly_kwh (12 values), solrad_annual, capacity_factor, station_info

lookup_solar_resource

Get solar resource data (irradiance) for a location.

Parameter Type Required Description
address string One of address or lat/lon Street address
lat float One of address or lat/lon Latitude
lon float One of address or lat/lon Longitude

Returns: avg_dni, avg_ghi, avg_lat_tilt, nearest_station_name, station_distance_miles


Connect in Claude Desktop

Add this to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "solar-mcp": {
      "url": "https://api.ontologic.co/solar-mcp/mcp"
    }
  }
}

Or to run locally:

{
  "mcpServers": {
    "solar-mcp": {
      "url": "http://localhost:8000/solar-mcp/mcp"
    }
  }
}

Run Locally

With Docker

docker build -t solar-mcp .
docker run -p 8000:8000 \
  -e NREL_API_KEY=your_key_here \
  -e SUNSPEC_API_TOKEN=your_token_here \
  solar-mcp

Without Docker

pip install -e ".[dev]"
cp .env.example .env
# Edit .env with your API keys
python server.py

Environment Variables

Variable Required Description
NREL_API_KEY Yes NREL API key (get one free)
SUNSPEC_API_TOKEN No SunSpec AHJ Registry token (mock data used until available)
PORT No Server port (default: 8000)

Running Tests

pip install -e ".[dev]"
pytest tests/ -v

Attribution

  • NREL — PVWatts v8 API and Solar Resource Data API. This tool uses the NREL Developer Network API but is not endorsed or certified by NREL.
  • SunSpec Alliance — AHJ Registry API. AHJ data is currently mocked based on publicly available information; real API integration is pending token access.

Contributing

Contributions are welcome! To add a new tool:

  1. Add Pydantic schemas in models/schemas.py
  2. Add a client in clients/ (keep API interaction separate from tool logic)
  3. Add the tool function in tools/
  4. Register the tool in server.py
  5. Add tests in tests/
  6. Update this README

Please open an issue first to discuss new tools or significant changes.


License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured