Grid-Connected Solar PV Yield Estimate (PVGIS)
pvgis/pv-estimate
Estimated energy from a grid-connected photovoltaic system at a latitude and longitude, from PVGIS: yearly and monthly energy output (kWh), in-plane irradiation, year-to-year variability and system loss breakdown. Give the peak power in kWp and the system loss in percent; give tilt (angle) and orientation (aspect) for a fixed array or leave both out and the panel is horizontal. Mounting (stand-alone or building integrated) and cell technology are selectable. Covers Europe, Africa, most of Asia and the Americas; open sea is refused. Estimates calculated by PVGIS (European Commission Joint Research Centre), served by Eden Engine; not an official European Commission product.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.
Data source
European Commission Joint Research Centre (PVGIS)
PVGIS (c) European Union, Joint Research Centre. Reused under Commission Decision 2011/833/EU. Served by Eden Engine; not an official European Commission product.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "pvgis/pv-estimate" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "pvgis/pv-estimate" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "pvgis/pv-estimate", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "pvgis/pv-estimate", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 25, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude in decimal degrees, -90 to 90 (north positive)."
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude in decimal degrees, -180 to 180 (east positive)."
},
"loss": {
"type": "number",
"default": 14,
"maximum": 100,
"minimum": 0,
"description": "System losses in percent, 0 to 100 (default 14)."
},
"angle": {
"type": "number",
"maximum": 90,
"minimum": 0,
"description": "Panel tilt from horizontal in degrees, 0 to 90. Leave out for 0 (flat)."
},
"aspect": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Panel orientation in degrees: 0 is south, 90 west, -90 east, 180 north. Leave out for 0 (south)."
},
"peakpower": {
"type": "number",
"default": 1,
"maximum": 100000000,
"minimum": 0.001,
"description": "Installed peak power in kWp, 0.001 to 100000000 (default 1)."
},
"pvtechchoice": {
"enum": [
"crystSi",
"CIS",
"CdTe",
"Unknown"
],
"type": "string",
"default": "crystSi",
"description": "Cell technology: crystSi, CIS, CdTe or Unknown (default crystSi)."
},
"mountingplace": {
"enum": [
"free",
"building"
],
"type": "string",
"default": "free",
"description": "Array mounting: stand-alone (the default) or building for a building-integrated array."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"inputs",
"outputs"
],
"properties": {
"meta": {
"type": "object",
"description": "Field descriptions and units from PVGIS.",
"additionalProperties": true
},
"inputs": {
"type": "object",
"required": [
"location"
],
"properties": {
"location": {
"type": "object",
"required": [
"latitude",
"longitude"
],
"properties": {
"latitude": {
"type": "number"
},
"elevation": {
"type": "number",
"description": "Ground elevation in metres."
},
"longitude": {
"type": "number"
}
},
"additionalProperties": true
},
"meteo_data": {
"type": "object",
"description": "Radiation and weather databases and years used.",
"additionalProperties": true
}
},
"description": "Echo of the inputs PVGIS used.",
"additionalProperties": true
},
"outputs": {
"type": "object",
"required": [
"monthly",
"totals"
],
"properties": {
"totals": {
"type": "object",
"required": [
"fixed"
],
"properties": {
"fixed": {
"type": "object",
"required": [
"E_y"
],
"properties": {
"E_d": {
"type": "number"
},
"E_m": {
"type": "number"
},
"E_y": {
"type": "number",
"description": "Average yearly energy, kWh."
},
"SD_y": {
"type": "number"
},
"H(i)_y": {
"type": "number",
"description": "Yearly in-plane irradiation, kWh/m2."
}
},
"additionalProperties": true
}
},
"additionalProperties": true
},
"monthly": {
"type": "object",
"required": [
"fixed"
],
"properties": {
"fixed": {
"type": "array",
"items": {
"type": "object",
"required": [
"month"
],
"properties": {
"E_d": {
"type": "number",
"description": "Average daily energy, kWh."
},
"E_m": {
"type": "number",
"description": "Average monthly energy, kWh."
},
"SD_m": {
"type": "number",
"description": "Year-to-year standard deviation of monthly energy, kWh."
},
"month": {
"type": "integer"
},
"H(i)_d": {
"type": "number",
"description": "Average daily in-plane irradiation, kWh/m2."
},
"H(i)_m": {
"type": "number",
"description": "Average monthly in-plane irradiation, kWh/m2."
}
},
"additionalProperties": true
}
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}
},
"additionalProperties": true
}