Power Read
Grid and utility context for one site: nearest transmission line and voltage, substation, power plant, gas pipeline, utility territory and water and sewer service.
One location or a short list · Tools: fetch_location, fetch_batch
· 1 lookup per location (17 fields).
Example prompt
“Run a power read on 35.0844, -106.6504. How far is the nearest transmission line and substation, what voltage, and who is the utility?”
Or pick the power_read prompt from the Isopleth MCP server in your client.
How it works
- Call fetch_location with the location and the fields listed below.
- Lead with the nearest transmission line (distance and voltage) and the nearest substation (distance and max voltage), then the nearest power plant (name, fuel, capacity, distance) and the nearest gas pipeline.
- Name the electric utility, its ownership type and the ISO/RTO, then say whether the point is inside a public sewer and water service area and which system serves it.
- Distances are straight-line meters from the point; convert to km or miles for the reader and note that line and substation data are public map data, not a utility interconnection study.
- For several candidate sites, use fetch_batch and rank them by distance to a line of 115 kV or more.
Fields used
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.max_transmission_line_voltage_kv_within_radius: Highest exact voltage in kV among transmission lines within about 2 km (see transmission_lines_radius_m). Null when none of them publish an exact voltage.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.nearest_power_plant_name: Name of the closest power plant in the U.S. Energy Information Administration (EIA) energy atlas.nearest_power_plant_distance_m: Distance in meters to the closest power plant in the EIA energy atlas.nearest_power_plant_primary_fuel: Main energy source of the closest EIA power plant, such as natural gas, coal, nuclear, solar, wind or hydro.nearest_power_plant_capacity_mw: Net summer generating capacity in megawatts of the closest EIA power plant. This usually runs about 10% below nameplate capacity.nearest_gas_pipeline_distance_m: Distance in meters to the closest interstate natural gas pipeline in the EIA energy atlas.electric_utility_service_territory: Name of the retail electric utility whose service area covers this point.electric_utility_ownership_type: Who owns that retail electric utility, for example cooperative, municipal, investor_owned, state or federal (EIA Form 861).iso_rto: Wholesale electricity market whose territory covers this point: PJM, MISO, ERCOT, CAISO, SPP, NYISO or ISO-NE. Null outside them. Based on 2019 market boundaries.within_sewer_service_area: True when this point is inside a sewershed in EPA's Sewersheds dataset: an area whose wastewater flows to a specific public treatment plant.sewer_service_area_provider: Name of the treatment facility for the sewershed containing this point, as reported to EPA's Clean Watersheds Needs Survey.within_water_service_area: True when this point is inside the mapped service area of a public community water system, from EPA's community water system service area boundaries.water_system_name: Name of the community water system whose mapped service area contains this point. Where areas overlap, the smallest one is used.
Tool call
What the agent sends to fetch_location:
{
"lat": 30.2672,
"lng": -97.7431,
"fields": [
"nearest_transmission_line_distance_m",
"nearest_transmission_line_voltage_kv",
"max_transmission_line_voltage_kv_within_radius",
"nearest_substation_distance_m",
"nearest_substation_max_voltage_kv",
"nearest_power_plant_name",
"nearest_power_plant_distance_m",
"nearest_power_plant_primary_fuel",
"nearest_power_plant_capacity_mw",
"nearest_gas_pipeline_distance_m",
"electric_utility_service_territory",
"electric_utility_ownership_type",
"iso_rto",
"within_sewer_service_area",
"sewer_service_area_provider",
"within_water_service_area",
"water_system_name"
]
}
Output
A ranked or single-site summary with distances in km and miles, voltages in kV, and the source of each value.
SKILL.md
Save this as isopleth-power-read/SKILL.md in your agent's skills folder
(for Claude Code, ~/.claude/skills/), or download it.
---
name: isopleth-power-read
description: Grid and utility context for one site: nearest transmission line and voltage, substation, power plant, gas pipeline, utility territory and water and sewer service. Uses the Isopleth MCP server (https://api.isopleth.dev/mcp).
---
# Power Read
Grid and utility context for one site: nearest transmission line and voltage, substation, power plant, gas pipeline, utility territory and water and sewer service.
## 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: `fetch_location`, `fetch_batch`.
- Cost: 1 lookup per location (17 fields).
## Steps
1. Call fetch_location with the location and the fields listed below.
2. Lead with the nearest transmission line (distance and voltage) and the nearest substation (distance and max voltage), then the nearest power plant (name, fuel, capacity, distance) and the nearest gas pipeline.
3. Name the electric utility, its ownership type and the ISO/RTO, then say whether the point is inside a public sewer and water service area and which system serves it.
4. Distances are straight-line meters from the point; convert to km or miles for the reader and note that line and substation data are public map data, not a utility interconnection study.
5. For several candidate sites, use fetch_batch and rank them by distance to a line of 115 kV or more.
## Arguments
```json
{
"fields": [
"nearest_transmission_line_distance_m",
"nearest_transmission_line_voltage_kv",
"max_transmission_line_voltage_kv_within_radius",
"nearest_substation_distance_m",
"nearest_substation_max_voltage_kv",
"nearest_power_plant_name",
"nearest_power_plant_distance_m",
"nearest_power_plant_primary_fuel",
"nearest_power_plant_capacity_mw",
"nearest_gas_pipeline_distance_m",
"electric_utility_service_territory",
"electric_utility_ownership_type",
"iso_rto",
"within_sewer_service_area",
"sewer_service_area_provider",
"within_water_service_area",
"water_system_name"
]
}
```
## Output
A ranked or single-site summary with distances in km and miles, voltages in kV, and the source of each value.
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
ChatGPT
ChatGPT connects with your Isopleth sign-in, no key needed. Custom MCP servers are available on ChatGPT web for Pro, Business, Enterprise and Edu accounts (workspace admins may need to allow them).
- Open Plugins in ChatGPT, select +, then Add custom MCP server. (Older layouts: Settings → Apps → Create, with developer mode on.)
- Name it Isopleth and enter the server URL
https://api.isopleth.dev/mcp. - Choose OAuth for authentication and leave the client ID and secret blank. ChatGPT registers itself.
- Accept the risk notice and create it. ChatGPT opens the Isopleth sign-in: enter your email, open the sign-in link we send you in the same browser, and choose Allow access.
- Start a chat, type
@and pick Isopleth.
Claude.ai (web, desktop and mobile)
Claude connects with your Isopleth sign-in too. Custom connectors are on Pro, Max, Team and Enterprise plans; on Team and Enterprise an owner adds the connector first, then each person connects their own Isopleth account.
- Go to Customize → Connectors (formerly Settings → Connectors), select Add, then Add custom connector.
- Name it Isopleth and enter
https://api.isopleth.dev/mcp. Keep the detected sign-in settings and leave the OAuth client fields blank. - Select Connect, sign in to Isopleth with your email and choose Allow access.
- Turn Isopleth on from the connectors menu in a chat. A connector added on claude.ai also shows up in Claude Desktop and the mobile apps.
How app sign-in works
- Approving an app gives it access to Isopleth's MCP tools only. It can't see your API keys or billing, and its token is refused by the REST API.
- Lookups made through an app count against your plan, with the same rate limit and daily cap as your API keys. All your connected apps share one rate limit.
- Access tokens expire after an hour and the app renews them quietly. Renewal stops after 30 days without use.
- See and disconnect apps any time under Connected apps on your dashboard. A disconnected app loses access immediately.
- Technical details: OAuth 2.1 with PKCE (S256), dynamic client registration and client ID metadata documents, and
discovery at
https://api.isopleth.dev/.well-known/oauth-protected-resource/mcp.
Claude Code
claude mcp add --transport http isopleth https://api.isopleth.dev/mcp --header "Authorization: Bearer $ISOPLETH_KEY"
Or skip the key: add it without the header, then run /mcp in Claude Code and choose to authenticate.
Claude Desktop
The simplest route is the connector set up on claude.ai, which Claude Desktop picks up. To
use an API key instead, go through the mcp-remote bridge (needs Node.js 18 or later): open Settings →
Developer → Edit Config, add this to claude_desktop_config.json, then restart Claude Desktop.
{
"mcpServers": {
"isopleth": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.isopleth.dev/mcp",
"--header",
"Authorization:${ISOPLETH_AUTH}"
],
"env": {
"ISOPLETH_AUTH": "Bearer YOUR_ISOPLETH_KEY"
}
}
}
}
Cursor
Add to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project). Leave out
headers to sign in with your Isopleth account instead of a key.
{
"mcpServers": {
"isopleth": {
"url": "https://api.isopleth.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_ISOPLETH_KEY"
}
}
}
}
VS Code (Copilot agent mode)
Add to .vscode/mcp.json. VS Code asks for the key once and stores it securely. Without the
headers block VS Code offers to sign in with your Isopleth account.
{
"servers": {
"isopleth": {
"type": "http",
"url": "https://api.isopleth.dev/mcp",
"headers": {
"Authorization": "Bearer ${input:isopleth-key}"
}
}
},
"inputs": [
{
"type": "promptString",
"id": "isopleth-key",
"description": "Isopleth API key",
"password": true
}
]
}
OpenAI Codex CLI
Add to ~/.codex/config.toml and export ISOPLETH_KEY in your shell.
[mcp_servers.isopleth] url = "https://api.isopleth.dev/mcp" bearer_token_env_var = "ISOPLETH_KEY"
Other MCP clients
Any client that supports Streamable HTTP works: server URL https://api.isopleth.dev/mcp, then either the header
Authorization: Bearer <your key> or the client's OAuth sign-in. Clients that only speak stdio can use
the mcp-remote bridge shown for Claude Desktop.