Architecture & Data Ingestion
How autonomous agents interact with multi-petabyte government satellite archives without local storage overhead.
eo-mcp implements the Model Context Protocol (MCP) using standard JSON-RPC 2.0 messages over standard I/O (stdio) or Server-Sent Events (SSE). When an AI model (Claude, Cursor, Codex, Antigravity) reasons about an Earth science query, it generates structured tool calls that the server routes to cloud-native endpoints.
Cloud-Optimized GeoTIFF (COG) Range Streaming
Traditional geospatial software downloads entire satellite granules (typically 800 MB to 1.5 GB per scene). When querying multiple sensors or historical baselines, bandwidth constraints and disk input/output cause catastrophic latency for agentic workflows.
eo-mcp bypasses full granule ingestion entirely by utilizing HTTP GET Range requests (via GDAL virtual file system /vsicurl/ and rasterio). A typical query executes in four steps:
- Metadata Header Parse: Reads the initial 10 KB to 16 KB of the COG header to retrieve the image dimensions, tile index offsets, and coordinate reference system (CRS).
- Coordinate Window Transform: Projects the agent's WGS84 bounding box (
[min_lon, min_lat, max_lon, max_lat]) into pixel window offsets corresponding to internal COG tiles. - Targeted Byte Range Retrieval: Fetches only the discrete byte ranges containing the required pixel clusters across individual spectral bands.
- Vectorized In-Memory Computation: Decodes pixel blocks into NumPy float32 arrays, applies physical calibration factors, executes band math, and returns statistical metrics and GeoTIFF assets.
Bandwidth Reduction: Reduces payload from ~1,100 MB down to 2.8 MB (a 98.7% bandwidth reduction) while completing full spectral index computations in under two seconds.
1. Optical & Multispectral Biophysical Tools
Planetary-scale vegetation health, canopy structure, surface moisture, and multi-temporal agricultural dynamics.
Streams calibrated surface reflectance bands from open Cloud-Optimized GeoTIFFs and evaluates mathematical index formulas. Supports vegetation vigor, canopy moisture, soil composition, and burn characteristics.
Mathematical Foundations: Optical Biophysics & Multispectral Band Math →Radiative Transfer Science & Spectral Signatures
Photosynthetically active vegetation exhibits a pronounced spectral signature: strong absorption in the red chlorophyll absorption band (0.64 - 0.67 µm) coupled with high scattering in the Near-Infrared (NIR) leaf mesophyll plateau (0.83 - 0.88 µm). This sharp transition (the "red edge") allows quantitative separation of green biomass from bare soil, rock, and water bodies.
| Parameter | Type | Default | Description |
|---|---|---|---|
collection | string | "sentinel-2-l2a" | Satellite target: sentinel-2-l2a or landsat-c2-l2. |
index | string | "NDVI" | Supported indices: NDVI, NDWI, MNDWI, NBR, EVI, SAVI, NDRE. |
bbox | list[float] | required | WGS84 bounding box: [min_lon, min_lat, max_lon, max_lat]. |
datetime_range | string | "2024-06-01/2024-06-30" | ISO 8601 acquisition window. |
max_cloud_cover | float | 20.0 | Maximum allowable scene cloud contamination percentage. |
{
"name": "calculate_spectral_index",
"arguments": {
"collection": "sentinel-2-l2a",
"index": "NDVI",
"bbox": [-0.42, 39.38, -0.31, 39.52],
"datetime_range": "2024-06-01/2024-06-30",
"max_cloud_cover": 15.0
}
}
Constructs a chronological time series of vegetation indices across agricultural seasons to identify key biological milestones: green-up, maximum photosynthetic activity, senescence, and harvest timing.
Mathematical Foundations: Crop Phenology Dynamics & Curve Fitting →Phenological Curve Fitting & Agricultural Milestones
Vegetation growth exhibits an asymmetric sigmoidal trajectory. eo-mcp calculates seasonal baseline amplitude:
- Start of Season (SOS): Calendar date where rising spring NDVI crosses the 20% threshold, denoting leaf emergence or crop germination.
- Peak of Season (POS): The apex of photosynthetic activity (\(NDVI_{max}\)), indicating full canopy closure.
- End of Season (EOS): Date where post-peak NDVI drops below the 20% threshold due to crop ripening, senescence, or harvesting.
- Length of Season (LOS): Total duration in days between SOS and EOS (\(LOS = t_{EOS} - t_{SOS}\)).
- Integrated Seasonal NDVI: Time-integral representing net primary agricultural biomass productivity, aligned with European Common Agricultural Policy (CAP) monitoring mandates.
| Parameter | Type | Default | Description |
|---|---|---|---|
bbox | list[float] | required | Target agricultural parcel bounding box. |
year | int | 2024 | Growing season year to evaluate. |
crop_type | string | "general" | Crop profile (e.g. wheat, corn, vineyard). |
format | string | "summary" | Output formatting: summary, geojson, or csv. |
Evaluates surface water shrinkage in inland lakes, reservoirs, and wetlands across multi-year baselines, tracking transitions between permanent and seasonal water bodies to classify drought severity.
Mathematical Foundations: Surface Water Dynamics & Reservoir Drought →Hydrological Depletion & Surface Water Transition
Water body area is extracted by segmenting multi-temporal MNDWI layers using bimodal Otsu thresholding. By comparing a historical baseline year (\(t_0\)) to modern acquisitions (\(t_1\)), the tool delineates surface water dynamics:
2. Thermal Infrared & Wildfire Analytics
Radiative transfer equations, calibrated Land Surface Temperature, and active thermal anomaly detection.
Extracts calibrated Land Surface Temperature (LST in Celsius) from thermal infrared radiance and computes Urban Heat Island (UHI) thermal anomaly intensities relative to surrounding rural vegetative buffers.
Mathematical Foundations: Radiative Transfer LST & Sobrino Emissivity →Planck Inverse Law & Emissivity Threshold Modeling
Thermal infrared detectors measure spectral radiance (\(L_\lambda\)) at the top of the atmosphere. Deriving physical surface temperature requires atmospheric and surface emissivity corrections:
Urban Heat Island Intensity (\(\Delta T\)): Evaluated by establishing a rural buffer perimeter (\(NDVI > 0.40\)) and computing \(\Delta T = LST_{pixel} - \overline{LST}_{rural}\). Areas with \(\Delta T > 4.0^\circ\text{C}\) are flagged as severe microclimate vulnerability zones under EU Climate Adaptation benchmarks.
| Parameter | Type | Default | Description |
|---|---|---|---|
bbox | list[float] | required | Target metropolitan area bounding box. |
datetime_range | string | "2024-06-01/2024-08-31" | Summer acquisition date window. |
format | string | "summary" | Format: summary, geojson, or csv. |
Quantifies wildfire burn severity, biomass consumption, and soil scorch levels by computing pre-fire vs post-fire differenced Normalized Burn Ratios (dNBR and RdNBR).
Mathematical Foundations: Burn Severity & Relativized Burn Ratio (RBR) →Differenced Burn Ratio & USGS CBI Stratification
Active healthy vegetation reflects strongly in NIR and absorbs SWIR. Wildfire combustion removes leaf canopy (collapsing NIR reflectance) and exposes dry charcoal, ash, and bare soil (elevating SWIR reflectance).
Severity Tiers (USGS / European Forest Fire Information System EFFIS):
< +100: Unburned / post-fire vegetation regrowth.+100 to +269: Low Severity (surface scorch, canopy intact).+270 to +439: Moderate-Low Severity (needle scorch, shrub mortality).+440 to +659: Moderate-High Severity (heavy canopy mortality).> +660: High Severity (complete tree mortality, soil mineral breakdown).
Connects directly to open NASA FIRMS active fire feeds to retrieve near-real-time thermal hotspots, brightness temperatures, and Fire Radiative Power (FRP in Megawatts), automatically clustering active fire fronts using spatial proximity algorithms.
Mathematical Foundations: Active Wildfire FRP & Thermal Radiometry →Wien's Displacement Law & Fire Radiative Power
According to Wien's Displacement Law (\(\lambda_{max} = b / T\)), active flaming combustion (800 K to 1200 K) shifts peak thermal emission from ambient thermal wavelengths (~10 µm) into the mid-wave infrared (MWIR: 3.7 µm - 4.0 µm, VIIRS Band I4).
3. Radar & Maritime Intelligence (SAR)
Synthetic Aperture Radar physics, radar cross-section backscatter, and dark vessel identification.
Performs cloud-penetrating, day-and-night surface water delineation using Sentinel-1 C-Band Synthetic Aperture Radar (SAR) Ground Range Detected (GRD) backscatter.
Mathematical Foundations: C-Band SAR Backscatter & Water Delineation →Specular Reflection vs Rough Surface Backscatter
Radar sensors transmit active microwave pulses and record the energy backscattered to the antenna (\(\sigma^0\), sigma nought in decibels, dB).
- Smooth Open Water: Behaves as a specular reflector. The incoming microwave pulse bounces away from the sensor at an equal and opposite angle, producing an absence of return signal (\(\sigma^0 \le -16.0 \, \text{dB}\) to \(-22.0 \, \text{dB}\), appearing dark in radar imagery).
- Rough Vegetated Terrain: Produces diffuse volume scattering (\(\sigma^0 \approx -8.0 \, \text{dB}\) to \(-12.0 \, \text{dB}\)).
- Built Structures & Ships: Act as dihedral corner reflectors, bouncing signals directly back to the antenna (\(\sigma^0 \ge 0.0 \, \text{dB}\) to \(+15.0 \, \text{dB}\), appearing intensely bright).
Because C-band microwaves (wavelength \(\lambda = 5.6 \, \text{cm}\)) pass through cloud droplets, precipitation, and smoke unimpeded, detect_water_sar provides all-weather flood mapping when optical imagery is blinded.
Applies Constant False Alarm Rate (CFAR) radar detectors to extract metallic vessel targets from Sentinel-1 SAR imagery and cross-references their spatial positions against live open AIS transponder records to flag unreported "Dark Vessels".
Mathematical Foundations: CA-CFAR Target Detection & AIS Fusion →Sea-State Adaptive Constant False Alarm Rate (CA-CFAR) Radar Detection
In dynamic ocean environments, sea clutter shifts dramatically with wind-driven capillary waves, swells, and sea spray. Fixed-threshold detection either floods operators with false alarm wave crests or misses stealth targets. eo-mcp introduces Sea-State Adaptive CA-CFAR:
Candidate targets with Radar Cross Section (RCS) exceeding local threshold \(T_{local}\) are measured for spatial elongation (estimated vessel length in meters). The server then queries open maritime AIS transponder feeds (e.g. Digitraffic Baltic open feeds). Radar targets lacking an AIS broadcast within a 1.5 km spatial tolerance are flagged as Unreported Dark Vessels, directly supporting maritime safety, border surveillance, and illegal fishing (IUU) enforcement.
| Parameter | Type | Default | Description |
|---|---|---|---|
bbox | list[float] | required | Target maritime bounding box [min_lon, min_lat, max_lon, max_lat]. |
datetime_range | string | required | Date or observation window (e.g. "2024-06-01/2024-06-30"). |
ais_source | string | "open_baltic_api" | AIS telemetry source: open_baltic_api or custom. |
pfa_factor | float | 3.2 | CFAR multiplier above ocean clutter standard deviation. |
sea_state | string | "auto" | Ocean surface roughness: auto, calm, moderate, or rough. |
format | string | "summary" | Output format: summary, geojson, or csv. |
4. Coastal Dynamics, Inundation & Terrain
Sub-pixel shoreline extraction, Digital Shoreline Analysis System transect change rates, and hydrologic flood routing.
Quantifies coastal shoreline retreat and accretion rates (in meters/year) between historical and modern satellite observations using automated bimodal Otsu waterline segmentation and perpendicular cross-shore transects.
Mathematical Foundations: DSAS Coastal Dynamics & Sub-pixel Waterlines →Digital Shoreline Analysis System (DSAS) Methodology
Shoreline extraction begins by computing Modified Normalized Difference Water Index (MNDWI) rasters. An automated Otsu threshold separates land from water by maximizing inter-class variance (\(\sigma_B^2\)):
Following morphological boundary thinning, cross-shore transects are cast perpendicular to an inland baseline at regular intervals (e.g. 50m). Shoreline change is calculated via the End Point Rate (EPR):
Simulates coastal sea-level rise and storm surge inundation on Copernicus DEM GLO-30 elevation data, applying hydrologic connectivity algorithms to eliminate false positive flooding in isolated inland depressions.
Mathematical Foundations: Copernicus DEM & 8-Neighbor Inundation →8-Neighbor Hydrologic Flood-Fill & IPCC AR6 Projections
Simple "bathtub" elevation slicing produces major inaccuracies by classifying inland dry valleys below sea level as submerged, even when protected by natural coastal ridges. eo-mcp enforces an 8-connected hydrologic flood-fill algorithm:
- Initializes open oceanic boundary seed pixels at datum \(z \le 0.0 \, \text{m}\).
- Simulates total elevated water surface: \(Z_{water} = Z_{SLR} + Z_{surge}\).
- Recursively propagates water into adjacent terrain cells only if elevation \(z \le Z_{water}\) AND a contiguous 8-connected water path to the sea exists.
Built-in IPCC Sixth Assessment Report (AR6) scenarios:
SSP1-2.6: Sustainability scenario (+0.44m median global SLR by 2100).SSP2-4.5: Intermediate emissions scenario (+0.56m median global SLR by 2100).SSP5-8.5: High emissions fossil-fueled scenario (+0.77m median global SLR by 2100).
Extracts topographic elevation, terrain slope gradients, and aspect orientation from the gold-standard Copernicus Digital Elevation Model (GLO-30) without local raster downloads.
Mathematical Foundations: Copernicus DEM & Topographic Derivatives →5. Atmospheric & Trace Gas Telemetry
Differential optical absorption spectroscopy and urban air quality directive compliance.
Queries Copernicus Sentinel-5P TROPOMI spectrometer STAC endpoints to extract tropospheric vertical column densities for Nitrogen Dioxide (NO₂), Sulfur Dioxide (SO₂), Carbon Monoxide (CO), and Methane (CH₄), correlating space-based observations with ground-level OpenAQ stations.
Mathematical Foundations: TROPOMI DOAS Atmospheric Spectroscopy →Differential Optical Absorption Spectroscopy (DOAS)
The TROPOMI instrument (TROPOspheric Monitoring Instrument) aboard Sentinel-5P measures ultraviolet, visible, near-infrared, and shortwave infrared backscatter with a daily global revisit.
DOAS isolates trace gas absorption cross-sections from broad atmospheric Rayleigh and aerosol scattering, yielding Tropospheric Vertical Column Densities (\(VCD\) in \(\mu\text{mol}/\text{m}^2\) or \(\text{mol}/\text{m}^2\)):
Regulatory Thresholds Aligned:
- NO₂: Clean baseline: < 40 µmol/m²; Elevated urban traffic: 85 µmol/m²; Industrial plume: > 150 µmol/m² (EU Directive 2008/50/EC).
- CH₄ (Methane): Clean: ~1,850 ppb; Critical super-emitter plume: > 2,000 ppb (EU Methane Regulation 2024/1787).
- SO₂: Volcanic and coal power emission threshold: > 50 µmol/m² (Industrial Emissions Directive 2010/75/EU).
6. Discovery, Geocoding & Sandbox Execution
Spatial indexing, catalog exploration, authenticated egress, and safe arbitrary Python code execution.
Translates natural language place names (e.g. "Huerta de Valencia, Spain", "Gulf of Corinth", "Lake Chad", "Imperial Valley, CA") into standardized WGS84 bounding boxes [min_lon, min_lat, max_lon, max_lat] required by all downstream satellite discovery and processing engines.
| Parameter | Type | Status | Description |
|---|---|---|---|
query | string | required | Natural language place name, municipality, watershed, or landmark. |
{
"name": "eo_geocode",
"arguments": {
"query": "Valencia, Spain"
}
}
Queries open government spatio-temporal catalogs (AWS Earth Search, NASA CMR, Copernicus CDSE public endpoints) to discover available satellite scenes matching spatial bounds, cloud cover constraints, and acquisition dates.
| Parameter | Type | Default | Description |
|---|---|---|---|
bbox | list[float] | required | WGS84 bounding box: [min_lon, min_lat, max_lon, max_lat]. |
datetime_range | string | required | ISO 8601 acquisition window, e.g. "2024-06-01/2024-06-30". |
collections | list[string] | ["sentinel-2-l2a"] | Collections to search: sentinel-2-l2a, landsat-c2-l2, cop-dem-glo-30. |
max_cloud_cover | float | 20.0 | Maximum cloud cover percentage threshold. |
limit | integer | 10 | Maximum number of scenes returned. |
{
"name": "stac_search",
"arguments": {
"bbox": [-0.42, 39.38, -0.31, 39.52],
"datetime_range": "2024-06-01/2024-06-30",
"collections": ["sentinel-2-l2a"],
"max_cloud_cover": 15.0,
"limit": 5
}
}
Allows autonomous coding agents to execute customized Python workflows in an isolated runtime environment pre-injected with rasterio, numpy, shapely, xarray, and geopandas for specialized mathematical analyses beyond standard predefined tools.
| Parameter | Type | Status | Description |
|---|---|---|---|
script_code | string | required | Complete executable Python code to run in the geospatial sandbox. |
{
"name": "run_geospatial_script",
"arguments": {
"script_code": "import numpy as np\narr = np.random.rand(10, 10)\nprint('Mean:', float(arr.mean()))"
}
}
Dynamically configures or updates external satellite provider credentials in-session without restarting the server. Unlocks advanced authenticated features (such as official CDSE full-granule SAFE downloads, NASA Earthdata restricted collections, or Microsoft Planetary Computer signed keys) whenever useful.
| Parameter | Type | Default | Description |
|---|---|---|---|
provider | string | required | Target provider: "cdse", "earthdata", "planetary_computer", or "firms". |
username | string | None | User email or account login name. |
password | string | None | Account password. |
token | string | None | Bearer token or subscription key. |
{
"name": "configure_credentials",
"arguments": {
"provider": "cdse",
"username": "user@university.edu",
"password": "••••••••••••"
}
}
Safely inspects active credential configurations and zero-config public mode status across all supported satellite catalog providers. Masks secrets to prevent leaking credentials into agent conversational memory.
{
"name": "get_credential_status",
"arguments": {}
}
Generates authenticated download links, OData API manifests, and direct curl commands to pull official full-granule SAFE package archives from the European Space Agency Copernicus Data Space Ecosystem.
| Parameter | Type | Default | Description |
|---|---|---|---|
product_id | string | required | CDSE Product UUID or Granule Identifier. |
output_dir | string | None | Local target folder for downloaded files. |
username | string | None | CDSE username (if not already set via environment). |
password | string | None | CDSE password (if not already set via environment). |
{
"name": "download_copernicus_granule",
"arguments": {
"product_id": "b1b7a2d4-1a3b-4c5d-6e7f-8a9b0c1d2e3f",
"output_dir": "./data/sentinel_granules"
}
}
Scientific Literature & Validation Standards
Peer-reviewed foundational citations and regulatory directives governing the algorithms implemented in eo-mcp.
- Rouse, J. W., Haas, R. H., Schell, J. A., & Deering, D. W. (1974). Monitoring vegetation systems in the Great Plains with ERTS. Third Earth Resources Technology Satellite-1 Symposium, 1, 309-317. NASA SP-351.
- McFeeters, S. K. (1996). The use of the Normalized Difference Water Index (NDWI) in the delineation of open water features. International Journal of Remote Sensing, 17(7), 1425-1432. DOI: 10.1080/01431169608948714.
- Xu, H. (2006). Modification of normalised difference water index (NDWI) to enhance open water features in remotely sensed imagery. International Journal of Remote Sensing, 27(14), 3025-3033. DOI: 10.1080/01431160600589179.
- Huete, A., Didan, K., Miura, T., Rodriguez, E. P., Gao, X., & Ferreira, L. G. (2002). Overview of the radiometric and biophysical performance of the MODIS vegetation indices. Remote Sensing of Environment, 83(1-2), 195-213.
- Key, C. H., & Benson, N. C. (2006). Landscape Assessment (LA): Sampling and Analysis Methods. FIREMON: Fire Effects Monitoring and Inventory System, Gen. Tech. Rep. RMRS-GTR-164-CD. Fort Collins, CO: U.S. Department of Agriculture, Forest Service, Rocky Mountain Research Station.
- Miller, J. D., & Thode, A. E. (2007). Quantifying burn severity in a heterogeneous landscape with a relative version of the delta Normalized Burn Ratio (RdNBR). Remote Sensing of Environment, 109(1), 66-80.
- Sobrino, J. A., Jiménez-Muñoz, J. C., & Paolini, L. (2004). Land surface temperature retrieval from LANDSAT TM 5. Remote Sensing of Environment, 90(4), 434-440.
- Wooster, M. J., Roberts, G., Perry, G. L. W., & Kaufman, Y. J. (2005). Retrieval of biomass combustion rates and totals from fire radiative power observations: Calibration relationships between actively burning fires and total smoke emissions. Journal of Geophysical Research: Atmospheres, 110(D24).
- Otsu, N. (1979). A threshold selection method from gray-level histograms. IEEE Transactions on Systems, Man, and Cybernetics, 9(1), 62-66.
- IPCC (2021). Climate Change 2021: The Physical Science Basis. Contribution of Working Group I to the Sixth Assessment Report of the Intergovernmental Panel on Climate Change. Cambridge University Press, Cambridge, UK and New York, NY, USA.
- European Commission (2007). Directive 2007/60/EC of the European Parliament and of the Council on the assessment and management of flood risks (EU Floods Directive).
- European Commission (2008). Directive 2008/50/EC on ambient air quality and cleaner air for Europe.