Renewable Grid Intelligence Atlas MCP

Renewable Grid Intelligence Atlas MCP

Enables AI agents to search and retrieve cited evidence packs for renewable energy assets, analyze locations, and access regional energy context, all from a local DuckDB snapshot of Aragon renewable infrastructure data.

Category
访问服务器

README

Renewable Grid Intelligence Atlas

Aragon-first geospatial intelligence project for renewable energy infrastructure.

The atlas ingests public energy and environmental datasets, normalizes them into a local canonical model, serves them through a deterministic API, renders an interactive MapLibre UI, and exposes local MCP tools that return cited evidence packs for AI agents.

The goal is not to make legal, permitting or grid-connection decisions. The goal is to show a practical, inspectable data product around renewable assets: source ingestion, geospatial normalization, evidence retrieval, guardrails, local analytics and an agent-ready interface.

Renewable Grid Intelligence Atlas MVP

What The Demo Does

Current MVP scope is deliberately narrow:

  • Region: Aragon, Spain.
  • Assets: wind and solar PV renewable generation projects.
  • Data model: normalized renewable assets with source provenance.
  • Enrichment:
    • municipality and province from Aragon administrative boundaries;
    • bounded PVGIS solar-potential estimates;
    • MITECO environmental zoning context;
    • REE regional electricity-generation context.
  • Serving layer:
    • FastAPI read API over DuckDB;
    • Vite + React + MapLibre frontend;
    • local MCP server over the same DuckDB snapshot.
  • Evidence: cited evidence packs with source URLs, license notes, retrieval timestamps, raw record identifiers and limitations.

The first public snapshot contains 1,351 Aragon assets:

  • 855 solar PV assets;
  • 496 wind assets;
  • 25 cached PVGIS solar estimates;
  • 1,351 MITECO environmental context records;
  • 2025 REE regional electricity context for Aragon.

Quick Start With Docker

Requirements:

  • Docker;
  • Docker Compose.

Start the API and UI:

docker compose up --build

Open:

On the first run, the API container checks whether data/processed/canonical/atlas.duckdb exists inside the Docker volume. If it does not, it builds the local snapshot before starting the API.

The Docker data volume is named renewable-grid-intelligence-atlas_rgia-data. To force a clean rebuild:

docker compose down -v
docker compose up --build

Useful environment variables:

RGIA_SNAPSHOT_DATE=2026-07-05
RGIA_PVGIS_LIMIT=25
RGIA_REE_YEAR=2025
VITE_API_BASE_URL=http://127.0.0.1:8000

Example:

RGIA_PVGIS_LIMIT=5 docker compose up --build

MCP

The MCP server is local-first and does not require project-owned OpenAI, Anthropic, Azure or other LLM API keys. Your MCP client/model provides any LLM credentials.

Run the MCP server locally:

uv run serve-rgia-mcp

Run it through Docker:

docker compose run --rm mcp

Available tools:

  • search_renewable_assets
  • get_renewable_asset_evidence
  • analyze_renewable_location
  • get_source_quality
  • get_regional_energy_context

Example MCP client configuration:

{
  "mcpServers": {
    "rgia": {
      "command": "uv",
      "args": ["run", "serve-rgia-mcp"],
      "cwd": "/path/to/renewable-grid-intelligence-atlas"
    }
  }
}

Docker-based MCP configuration:

{
  "mcpServers": {
    "rgia": {
      "command": "docker",
      "args": ["compose", "run", "--rm", "mcp"],
      "cwd": "/path/to/renewable-grid-intelligence-atlas"
    }
  }
}

See MCP smoke-test examples.

Local Development Without Docker

Requirements:

  • Python 3.12+;
  • uv;
  • Node.js and npm.

Install dependencies:

uv sync
cd frontend
npm install
cd ..

Build the current local MVP snapshot:

uv run build-rgia-snapshot \
  --snapshot-date 2026-07-05 \
  --pvgis-limit 25 \
  --ree-year 2025

Start the API:

uv run serve-rgia-api

Start the frontend in another terminal:

