Copernicus & Landsat STAC APIs Live
Standardized Model Context Protocol for Earth Science
V0.1.0 Released
Open Source Alternative to Closed Vendor Dashboards

The Agentic Protocol for
Planetary Earth Observation

Empower AI agents to autonomously discover, stream, and compute satellite analytics from free government archives. Plug directly into Claude Desktop, Cursor, Codex, Antigravity, and autonomous Python agents with zero proprietary lock-in.

$ uvx eo-mcp
Configure Claude & Cursor
JSON-RPC 2.0 • STDIO
SENTINEL-2 L2A (10m) AOI: [39.38, -0.42, 39.52, -0.31] • EPSG:32630
VEGETATION HEALTH INDEX (NDVI)
0.74 ± 0.08
Cloud cover: 1.2% • Windowed COG Range Stream: 1.4s
TRUE N
0 2.5km 5km
Band Math: (B08 - B04) / (B08 + B04)
CALCULATED FIELD SURVEY // EO-MCP
CRS: EPSG:32630 DATUM: WGS 84
STREAM: HTTP 206 COG STATUS: CALIBRATED
User > Check crop vigor and NDVI anomalies across Huerta de Valencia for the past 14 days.
// Agent calling eo-mcp tool
"tool": "calculate_spectral_index",
"arguments": {
  "collection": "sentinel-2-l2a",
  "index": "NDVI",
  "bbox": [-0.42, 39.38, -0.31, 39.52],
  "max_cloud_cover": 15
}
● Agent Insight: High photosynthetic activity detected in citrus orchards. Bounding box extracted in 1.4s using HTTP range requests from AWS Earth Search archive.

Everything you need to give LLMs eyes on Earth

Built from the ground up for agentic loops, code execution, and planetary data streaming.

Zero-Config Free Government STAC Catalogs

Works instantly out of the box with zero API keys required. Queries AWS Earth Search, NASA CMR, and Copernicus public STAC endpoints for Sentinel-2, Landsat 8/9, and Copernicus DEM. Optional CDSE credentials for direct full-granule downloads.

STAC API v1.0.0 • SpatioTemporal Asset Catalogs

Cloud-Native COG Subsetting

Never download 1GB satellite granules again. Using GDAL /vsicurl/ range requests, eo-mcp extracts only the exact bounding box pixels of your farm, city, or river in seconds.

HTTP Range Reads • 98% Bandwidth Reduction

Sentinel-1 Radar SAR (All-Weather)

Penetrate clouds and storm covers with synthetic aperture radar. Automatic backscatter amplitude/dB calibration and thresholding for real-time flood inundation mapping.

GRD • VV / VH Polarization

Copernicus DEM 30m Global Elevation

Instant terrain profiling, slope calculation, aspect, and hillshade anywhere on Earth from the gold-standard Copernicus GLO-30 dataset.

GLO-30 • 30m Resolution

Agentic Geospatial Python Sandbox

Autonomous agents can write and execute custom rasterio, xarray, and geopandas scripts on demand when complex custom spatial logic is needed.

Safe Execution • Pre-injected EO Libraries

How eo-mcp Bridges Agents to Orbit

Universal Model Context Protocol interface between conversational reasoning models and petabytes of cloud-native geospatial data.

CLIENT-SERVER ARCHITECTURE OVER STDIO / SSE
AI Agent Clients

Claude Desktop, Cursor, Codex, Antigravity, Open WebUI, AutoGen, CrewAI

eo-mcp Server

FastMCP • Catalog Router • COG Window Streamer • Band Math

Free Government Clouds

Copernicus CDSE, AWS Earth Search, NASA CMR, Planetary Computer

Open Standards vs. Proprietary Dashboards

Compare eo-mcp against closed, locked-in satellite agent platforms.

Feature eo-mcp (Open Source) Planet Labs Agent Dashboard Google Earth Engine
Open Model Context Protocol ✓ Standard MCP (JSON-RPC) ✗ Closed Proprietary UI ✗ Proprietary API
Client Interoperability ✓ Claude, Cursor, Any Agent ✗ Locked to Planet Platform ✗ Locked to GEE Console
Data Access Cost ✓ 100% Free Public Gov Data ✗ High Enterprise Paywall Commercial tiers apply
Cloud-Native COG Streaming ✓ Native Windowed HTTP Reads Proprietary streaming Proprietary tiling
Custom Python Script Execution ✓ Full In-Agent Execution ✗ Fixed UI Prompts Code Editor / EE Python
License ✓ Apache 2.0 (Open Source) ✗ Proprietary Closed Source ✗ Proprietary Closed Source

Connect your agent in 60 seconds

Add eo-mcp to your favorite AI environment with zero configuration.

Claude Desktop Configuration (claude_desktop_config.json)
{
  "mcpServers": {
    "eo-mcp": {
      "command": "uvx",
      "args": ["eo-mcp"]
    }
  }
}
Cursor IDE Setup

Go to Settings > Cursor Settings > Features > MCP, click + Add New MCP Server, name it eo-mcp, and set command to uvx eo-mcp.

Codex (CLI & Coding Agents)

Register eo-mcp into your Codex environment with a single command:

codex mcp add eo-mcp -- uvx eo-mcp
Google Antigravity IDE

Add to your workspace or global .antigravity/mcp.json:

{
  "mcpServers": {
    "eo-mcp": {
      "command": "uvx",
      "args": ["eo-mcp"]
    }
  }
}

Frequently Asked Questions

Do I need an account or API key to use eo-mcp?

No! Out of the box, eo-mcp queries public open data hosted on AWS Earth Search, Microsoft Planetary Computer, and NASA CMR STAC without requiring any login or credentials. If you want direct bulk downloads from the official Copernicus Data Space Ecosystem (CDSE), you can optionally provide your free CDSE username and password.

How does windowed COG streaming save bandwidth?

Standard satellite scenes are 500MB to 1.5GB each. When an agent requests NDVI or imagery for a specific city or field polygon, eo-mcp reads the Cloud Optimized GeoTIFF (COG) header and fetches only the byte ranges corresponding to that bounding box over HTTP. Typical requests transfer only 2 to 5 MB instead of a gigabyte.

Which satellite collections are supported?

V1 supports Sentinel-2 Level-2A (surface reflectance), Landsat 8/9 Collection 2 Level-2, Copernicus DEM GLO-30 (global elevation), Sentinel-1 GRD (radar backscatter for flood detection), Sentinel-5P TROPOMI (atmospheric NO2/aerosol), and MODIS/VIIRS.

Can I use this commercially?

Yes! eo-mcp is licensed under the permissive Apache License 2.0. You are free to build proprietary agentic workflows, enterprise platforms, or commercial tools on top of it.