Solar/Wind Site Prospecting
Find large rural parcels and rank them for utility-scale solar or wind: resource, distance and voltage to the grid, slope, flood, wetlands and protected land.
An area to prospect, or a list of parcels · Tools: parcel_search, parcel_enrich, start_run, get_run, proximity
· 25 lookups per search page with results, then 6 per parcel screened (5 for the parcel, 1 for the 13 point fields).
Connect Isopleth in that app first (one click above), so the assistant can call it.
mkdir -p ~/.claude/skills/isopleth-solar-wind-site-prospecting && curl -fsSL https://isopleth.dev/templates/solar-wind-site-prospecting/SKILL.md -o ~/.claude/skills/isopleth-solar-wind-site-prospecting/SKILL.md
Other agents: or
download it. In MCP clients that show prompts, pick
solar_wind_site_prospecting.
Example prompt
“Prospect Potter County, TX for solar: parcels of 160 acres or more within 3 km of a 115 kV or larger line. Rank the top 10.”
Or pick the solar_wind_site_prospecting prompt from the Isopleth MCP server in your client.
How it works
- Call parcel_search with the state and county, acres_min (about 5 acres per MW for solar; wind needs larger, often several adjoining tracts) and land_use words such as agricultural or vacant. Use limit 100.
- Screen the candidates: for a handful, call parcel_enrich with each parcel_id and the fields below; for dozens or more, call start_run with kind "enrich", items [{"parcel_id": ...}] and the same fields, with max_lookups set, then page through get_run.
- Drop parcels in flood zone A or V, on wetlands, protected land or critical habitat, or with average slope over about 5 degrees for solar (about 10 for wind).
- Rank the rest by grid access first (distance to a line of the needed voltage and to a substation), then resource (GHI for solar; 100 m wind speed and capacity factor for wind), then acreage.
- For the finalists, call proximity with categories ["power"] for the nearest substation, line, plant and pipeline with names and voltages.
Fields used
Point fields, measured at each parcel:
ghi_annual_kwh_m2_day: Average daily sunlight on a flat surface in kWh per square meter per day, from NREL's long-term (1998-2016) solar resource map on an approximately 4 km grid.mean_wind_speed_100m_ms: Long-term average wind speed in m/s at 100 m above ground, from the NREL WIND Toolkit (2 km grid, lower 48 states).wind_capacity_factor_pct: Modeled average output, as a percent of maximum, of a modern reference wind turbine (115 m hub, 170 m rotor) at the nearest NREL reV land-based wind site.slope_degrees: Steepness of the ground at this point in degrees, calculated from the USGS 3DEP elevation model. 0 is level ground and 90 is a vertical face.nearest_transmission_line_distance_m: Distance in meters to the closest electric transmission line in the EIA energy atlas.nearest_transmission_line_voltage_kv: Operating voltage in kV of the closest transmission line. Null when no number is published for that line.nearest_substation_distance_m: Distance in meters to the closest electric substation of 69 kV or more in the EIA energy atlas.nearest_substation_max_voltage_kv: Highest voltage in kV at that closest substation, as published in the EIA energy atlas.nfhl_flood_zone: FEMA flood zone code at this point from the National Flood Hazard Layer, such as AE, A, AO, VE or X. Where several zones overlap, the one that sets the flood-insurance requirement is used.intersects_wetland: True when this point lies inside a wetland mapped by the U.S. Fish and Wildlife Service National Wetlands Inventory.intersects_protected_area: True when this point is inside a protected area in the USGS PAD-US database, such as a park, refuge, wilderness, military land or private preserve.intersects_critical_habitat: True when this point is inside critical habitat for an endangered or threatened species, final or proposed, as designated by the U.S. Fish and Wildlife Service.lcms_class: Main land cover at this point (trees, shrubs, grass, barren and similar) from the USFS Land Change Monitoring System, sampled on an approximately 120 m grid. Lower 48 states.
Parcel record columns (published columns vary by state; see coverage): parcelnumb, owner, mailadd, mail_state2, usedesc, gisacre, parval, lat, lon.
Tool call
What the agent sends to parcel_enrich:
{
"lat": 35.21,
"lng": -101.83,
"fields": [
"ghi_annual_kwh_m2_day",
"mean_wind_speed_100m_ms",
"wind_capacity_factor_pct",
"slope_degrees",
"nearest_transmission_line_distance_m",
"nearest_transmission_line_voltage_kv",
"nearest_substation_distance_m",
"nearest_substation_max_voltage_kv",
"nfhl_flood_zone",
"intersects_wetland",
"intersects_protected_area",
"intersects_critical_habitat",
"lcms_class"
]
}
Output
A ranked table: parcel, owner, acres, grid distance and voltage, resource value, red flags, lookups spent. Straight-line distances only; interconnection capacity needs a utility study.
SKILL.md
Save this as isopleth-solar-wind-site-prospecting/SKILL.md in your agent's skills folder
(for Claude Code, ~/.claude/skills/), or download it.
---
name: isopleth-solar-wind-site-prospecting
description: Find large rural parcels and rank them for utility-scale solar or wind: resource, distance and voltage to the grid, slope, flood, wetlands and protected land. Uses the Isopleth MCP server (https://api.isopleth.dev/mcp).
---
# Solar/Wind Site Prospecting
Find large rural parcels and rank them for utility-scale solar or wind: resource, distance and voltage to the grid, slope, flood, wetlands and protected land.
## Requirements
- The Isopleth MCP server connected at `https://api.isopleth.dev/mcp` with an API key in the `Authorization: Bearer` header (see https://isopleth.dev/docs/mcp).
- Tools used: `parcel_search`, `parcel_enrich`, `start_run`, `get_run`, `proximity`.
- Cost: 25 lookups per search page with results, then 6 per parcel screened (5 for the parcel, 1 for the 13 point fields).
## Steps
1. Call parcel_search with the state and county, acres_min (about 5 acres per MW for solar; wind needs larger, often several adjoining tracts) and land_use words such as agricultural or vacant. Use limit 100.
2. Screen the candidates: for a handful, call parcel_enrich with each parcel_id and the fields below; for dozens or more, call start_run with kind "enrich", items [{"parcel_id": ...}] and the same fields, with max_lookups set, then page through get_run.
3. Drop parcels in flood zone A or V, on wetlands, protected land or critical habitat, or with average slope over about 5 degrees for solar (about 10 for wind).
4. Rank the rest by grid access first (distance to a line of the needed voltage and to a substation), then resource (GHI for solar; 100 m wind speed and capacity factor for wind), then acreage.
5. For the finalists, call proximity with categories ["power"] for the nearest substation, line, plant and pipeline with names and voltages.
## Arguments (example `parcel_enrich` call)
```json
{
"lat": 35.21,
"lng": -101.83,
"fields": [
"ghi_annual_kwh_m2_day",
"mean_wind_speed_100m_ms",
"wind_capacity_factor_pct",
"slope_degrees",
"nearest_transmission_line_distance_m",
"nearest_transmission_line_voltage_kv",
"nearest_substation_distance_m",
"nearest_substation_max_voltage_kv",
"nfhl_flood_zone",
"intersects_wetland",
"intersects_protected_area",
"intersects_critical_habitat",
"lcms_class"
]
}
```
## Output
A ranked table: parcel, owner, acres, grid distance and voltage, resource value, red flags, lookups spent. Straight-line distances only; interconnection capacity needs a utility study.
Every value carries its source, license and attribution. Keep the source next to each value, and show the attributions if you share the results.
Connect your agent
Claude.ai, Claude Desktop and the Claude mobile apps. Sign in with Isopleth; no key to paste.
- Click Add to Claude. The Add custom connector dialog opens with the name and URL filled in; select Add. (Team and Enterprise: an owner adds it once, then everyone connects their own account.)
- Select Connect, sign in to Isopleth with your email, then Allow access.
- Desktop and mobile pick it up automatically. Pro, Max, Team and Enterprise plans.
https://api.isopleth.dev/mcp
ChatGPT on the web (Pro, Business, Enterprise and Edu). Sign in with Isopleth; no key to paste.
- Open Plugins, select +, then Add custom MCP server (older layouts: Settings → Apps → Create, with developer mode on).
- Paste the URL, name it Isopleth, choose OAuth and leave the client ID and secret blank.
- Sign in to Isopleth when asked, choose Allow access, then type
@Isoplethin a chat.
https://api.isopleth.dev/mcp
One command, then /mcp inside Claude Code to sign in in your browser.
claude mcp add --transport http isopleth https://api.isopleth.dev/mcp
claude mcp add --transport http isopleth https://api.isopleth.dev/mcp --header "Authorization: Bearer $ISOPLETH_KEY"
One click opens Cursor's install prompt. Cursor signs you in to Isopleth the first time a tool runs.
Nothing opened? The app may not be installed or may block links from the browser; use the copy option below.
{
"mcpServers": {
"isopleth": {
"url": "https://api.isopleth.dev/mcp"
}
}
}One click opens VS Code's MCP install page (Copilot agent mode). VS Code offers to sign in to Isopleth.
Nothing opened? The app may not be installed or may block links from the browser; use the copy option below.
code --add-mcp '{"name":"isopleth","type":"http","url":"https://api.isopleth.dev/mcp"}'{
"servers": {
"isopleth": {
"type": "http",
"url": "https://api.isopleth.dev/mcp"
}
}
}One command. Codex sees that Isopleth supports sign-in and opens your browser.
codex mcp add isopleth --url https://api.isopleth.dev/mcp
codex mcp add isopleth --url https://api.isopleth.dev/mcp --bearer-token-env-var ISOPLETH_KEY
Use Add to Claude on the Claude tab: connectors added on claude.ai appear in Claude Desktop. To use an API key instead, add this to claude_desktop_config.json (Settings → Developer → Edit Config; needs Node.js 18+).
{
"mcpServers": {
"isopleth": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.isopleth.dev/mcp",
"--header",
"Authorization:${ISOPLETH_AUTH}"
],
"env": {
"ISOPLETH_AUTH": "Bearer YOUR_ISOPLETH_KEY"
}
}
}
}Paste into ~/.codeium/windsurf/mcp_config.json (Cascade → MCP → open config). Windsurf uses serverUrl, not url.
{
"mcpServers": {
"isopleth": {
"serverUrl": "https://api.isopleth.dev/mcp"
}
}
}Any client that speaks Streamable HTTP: the URL, then the client's OAuth sign-in or the header Authorization: Bearer <your key>. Stdio-only clients can use the mcp-remote bridge shown under Claude Desktop.
https://api.isopleth.dev/mcp
Authorization: Bearer $ISOPLETH_KEY