Docs/Open data/MCP Server

MCP Server

Public MCP server: query InfraSure data, including governed annual wholesale pricing context, from Claude Desktop, Claude.ai, ChatGPT, Cursor, Windsurf, Zed via one shareable URL. 18 tools, anonymous, rate-limited.

InfraSure runs a public MCP (Model Context Protocol) server that exposes the platform's energy data — 15,500+ operating plants, 9,800+ interconnection-queue projects, 8,000+ active data centers, 32,799 wholesale pricing nodes, and 57K+ classified news articles — to any LLM client that speaks MCP. Plug one URL into Claude.ai, Claude Desktop, ChatGPT (Apps SDK), Cursor, Windsurf, or Zed and ask natural-language questions over the same data the website serves.

Public, anonymous, free. Rate-limited at 30 requests/minute per IP. No login or API key required.

Connection URL

text
https://www.infrasure.ai/api/mcp

Streamable HTTP transport per the MCP 2025-11-25 spec. Use the www. subdomain — the apex redirects 307 and some MCP clients don't follow redirects.

Three ways to connect

Claude.ai web (no install)

  1. Go to claude.aiSettings Connectors
  2. Click Add custom connector
  3. Paste the URL above

Claude Desktop

On newer builds: Settings Developer (or Connectors) → Add MCP server → paste the URL.

For older builds, edit ~/Library/Application Support/Claude/claude_desktop_config.json:

json
{
  "mcpServers": {
    "infrasure": {
      "url": "https://www.infrasure.ai/api/mcp"
    }
  }
}

Then quit and re-open Claude Desktop fully (Cmd-Q on macOS).

Cursor / Windsurf / Zed

Each has its own MCP settings location, but the URL above is what you paste. Cursor caps tools at 40 per agent — this server publishes 18, well within the limit.

Tool catalog

Eighteen tools span entity lookups, annual wholesale pricing, search, news, comparison, methodology, and aggregation. Each response carries _meta.as_of and _meta.source attribution.

ToolWhat it does
search_plantsFilter operating plants by query, fuel, state, ISO, capacity, owner.
get_plantFull plant detail plus governed pricing context only when an accepted generator-to-node link exists.
get_projectFull JSONB blob for one queue project by slug.
search_projectsFilter queue projects by query, state, region, technology, status, MW, developer, queue year.
search_data_centersFilter production data centers by query, state, ISO/RTO, type, stage, operator, and known MW.
get_data_centerPublic facility detail plus a bounded same-market pricing-node spatial reference when available.
get_pricing_node_historyAnnual USD/MWh node history; source-backed by default, with modeled backfills available only by explicit opt-in.
search_newsSearch news articles by query, entity link, lane (COMMITMENT/CONSTRAINT/CONTEXT), event type, date.
get_news_extractedResolution-layer canonical facts (developer, EPC, PPA, milestones) for one entity.
find_by_extracted_factReverse-lookup: every entity where a fact has a specific value. The differentiator.
find_methodologyRank governed InfraSure analysis methods for a decision question.
get_methodologyLoad one selected methodology and its allowed/blocked claim contract.
search_live_evidenceSearch governed, dated ISO/RTO and federal current-state evidence.
compare_entitiesSide-by-side grid of 2–8 entities (plants and/or projects). Supports nested-field paths.
aggregateGROUP BY plants/projects on state/fuel/iso/tech/status/owner with count/sum/avg metrics.
nearby_plantsPlants near a given plant_id by Haversine distance, pre-computed.
plants_by_ownerPlants owned/operated by a company (substring across canonical_owner / utility / parent).
get_aggregate_news_statsPre-computed news distribution by category/state/fuel/source/owner.

Example prompts

Once connected, ask in plain language. The LLM picks the right tool(s) and renders the result.

  • “Find solar plants in Texas above 500 MW.”
  • “Who owns the largest plants in CAISO?”
  • “Show me NextEra Energy's biggest solar projects.”
  • “What battery projects in Texas are over 100 MW in the queue?”
  • “Find operating hyperscale data centers in Virginia and show their reported power.”
  • “Show the source-backed annual wholesale price history for the pricing reference near this data center.”
  • “Total solar capacity by state, top 10.”
  • “Compare Palo Verde Nuclear and Diablo Canyon.”
  • “Recent CONSTRAINT-lane news about wind projects.”
  • “Every project where the developer is Primergy Solar.”

Provenance

Every response carries source attribution. Where a fact comes from a single underlying source (a plant's EIA-reported capacity, a FERC-filed financial line), that source is named. Where a fact is resolved from multiple news articles (developer, EPC, PPA terms), the resolution carries an as_of date, confidence score, and counts of supporting + total articles. Downstream LLMs can cite back to the primary source — they don't need to invent attribution.

Pricing follows an additional relationship contract. Plants receive a pricing node only through an accepted generator-grain link; InfraSure does not infer one from a name or distance. A data-center node is a provisional same-market spatial reference within 5 km, not proof of utility service or settlement. Annual history is wholesale USD/MWh, not a live price, plant capture price, retail tariff, demand charge, utility bill, or contracted price. Source-backed values are the default; modeled years require explicit opt-in and remain labeled.

Discovery

A machine-readable server card lives at /.well-known/mcp/server-card.json for directory crawlers (PulseMCP, mcp.so) and clients that probe before connecting.

Send to a friend

Copy this verbatim:

text
Hey — there's a public MCP server with US energy-infrastructure data
(plants, queue projects, data centers, annual wholesale pricing, and news). Plug this URL
into any LLM client (Claude, ChatGPT, Cursor):

  https://www.infrasure.ai/api/mcp

In Claude.ai or Claude Desktop: Settings → Connectors →
Add custom connector → paste URL.

Then ask things like "find solar plants in Texas above 500 MW",
"who owns Palo Verde", or "show the source-backed annual wholesale
price history near this data center". Free, anonymous, 30 req/min per IP.

Limits + roadmap

  • 30 requests/minute per IP (sliding window). Heavy tools (compare_entities, aggregate) cost more rate-limit budget.
  • 429s carry standard X-RateLimit-* headers + a JSON-RPC error response.
  • Section-gating on get_plant / get_project to trim payload by section is on the roadmap. Today these return the full JSONB blob.
  • Pricing-node coordinates are reference points. Data-center proximity is bounded and same-market, but it is not a utility-service or electrical-connectivity assertion.
  • Per-tool API keys + OAuth 2.1 are deferred. Anonymous + rate limit is the v1 model.
  • A .mcpb Desktop Extension for one-click install is planned but not shipped yet.