cd frontend
npm run dev

Run checks:

uv run ruff check .
uv run pytest
cd frontend
npm run lint
npm run build

API Examples

Health:

curl http://127.0.0.1:8000/api/health

Search Aragon solar PV assets in Zaragoza municipality:

curl "http://127.0.0.1:8000/api/assets?province=Zaragoza&municipality=Zaragoza&technology=solar_pv&limit=3"

Get an evidence pack:

curl "http://127.0.0.1:8000/api/assets/aragon-open-data:321:31064/evidence"

Analyze a map location:

curl "http://127.0.0.1:8000/api/locations/analyze?lat=41.65&lon=-0.88&radius_km=25&limit=5"

Architecture

The repository is split into explicit layers:

  • backend/src/renewable_grid_atlas/ingestion/: source ingestion, source-specific normalization and canonical output generation.
  • backend/src/renewable_grid_atlas/schemas/: Pydantic schemas and public JSON Schema export.
  • backend/src/renewable_grid_atlas/api/: FastAPI read API over DuckDB.
  • backend/src/renewable_grid_atlas/mcp/: MCP tools over the same canonical DuckDB snapshot.
  • backend/src/renewable_grid_atlas/evals/: deterministic guardrail eval cases.
  • backend/src/renewable_grid_atlas/benchmarks/: local DuckDB benchmark command.
  • frontend/: Vite, React and MapLibre UI.
  • docs/: requirements, architecture notes, source research, schema examples, evidence samples and demo limitations.

The ingestion pattern is source-isolated:

  1. Each public source has its own ingestor and source-specific normalized output.
  2. Canonical merge code builds stable project records.
  3. Every canonical record keeps provenance: source_name, source_url, retrieved_at, license, raw_record_id and confidence.
  4. API, UI and MCP all read from the same canonical DuckDB snapshot.

This keeps source-specific mess out of the domain model and makes it possible to add another autonomous community later without hardcoding Aragon assumptions through the whole codebase.

Data Sources

Included in the MVP:

Source Used For Why It Is Included
Aragon Open Data Renewable wind and solar asset geometries, status and capacity Primary Aragon-first renewable asset source with clear reuse terms.
Aragon Open Data / IDEARAGON boundaries Municipality and province enrichment Independent administrative-boundary source, separated from the asset source.
MITECO environmental zoning Environmental sensitivity context for wind/PV assets Public national environmental zoning layers useful as contextual evidence.
PVGIS Bounded solar-potential estimates Public JRC service, used conservatively and cached locally.
REE REData Regional Aragon generation mix Regional context only, not asset-level production or grid capacity.

Not included yet:

  • CNMC capacity maps: technically useful and already inspected, but blocked for automated ingestion until service-level reuse and attribution are explicit for the ArcGIS FeatureServer payloads.
  • Spain-wide coverage: intentionally deferred until the Aragon-first data model, evidence shape and source-boundary pattern are stable.
  • Private maps or paid APIs: excluded from the MVP.
  • Project-owned LLM APIs: excluded by design. LLM clients should call the MCP tools with their own credentials.

More detail:

Evidence And Guardrails

The project avoids asking an LLM to invent conclusions. It returns structured, cited facts and explicit limitations.

Examples:

Important limitations:

  • REE data is regional context, not asset-level generation.
  • MITECO context is environmental zoning evidence, not permitting approval.
  • PVGIS values are local solar-resource estimates, not project production.
  • CNMC grid-capacity data is not ingested yet.
  • The project must not be used as legal, permitting or engineering advice.

Benchmarks And DuckDB Examples

Run local benchmarks:

uv run benchmark-rgia-local --iterations 5

See:

Project Status

This is a work in progress local MVP. The current focus is making the Aragon-first data/API/UI/MCP path credible, reproducible and inspectable before expanding to more regions or adding phase-2 products such as permitting watchers.

Current tracker:

License

No project license has been selected yet.

Source datasets keep their own reuse terms and attribution requirements. See data source research and the provenance stored on each normalized record.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选