Skip to content
MCP server

Use InfraMap inside your AI tools

The InfraMap MCP server gives any MCP client the data behind the InfraMap agent: plants, generation, prices, curtailment, ownership, emissions, water and source records. It is read-only. MCP access is part of InfraMap Pro and Enterprise, and your client signs you in with your InfraMap account, so there is no API key to copy.

Updated October 27, 2026

Connect

Using Claude?

InfraMap is in Claude’s connectors directory. Add InfraMap from the Claude directory(opens in a new tab), choose Connect and sign in. That’s the whole setup.

For other clients, add one remote server. Everything else is discovered through the protocol.

Server URL
https://mcp.inframap.pro/mcp

Clients that take a JSON MCP configuration can use this as is. Steps for each client are under Client setup.

mcp.json
{
  "mcpServers": {
    "inframap": {
      "url": "https://mcp.inframap.pro/mcp"
    }
  }
}
Transport
Streamable HTTP, stateless. There is no separate SSE endpoint.
Sign-in
Your InfraMap account. The client opens the InfraMap sign-in page the first time it connects (OAuth 2.1 with PKCE). No API key.
Plan
Pro or Enterprise. Free accounts can sign in but cannot connect. See plans.
Access
Read-only. All 43 tools are marked read-only and idempotent.
Protocol
Built on the official MCP TypeScript SDK and its supported protocol revisions, including 2025-06-18.

The server supplies data and calculations. Your AI client writes the answer, so the model you use and its instructions still matter.

Use of the InfraMap MCP server and data is subject to the Terms of Service and Acceptable Use Policy.

Client setup

Remote MCP support depends on the client and, for some, your plan. These steps were checked against each vendor’s documentation on October 25, 2026; menus can change. Claude needs no URL; for every other client, the server URL is the only value you need.

Claude (web, desktop and mobile)

InfraMap is listed in Claude’s connectors directory, so there is no URL to paste.

From the directory. Open InfraMap in the connectors directory and choose Connect. Claude then opens the InfraMap sign-in page. You can also search for InfraMap in the directory from Customize, then Connectors.

As a custom connector. If the directory isn’t available to you, open Customize, then Connectors, choose Add custom connector, name it InfraMap, paste the server URL, keep Authentication on Sign in when needed, and choose Add. The Free plan allows one custom connector. On Team and Enterprise, an owner adds it under Organization settings, Connectors, then Add, Custom, Web, and members choose Connect on InfraMap.

Sign in. Claude opens the InfraMap sign-in page when you connect, or the first time a chat uses the connector.

In a chat, open + then Connectors and switch InfraMap on.

Claude (web, desktop and mobile) MCP documentation(opens in a new tab)

Claude Code

Every project
claude mcp add --transport http --scope user inframap https://mcp.inframap.pro/mcp

Writes .mcp.json in the project root, so everyone on the repository gets the server after approving it once.

This project
claude mcp add --transport http --scope project inframap https://mcp.inframap.pro/mcp

Sign in. Start claude, run /mcp, pick inframap and choose Authenticate. Your browser opens the InfraMap sign-in page.

Run claude mcp list; inframap shows as connected. A connector added in the Claude app also appears in Claude Code when you sign in with a Claude subscription.

Claude Code MCP documentation(opens in a new tab)

Codex

The Codex CLI, IDE extension and desktop app share one configuration, so one setup covers all three.

Every project
codex mcp add inframap --url https://mcp.inframap.pro/mcp

Codex reads project configuration only in projects you trust.

.codex/config.toml (this project)
[mcp_servers.inframap]
url = "https://mcp.inframap.pro/mcp"

Sign in. Run codex mcp login inframap, or open /mcp in Codex and choose Authenticate. Your browser opens the InfraMap sign-in page.

Run codex mcp list, or open /mcp in Codex.

Codex MCP documentation(opens in a new tab)

Cursor

~/.cursor/mcp.json (every project) or .cursor/mcp.json (this project)
{
  "mcpServers": {
    "inframap": {
      "url": "https://mcp.inframap.pro/mcp"
    }
  }
}

Sign in. Cursor shows a sign-in prompt for inframap under Customize, then MCPs. Follow it to the InfraMap sign-in page.

Open Customize, then MCPs; inframap appears with its tools.

Cursor MCP documentation(opens in a new tab)

VS Code (GitHub Copilot)

Every workspace
code --add-mcp '{"name":"inframap","type":"http","url":"https://mcp.inframap.pro/mcp"}'
.vscode/mcp.json (this workspace)
{
  "servers": {
    "inframap": {
      "type": "http",
      "url": "https://mcp.inframap.pro/mcp"
    }
  }
}

