Google Earth Engine workflows made easy: harmonized multi-sensor composites, indices, exports - plus an MCP server for AI-assisted geospatial analysis
Geeflow provides complete, typed parameter schemas for all 10 tools with clear descriptions. Tool names follow verb_noun conventions (gee_init, catalog_search, build_composite). However, descriptions are inconsistent in depth, some tools lack context on when to use them vs. alternatives. Output schemas are not formally documented in the code. Error handling is minimal; most tools lack recovery guidance. The composite registry pattern (in-memory _COMPOSITES dict) is clever but undocumented in tool descriptions, forcing users to infer the composite_id workflow. Parameter descriptions are generally good (72-char baseline met), but some lack constraint details (e.g., reducer enum values not listed in build_composite description).
Build a cloud-masked, harmonized composite for a year and month window.
Search the Earth Engine data catalog by keywords.
Add spectral index bands to a composite.
Catalog metadata for an exact dataset id (e.g. "COPERNICUS/S2_SR_HARMONIZED").
Export a composite to Google Drive (target="drive") or an EE asset (target="asset").
Initialize Earth Engine. Call this first in every session.
Output schemas not documented. Tools return dicts/lists but LLMs cannot see field structure. E.g., catalog_search returns list[dict] with unknown fields; region_stats returns dict with unknown keys. Forces LLMs to guess downstream field names.
Composite registry pattern (composite_id) is undocumented in tool descriptions. Users must infer that build_composite returns an ID used by later tools. No description explains the session-scoped registry or lifetime of composites.
Enum constraints not listed in descriptions. E.g., build_composite reducer defaults to 'median' but valid values (median, mean) not stated in description. compute_indices indices param lists examples but not as formal enum. Forces LLMs to guess valid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Per-band statistics over the composite's region (reducer: mean, median, minMax, stdDev).
Sample reference polygons from categorical land-cover products.
Count available scenes per sensor over a region and date range.
A PNG thumbnail URL for visual inspection.
Error handling absent. No tool catches invalid composite_id, malformed GeoJSON, or out-of-range dates with actionable recovery guidance. E.g., _get() raises ValueError but no suggestion to call build_composite first.
Mutually exclusive parameters not documented. E.g., scene_availability and build_composite accept both (lat, lon, radius_m) and aoi_geojson but descriptions don't state they're mutually exclusive. LLMs may pass both, causing ambiguous behavior.