pvwatts

Pack: nrel · Endpoint: https://gateway.pipeworx.io/nrel/mcp

Solar energy production estimate (PVWatts v8) for a photovoltaic system at a lat/lon. Returns estimated annual AC energy (kWh), capacity factor, solar radiation, and monthly production. Example: pvwatts({ lat: 40.0, lon: -105.25, system_capacity: 4 })

Parameters

NameTypeRequiredDescription
latnumberyesLatitude in decimal degrees, e.g. 40.0
lonnumberyesLongitude in decimal degrees, e.g. -105.25
system_capacitynumbernoSystem size in kW DC (default 4)
tiltnumbernoArray tilt in degrees (default 20)
azimuthnumbernoArray azimuth in degrees, 180 = south (default 180)
array_typenumbernoArray type: 0=fixed open rack, 1=fixed roof mount, 2=1-axis tracking, 3=1-axis backtracking, 4=2-axis tracking (default 1)
module_typenumbernoModule type: 0=standard, 1=premium, 2=thin film (default 0)
lossesnumbernoSystem losses in percent (default 14)
_apiKeystringnoOptional — your own NREL / api.data.gov API key for higher limits; omit to use the shared Pipeworx key.

Example call

Arguments

{
  "lat": 40,
  "lon": -105.25,
  "system_capacity": 4
}

curl

curl -X POST https://gateway.pipeworx.io/nrel/mcp \
  -H 'Content-Type: application/json' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"pvwatts","arguments":{"lat":40,"lon":-105.25,"system_capacity":4}}}'

TypeScript (@pipeworx/sdk)

import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();

const result = await pipeworx.call('pvwatts', {
  "lat": 40,
  "lon": -105.25,
  "system_capacity": 4
});

More examples

{
  "lat": 37.7749,
  "lon": -122.4194,
  "system_capacity": 8,
  "tilt": 25,
  "azimuth": 180,
  "array_type": 2,
  "module_type": 1,
  "losses": 12
}

Connect

Add this to your MCP client config:

{
  "mcpServers": {
    "nrel": {
      "url": "https://gateway.pipeworx.io/nrel/mcp"
    }
  }
}

See Getting Started for client-specific install steps.

Regenerated from source · build September 5, 2026