Sign in. When inframap first starts, VS Code asks to sign in. Allow it and finish on the InfraMap sign-in page.

Run MCP: List Servers from the Command Palette, then use the tools in agent mode.

VS Code (GitHub Copilot) MCP documentation(opens in a new tab)

Gemini CLI

Every project
gemini mcp add --transport http --scope user inframap https://mcp.inframap.pro/mcp

Project scope is the default and writes .gemini/settings.json.

This project
gemini mcp add --transport http inframap https://mcp.inframap.pro/mcp

Sign in. Gemini CLI opens the InfraMap sign-in page when it first connects. To sign in again, run /mcp auth inframap in a session.

Run gemini mcp list; inframap shows as connected.

Gemini CLI MCP documentation(opens in a new tab)

ChatGPT

Web. Go to chatgpt.com/plugins, choose +, then Add custom MCP server. Name it InfraMap, paste the server URL, set Authentication to OAuth and choose Create as a plugin. ChatGPT then opens the InfraMap sign-in page. In a chat, type @ and pick InfraMap. Custom MCP servers need ChatGPT Business, Enterprise or Edu.

ChatGPT MCP documentation(opens in a new tab)

Other clients

Most clients accept a remote server as a name and a URL over Streamable HTTP.

mcp.json (remote URL)
{
  "mcpServers": {
    "inframap": {
      "url": "https://mcp.inframap.pro/mcp"
    }
  }
}

For clients that only start local servers, the open-source mcp-remote bridge forwards to InfraMap and handles the sign-in. It needs Node.js.

mcp.json (local-only clients)
{
  "mcpServers": {
    "inframap": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.inframap.pro/mcp"]
    }
  }
}

Sign in. Clients that support MCP sign-in open the InfraMap sign-in page when they first connect.

Other clients MCP documentation(opens in a new tab)

How sign-in works

  1. The first time your client calls the server, the server answers that sign-in is required and points to www.inframap.pro.
  2. Your client registers itself and opens the InfraMap sign-in page in your browser.
  3. Sign in with an email code, then approve the client.
  4. The client receives a token that lasts one hour and renews itself for up to 30 days. Each renewal replaces the previous token.

Access follows your plan. If a Pro subscription ends, the client stops connecting at its next renewal. To disconnect, remove the server from your client.

Questions to try

  • Find the largest operating wind projects in Texas and show their exact project IDs.
  • How many PJM plants have no market price node, and what are the documented reasons?
  • Which wind and solar plants saw the largest increase in modeled curtailment from 2024 to 2025?
  • Show Barry’s reported generation in 2024, including missing months and source citations.
  • What was Moccasin’s day-ahead basis to its hub in June 2025?
  • Which datasets can help me research cooling water use, and what do their records mean?

How the tools fit together

Most good answers follow the same order. Capable clients do this on their own after reading the server instructions; it helps to know it when an answer looks thin.

  1. Check what exists. get_data_catalog lists every source with its as-of date, coverage and limits. discover_energy_data searches datasets by topic.
  2. Find exact projects. Use query_analyst_store for screens across the whole inventory, or search_energy_projects for filtered lists. For a region, call resolve_grid_areas first. A state is never a stand-in for an ISO.
  3. Read project evidence. get_project_profile gives a one-call dossier. The generation, price, curtailment, ownership and emissions tools return the detail, with citations.
  4. Check definitions. get_energy_reference and get_analysis_guide return reviewed definitions and formulas. explain_analysis_limit says what a missing calculation would need.
Project IDs

A project ID is the parent EIA plant ID of a grouped project. A hybrid groups its battery storage with its generator, so one project can hold several EIA plants. Source tables use native EIA IDs. get_project_source_coverage returns the native IDs to pass to the source-record tools. See Plant catalog and projects.

Tool reference

43 tools in 10 groups, each with the display title clients show and the name they call. Inputs are listed by name; your client reads each tool’s full schema and description from the server. Most inputs accept null for their default.

Analyst store (3)

Whole-inventory screens in SQL, one-call project dossiers and reviewed definitions.

Query the analyst store (SQL)query_analyst_store

Run one read-only SQLite SELECT over the analyst store to screen, rank, count or compare projects across the whole inventory. Returns up to 200 rows with the store version and table citations.

Inputs: sql
Get project profileget_project_profile

Dossier for up to 5 projects: identity, capacity, region, pricing node and hub, earlier nodes from price chains, recent generation and capacity factor, ownership, offtake and 2024–2025 price and basis.

