Docs/Features/MCP Server

MCP Server

Public MCP server: query renewablesinfo.org data from Claude Desktop, Claude.ai, ChatGPT, Cursor, Windsurf, Zed via one shareable URL. 12 tools, anonymous, rate-limited.

renewablesinfo.org runs a public MCP (Model Context Protocol) server that exposes the platform's energy data — 15,500+ operating plants, 9,800+ interconnection-queue projects, 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.renewablesinfo.org/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": {
    "renewables-info": {
      "url": "https://www.renewablesinfo.org/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 12, well within the limit.

Tool catalog

Twelve tools span entity lookups, search, news, comparison, 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 JSONB blob for one plant by EIA plant_id.
search_projectsFilter queue projects by query, state, region, technology, status, MW, developer, queue year.
get_projectFull JSONB blob for one queue project by slug.
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.
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?”
  • “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.

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 power-plant data
(15K plants, owners, capacity, fuel, ISO, news). Plug this URL
into any LLM client (Claude, ChatGPT, Cursor):

  https://www.renewablesinfo.org/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"
or "who owns Palo Verde". 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.
  • 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.