Skip to main content
Glama
karthikravva

MCP Energy Hub

by karthikravva

⚑ MCP Energy Hub

Real-Time Energy Grid Intelligence for Carbon-Aware AI

Python 3.11+ MCP Protocol FastAPI License: MIT

GitHub Stars GitHub Forks

Enterprise-grade MCP server providing real-time US power grid intelligence for carbon-aware AI compute scheduling

πŸ“– Documentation β€’ πŸš€ Quick Start β€’ 🀝 Contributing β€’ πŸ“œ License


🎯 The Problem

AI compute is exploding, but the grid isn't always green.

  • Data centers consume 1-2% of global electricity and growing rapidly

  • AI training runs can emit as much CO2 as 5 cars over their lifetime

  • Most AI workloads run without awareness of grid carbon intensity

  • Enterprises lack tools to schedule compute when renewables are high

πŸ’‘ The Solution

MCP Energy Hub is an enterprise-grade MCP server that gives AI agents real-time visibility into the US power grid, enabling carbon-aware compute scheduling.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    πŸ€– AI Agent (Claude, etc.)                    β”‚
β”‚                              β”‚                                   β”‚
β”‚                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”                        β”‚
β”‚                    β”‚   MCP Protocol    β”‚                        β”‚
β”‚                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                        β”‚
β”‚                              β”‚                                   β”‚
β”‚              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                  β”‚
β”‚              β”‚      ⚑ MCP Energy Hub         β”‚                  β”‚
β”‚              β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚                  β”‚
β”‚              β”‚  β”‚ 8 MCP Tools for Energy  β”‚  β”‚                  β”‚
β”‚              β”‚  β”‚ Grid Intelligence       β”‚  β”‚                  β”‚
β”‚              β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚                  β”‚
β”‚              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                  β”‚
β”‚                              β”‚                                   β”‚
β”‚    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”       β”‚
β”‚    β–Ό             β–Ό           β–Ό           β–Ό             β–Ό       β”‚
β”‚ β”Œβ”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”       β”‚
β”‚ β”‚ERCOTβ”‚     β”‚CAISOβ”‚     β”‚ PJM β”‚     β”‚NYISOβ”‚     β”‚MISO β”‚       β”‚
β”‚ β”‚Texasβ”‚     β”‚Califβ”‚     β”‚ Mid β”‚     β”‚ NY  β”‚     β”‚Midwest      β”‚
β”‚ β””β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”˜       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

✨ Key Features

Feature

Description

🌍 7 Grid Regions

ERCOT, CAISO, PJM, NYISO, MISO, SPP, ISONE

⚑ Real-Time Data

Live from EIA (US Energy Information Administration)

🌱 Carbon Intensity

kg CO2/MWh for each region, updated hourly

πŸ”‹ Generation Mix

Natural gas, coal, nuclear, wind, solar, hydro

🏒 Data Center Tracking

Energy estimates, PUE, AI workload impact

🎯 Smart Scheduling

Find the greenest region for your compute

πŸ“Š AI Impact KPIs

Track AI's share of grid load

πŸ”Œ MCP Native

Full Model Context Protocol support


πŸ› οΈ MCP Tools

8 Tools for Energy Intelligence

Tool

Description

Use Case

get_grid_realtime

Real-time grid metrics

Monitor current load & generation

get_grid_carbon

Carbon intensity + recommendation

Carbon-aware scheduling

get_grid_forecast

Load & carbon forecast

Plan future workloads

list_grid_regions

Available grid regions

Discover coverage

get_data_centers

Data center info

Track facilities

get_data_center_energy

Energy consumption estimates

Audit energy use

get_ai_impact

AI compute KPIs

Measure AI's grid footprint

get_best_region_for_compute

Find greenest region

Optimize for carbon/cost

Example: Carbon-Aware Scheduling

# AI Agent asks: "Where should I run this training job?"

result = mcp.call_tool("get_best_region_for_compute", {
    "optimize_for": "carbon"
})

# Response:
{
    "recommendation": "CAISO",
    "reason": "Lowest carbon intensity at 180 kg CO2/MWh",
    "rankings": [
        {"region": "CAISO", "carbon": 180, "renewable_pct": 45},
        {"region": "ERCOT", "carbon": 320, "renewable_pct": 28},
        {"region": "PJM", "carbon": 420, "renewable_pct": 12}
    ]
}

πŸš€ Quick Start

Prerequisites

Installation

# Clone the repository
git clone https://github.com/your-username/mcp-energy-hub.git
cd mcp-energy-hub

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Configure environment
cp .env.example .env
# Edit .env and add your EIA_API_KEY

Run the Server

# Start the FastAPI server
python -m uvicorn app.main:app --reload --port 8000

# Or run the standalone MCP server (for Claude Desktop)
python mcp_server.py

Try the API

# Get carbon intensity for Texas grid
curl -X POST http://localhost:8000/mcp/tools/call \
  -H "Content-Type: application/json" \
  -d '{"name": "get_grid_carbon", "arguments": {"region_id": "ERCOT"}}'