Inputs: project_ids
Look up energy definitionsget_energy_reference

Reviewed definitions, formulas, guards and primary references for energy terms and study topics such as capacity factor, basis, capture rate, ELCC and curtailment.

Inputs: terms topics

Discovery and definitions (5)

What data exists, how current it is, and which tool reads it.

Inspect the data catalogget_data_catalog

Every approved data source with its as-of date, coverage, tools and limits. Call it first.

No inputs.
Find datasetsdiscover_energy_data

Search datasets by research terms, or inspect one dataset ID for meaning, grain, join rules and coverage.

Inputs: query dataset limit
List loaded source datasetsget_source_catalog

Loaded source tables (water, boiler fuel, utilities, gas operators, EQR contracts, modeled renewable profiles) with grain, fields and caveats.

Inputs: dataset
Get analysis guideget_analysis_guide

Reviewed terminology, formulas, study checklists and primary references for study design.

Inputs: topics
Explain an analysis limitexplain_analysis_limit

Explains a known gap, the inputs it would need and the closest supported alternative.

Inputs: capability

Projects and regions (7)

Find plants, resolve grid areas and read source-level project evidence.

Search power plantssearch_energy_projects

Filter, rank and page the current operating EIA catalog by state, fuel, ISO, balancing authority, county, size and hybrid status. Hybrid components are grouped once.

Inputs: text states fuels view iso balancing_authority_codes region_version as_of membership_scope county hybrid min_generation_mw min_storage_mw sort_by sort_direction offset limit
Get generator and plant detailsget_project_details

Generator and plant fields for exact EIA plant IDs, with generator paging.

Inputs: plant_ids generator_offset generator_limit
Get project evidence bundleget_project_evidence_bundle

Compact verified evidence and yearly summaries for up to 5 projects and 60 months, by section.

Inputs: plant_ids start_period end_period sections
Resolve grid areasresolve_grid_areas

Resolve an ISO, RTO or balancing-authority code, name or alias before filtering plants.

Inputs: text
Get project grid membershipget_project_grid_membership

Dated unit-level balancing-authority relationships for one project, including reviewed transitions.

Inputs: plant_id as_of unit_offset unit_limit
Get project source coverageget_project_source_coverage

Which source datasets hold records for a project, with the native IDs to query them.

Inputs: id
Get grid network coverageget_grid_topology

Public OpenStreetMap network coverage and per-project USGS and OSM geometry counts.

Inputs: plant_ids

Generation, emissions, ownership (7)

Reported output, performance, potential, emissions and ownership.

Get project generationget_project_generation

EIA-923 monthly net MWh, with battery charging and discharging kept separate.

Inputs: plant_ids start_period end_period
Get project performanceget_project_performance

Complete-period generation, dated nameplate capacity factor, battery flows and utilization for up to 5 projects.

Inputs: plant_ids start_period end_period
Compare generation with modeled potentialget_project_generation_potential

Actual generation beside reviewed physical potential and retrospective expected generation.

Inputs: plant_ids start_period end_period start_timestamp end_timestamp fuel
Get project emissionsget_project_emissions

Annual EPA CO₂, SO₂ and NOx mass for monitored units, linked through the PUDL CAMD–EIA crosswalk. US short tons.

Inputs: plant_ids start_year end_year
Get project ownershipget_project_ownership

Dated ownership and offtake conclusions and reported generator relationships.

Inputs: plant_ids offset limit evidence_offset
Rank generation changerank_generation_change

Rank reported net generation change between the same months of two years across the filtered fleet.

Inputs: states fuels hybrid min_generation_mw baseline_year comparison_year months sort_by sort_direction offset limit
Rank wind capacity factorsrank_capacity_factors

Pick the largest wind projects by operating wind nameplate, then rank their capacity factors.

Inputs: fuel states cohort_size start_period end_period sort_direction offset limit

Markets (8)

Live 5-minute prices, node and hub prices, basis, period analysis and modeled revenue in seven ISOs and RTOs.

Get FERC EQR hourly salesget_eqr_hourly_sales

Seller-reported hourly sales by delivery point for about 430 plants in 2026 Q2. Reported sales, not metered generation.

Inputs: project_id stream day offset
Get live 5-minute pricesget_live_prices

The newest 5-minute real-time prices at every hub and zone, or up to 8 days at one hub or 2 days at a plant's pricing node, or hourly real-time and day-ahead prices for up to 62 days from the archive, with congestion and loss components and day-ahead against real-time. Updated every 5 minutes in all seven markets.

