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 --from git+https://github.com/eo-mcp/eo-mcp eo-mcp
Built from the ground up for agentic loops, code execution, and planetary data streaming.
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.
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.
Penetrate clouds and storm covers with synthetic aperture radar. Automatic backscatter amplitude/dB calibration and thresholding for real-time flood inundation mapping.
Instant terrain profiling, slope calculation, aspect, and hillshade anywhere on Earth from the gold-standard Copernicus GLO-30 dataset.
Autonomous agents can write and execute custom rasterio, xarray, and geopandas scripts on demand when complex custom spatial logic is needed.
Calculates difference Normalized Burn Ratio ($dNBR$) and Relativized Burn Ratio from pre- and post-fire Sentinel-2 scenes. Classifies fire damage into USGS and European EFFIS severity grades with spatial perimeter clustering.
Inverts Landsat 8/9 TIRS Band 10 ($10.895\ \mu\text{m}$) thermal infrared radiance using Sobrino surface emissivity and NDVI Fractional Vegetation Cover. Pinpoints urban heat island intensity gradients and severe thermal risk anomalies.
Multi-temporal satellite curve modeling across the agricultural calendar. Extracts Start of Season (SOS greenup), Peak of Season (POS), and End of Season (EOS) milestones to benchmark crop vigor and drought stress.
Defaults to 100% free public government cloud archives with zero setup. When advanced authenticated services are desired (Copernicus CDSE bulk granules, NASA Earthdata, Planetary Computer), credentials can be dynamically injected via configure_credentials or .env without restarting the server.
Universal Model Context Protocol interface between conversational reasoning models and petabytes of cloud-native geospatial data.
Claude Desktop, Cursor, Codex, Antigravity, Open WebUI, AutoGen, CrewAI
FastMCP • Catalog Router • COG Window Streamer • Band Math
Copernicus CDSE, AWS Earth Search, NASA CMR, Planetary Computer
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 |
Add eo-mcp to your favorite AI environment with zero configuration.
uv (One-Time Prerequisite)
uv runs eo-mcp in a fast, isolated Python sandbox without manual environment setup. Run in your terminal:
curl -LsSf https://astral.sh/uv/install.sh | sh
irm https://astral.sh/uv/install.ps1 | iex
{
"mcpServers": {
"eo-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/eo-mcp/eo-mcp", "eo-mcp"]
}
}
}
Go to Settings > Cursor Settings > Features > MCP, click + Add New MCP Server, name it eo-mcp, and set command to uvx --from git+https://github.com/eo-mcp/eo-mcp eo-mcp.
Register eo-mcp into your Codex environment with a single command:
codex mcp add eo-mcp -- uvx --from git+https://github.com/eo-mcp/eo-mcp eo-mcp
Add to your workspace or global .antigravity/mcp.json:
{
"mcpServers": {
"eo-mcp": {
"command": "uvx",
"args": ["--from", "git+https://github.com/eo-mcp/eo-mcp", "eo-mcp"]
}
}
}
If Claude or Cursor asks for a Copernicus API key before running tools, that usually means eo-mcp has not yet been connected to your client. Once configured, verify the green status dot in Cursor or the hammer icon (🔨) in Claude Desktop. Baseline satellite data streams immediately with zero config. You can also supply credentials at any time via .env or in-session if you wish to use authenticated features.
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.
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.
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.
Yes! While eo-mcp defaults to 100% free zero-config public cloud streaming so you are never blocked, it provides first-class support for your own accounts whenever useful. You can provide Copernicus CDSE credentials, NASA Earthdata tokens, or Microsoft Planetary Computer keys either in your .env file or dynamically in-session via the configure_credentials MCP tool.
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.