Example Response

{
  "success": true,
  "result": {
    "region_id": "ERCOT",
    "timestamp": "2024-11-28T22:00:00Z",
    "carbon_intensity_kg_per_mwh": 320.5,
    "renewable_fraction_pct": 28.3,
    "recommendation": "Good - Moderate carbon intensity"
  }
}

Connect to Claude Desktop

Add to your Claude Desktop MCP settings (claude_desktop_config.json):

{
  "mcpServers": {
    "energy-hub": {
      "command": "python",
      "args": ["/absolute/path/to/mcp-energy-hub/mcp_server.py"],
      "env": {
        "EIA_API_KEY": "your-api-key-here"
      }
    }
  }
}

πŸ“Š API Endpoints

Endpoint

Method

Description

/docs

GET

Interactive Swagger UI

/mcp/info

GET

MCP server information

/mcp/tools

GET

List all MCP tools

/mcp/tools/call

POST

Execute an MCP tool

/grid/regions

GET

List grid regions

/grid/{region}/realtime

GET

Real-time metrics

/grid/{region}/carbon

GET

Carbon intensity

/health

GET

Health check


πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                     MCP Energy Hub                          β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚   FastAPI    β”‚  β”‚  MCP Server  β”‚  β”‚  Data Ingestion  β”‚ β”‚
β”‚  β”‚   REST API   β”‚  β”‚  (8 Tools)   β”‚  β”‚  (EIA Collector) β”‚ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚         β”‚                 β”‚                    β”‚           β”‚
β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β”‚
β”‚                           β”‚                                β”‚
β”‚                    β”Œβ”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”                        β”‚
β”‚                    β”‚  SQLite DB  β”‚                        β”‚
β”‚                    β”‚ Grid Metricsβ”‚                        β”‚
β”‚                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                    External Data Sources                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”‚
β”‚  β”‚   EIA   β”‚  β”‚  ERCOT  β”‚  β”‚  CAISO  β”‚  β”‚   PJM   β”‚      β”‚
β”‚  β”‚   API   β”‚  β”‚   API   β”‚  β”‚   API   β”‚  β”‚   API   β”‚      β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🌍 Real-World Impact

For Enterprises

  • Reduce carbon footprint by scheduling AI workloads during high-renewable periods

  • Cost optimization by running compute when energy prices are low

  • ESG reporting with accurate AI energy consumption data

For AI Developers

  • Carbon-aware training - Train models when the grid is green

  • Transparent impact - Know your model's carbon footprint

  • Automated scheduling - Let AI agents make green decisions

Potential Impact

  • If 10% of AI workloads shifted to low-carbon periods: ~500,000 tons CO2/year saved

  • Real-time visibility enables 30-50% carbon reduction for flexible workloads


πŸ”§ Tech Stack

Component

Technology

Backend

FastAPI, Python 3.11

Database

SQLite (HF) / PostgreSQL (Production)

MCP Protocol

Native implementation

Data Source

EIA Open Data API

Deployment

Docker, Hugging Face Spaces


πŸ“ Project Structure

mcp-energy-hub/
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ main.py              # FastAPI application
β”‚   β”œβ”€β”€ config.py            # Configuration
β”‚   β”œβ”€β”€ api/routes/          # REST endpoints
β”‚   β”œβ”€β”€ mcp/                  # MCP server implementation
β”‚   β”‚   β”œβ”€β”€ server.py        # MCP protocol handler
β”‚   β”‚   β”œβ”€β”€ tools.py         # Tool definitions
β”‚   β”‚   └── routes.py        # HTTP MCP endpoints
β”‚   β”œβ”€β”€ ingestion/           # Data collectors
β”‚   β”‚   └── eia_collector.py # EIA API integration
β”‚   └── models/              # Database models
β”œβ”€β”€ mcp_server.py            # Standalone MCP server (stdio)
β”œβ”€β”€ Dockerfile               # HuggingFace deployment
└── README.md                # This file

οΏ½ Docker Deployment

# Build the Docker image
docker build -t mcp-energy-hub .

# Run the container
docker run -p 8000:8000 -e EIA_API_KEY=your-key mcp-energy-hub

πŸ§ͺ Testing

# Run tests
pytest

# Run with coverage
pytest --cov=app --cov-report=html

🀝 Contributing

Contributions are welcome! Please see our Contributing Guidelines for details.

  1. Fork the repository

  2. Create a feature branch (git checkout -b feature/amazing-feature)

  3. Commit your changes (git commit -m 'Add amazing feature')

  4. Push to the branch (git push origin feature/amazing-feature)

  5. Open a Pull Request


πŸ™ Acknowledgments

  • Anthropic - For creating the MCP protocol

  • EIA - For open energy data APIs

  • FastAPI - For the excellent web framework


πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.



Made with ❀️ for sustainable AI

Helping AI compute become carbon-aware, one query at a time ⚑🌱

⭐ Star this repo if you find it useful!

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/karthikravva/MCP-Energy-Hub'

If you have feedback or need assistance with the MCP directory API, please join our Discord server