Inputs: view isos iso hub project_id start end
Get project market pricesget_project_market_prices

Node coverage or one month of price statistics for a plant outside ERCOT (CAISO, ISO-NE, MISO, NYISO, PJM, SPP).

Inputs: plant_ids view iso month market node hub
Get ERCOT project dataget_ercot_project_data

ERCOT resource net energy (SMNE), node and hub settlement point prices and basis for one month.

Inputs: plant_ids view month market hub node point_type series
Analyze a market periodanalyze_market_period

Prices, basis and coverage for up to 5 projects over up to 12 months in any of the seven markets.

Inputs: targets start_month end_month market metric_groups
Model project energy revenuemodel_project_revenue

Historical modeled energy revenue: monthly EIA net generation times the same month’s mean node price.

Inputs: plant_id start_period end_period iso market node
Rank ERCOT basisrank_ercot_basis

Rank reviewed ERCOT projects by node minus hub price for one month, hub and market.

Inputs: market hub month point_type fuels hybrid min_generation_mw sort_by sort_direction offset limit
Check capture rate coverageassess_capture_rate_coverage

Checks whether exact capture rates can be computed for a project, and what is missing.

Inputs: plant_ids start_period end_period

Curtailment (4)

The experimental modeled curtailment range, and operator-published regional history.

Compare modeled curtailmentcompare_project_curtailment

Screen or compare modeled curtailment across the full eligible cohort between matched month windows, nationally or by ISO, state or technology.

Inputs: baseline_start baseline_end comparison_start comparison_end source group_by states isos technology plant_ids rank_by limit
Investigate modeled curtailmentinvestigate_project_curtailment

Hour-level investigation for up to 5 plants over at most 366 days: loss blocks, durations, price coincidence and seasonality.

Inputs: plant_ids start_date end_date threshold_mw source
Get modeled curtailmentget_project_modeled_curtailment

Monthly modeled curtailed MWh, expected curtailed hours and physical potential for one plant and year.

Inputs: plant_id year
Get operator curtailment historyget_regional_curtailment_history

Operator-published regional curtailment: CAISO 2015–2025 and SPP 2024–2025.

Inputs: isos technology baseline_year comparison_year

ERCOT batteries (2)

Reviewed ERCOT battery operations before and after RTC+B.

Get ERCOT battery operationsget_project_battery_operations

Battery resource coverage or one month of operational energy.

Inputs: plant_ids view month
Analyze ERCOT battery operationsanalyze_battery_period

Battery operations over up to 24 months for up to 5 plants, with the two metering regimes kept apart.

Inputs: plant_ids start_period end_period

Source records (3)

Row-level reads, calculations and rankings over loaded source tables.

Query source recordsquery_source_records

Find exact entity IDs, then read compact records with units and citations.

Inputs: dataset view entity_ids text states start_period end_period columns offset limit
Summarize source recordssummarize_source_records

Totals and heat rates across every matching record for 1–5 entities and at most 60 months.

Inputs: dataset entity_ids start_period end_period group_by_period
Rank source recordsrank_source_records

Rank all records at the dataset’s own grain before taking the top rows.

Inputs: dataset metric direction start_period end_period states filters limit

Grid and weather (3)

Hourly load, fuel mix and carbon intensity by balancing authority, and point weather at every wind and solar plant.

Get hourly load, fuel mix and carbonget_grid_hourly

EIA-930 demand, forecast, net generation, interchange, generation by fuel and hourly CO₂ intensity for up to 4 ISOs or balancing authorities, up to 92 days, updated hourly.

Inputs: regions start end resolution
Get plant weatherget_plant_weather

Hourly hub-height wind, irradiance and temperature at a wind or solar plant from 2010, for windows up to 31 days.

Inputs: project_id start end technology
Check output against weatherexplain_output_with_weather

Monthly capacity factor against what the plant's own weather predicts, with months below 60% of expected flagged. A model estimate.

Inputs: project_ids start_month end_month technology

Water (1)

Plant cooling water and the water stress of each plant’s watershed.

Get plant cooling water and water stressget_plant_water_use

EIA cooling water withdrawal and consumption by plant, joined to the USGS surface water stress index at the plant location, for about 730 plants.

Inputs: fuel state scarce_only high_use_only sort_by limit

Analyst store

query_analyst_store runs one read-only SQLite query over the same store the InfraMap agent uses. It is the fastest way to screen, rank, count or compare across every mapped project. Join tables on project_id.

projects
One row per grouped project: name, operator, location, primary fuel, nameplate MW by technology, battery MW and MWh, ISO, balancing authority, current price node, comparison hub and the reviewed price-node status.
generation_annual
EIA-923 net generation by year from 2000, battery charge and discharge, months reported and capacity factor (null unless all 12 months of generation and capacity are present).
generation_monthly
The same by month from January 2019.
ownership
Reported and ultimate owners, and the reviewed offtake conclusion with its as-of date.
offtake_contracts
FERC market-based-rate and EQR contract records by buyer and seller. Rows can overlap through renewals and amendments.
prices_annual
2024 and 2025 time-weighted mean node and hub prices, basis and negative-price hours, day-ahead and real-time.
prices_annual_segments
Which node priced which part of a year when a project is priced through a price chain.
price_node_segments
Reviewed price chains: earlier pricing nodes of a current node across renames and market transitions.
hubs
Hub IDs and labels by ISO.
Example: the largest SPP wind projects and their 2025 capacity factors
SELECT p.project_id, p.name, p.state, p.wind_mw,
       g.capacity_factor_pct
FROM projects p
JOIN generation_annual g ON g.project_id = p.project_id
WHERE p.iso = 'SPP' AND p.primary_fuel = 'Wind'
  AND g.year = 2025 AND g.complete_year = 1
ORDER BY p.wind_mw DESC
LIMIT 20

One SELECT or WITH statement of at most 6,000 characters. Results return at most 200 rows, and a query may scan at most 100,000 rows and run for at most 8 seconds. Recursive queries, ATTACH and value-generating functions are refused. Every result carries the store version and a citation for each table it reads.

What a result contains

Each tool returns structured content and the same JSON as text, for clients that read only text. Results keep the source’s own meaning:

  • Evidence with dates, units, citations, coverage and exclusions. Null means unavailable, never zero. Zero and negative values are kept as reported.
  • Native identities. Grouped projects keep their component plant and generator IDs, so nothing is counted twice.
  • Pagination with exact offsets where a list is cut.
  • A delivery envelope naming the server release, the data release and the analyst store version. Each dataset’s own observation and publication dates still apply.

Partial evidence stays partial. Modeled potential is not delivered generation, and modeled curtailment is an experimental estimate, not operator-reported curtailment. The Methodology page explains each model.

Limits

Request size
At most 32 KiB. One JSON-RPC message per request; batches are refused.
Result size
At most 160,000 bytes per tool result. Tools also apply their own row and period bounds.
Time
30 seconds per tool call.
Rate
About 120 requests per minute and 4 simultaneous requests per IP address.
Analyst SQL
200 rows returned, 100,000 rows scanned, 8 seconds.
Cold start
The first analyst-store query on a new server instance loads the store and takes a few seconds.
Browsers
Native clients need no Origin header. Requests from web pages are accepted only from allowed origins.

These are the server’s current limits, not a guarantee of capacity or availability. The server logs tool names, outcomes, latency and output size. It does not log request arguments or returned evidence.

What is not included

  • The separate InfraMap data-center atlas.
  • Third-party industry research. The server serves InfraMap’s reviewed datasets only.
  • Unpublished research, ingestion operations, arbitrary web or file fetching, and any write access.
  • Some price-node review evidence is internal. Results that rely on it say so and withhold it.

The full list of datasets the server reads is on Data sources.

Releases

The server is rebuilt from InfraMap Pro after each data release. The current release, data release and analyst store dates are in service.json(opens in a new tab).

October 28, 2026

  • New tool get_live_prices: 5-minute real-time prices at hubs, zones and plant pricing nodes in all seven markets, updated every 5 minutes, with day-ahead against real-time. Real-time prices are each ISO’s preliminary results.

October 26, 2026

  • The server requires sign-in with an InfraMap Pro or Enterprise account. Clients sign in through the browser; there is no API key.
  • Every tool has a display title.

October 24, 2026

  • Modeled curtailment is a range: a lower bound that assumes each generator earns the production tax credit for its first 10 years, and an upper bound that assumes no credit. See Modeled curtailment.
  • New tool get_plant_water_use: EIA cooling water joined to USGS surface water stress.
  • Prices follow reviewed price chains, including node renames and SPP’s move from WEIS to the RTO market.
  • The national curtailment model covers 1,943 plants.

October 21, 2026

  • Added the analyst store tools, the market period, revenue, curtailment and battery tools, and the grid region tools.
  • Every plant in the seven ISO and RTO markets has a reviewed price-node outcome.
  • Prices include supplemental node history from 2023 and recent days from the scheduled refresh.