Exposes the Registry of Open Data on AWS (Sentinel-2 L2A) and remote-sensing analysis tools as Model Context Protocol (MCP) tools for discovering and analyzing satellite imagery from multiple open Earth-observation sources.
Four tools with complete input schemas and descriptions, but significant quality gaps. Tool names follow verb_noun pattern (search_, describe_, segment_, create_) which is good. However, descriptions are verbose and example-heavy rather than LLM-optimized. Parameters lack type constraints (enums, ranges, patterns). Output schemas are not documented. Error handling is absent. The server demonstrates domain knowledge but lacks production-grade tool design discipline.
Build a STAC Item dict (SAR extension) from basic metadata. bbox = [min_lon, min_lat, max_lon, max_lat]. assets = {"hh": "s3://.../hh.tif", "hv": "..."}.
Return STAC-style metadata for one scene (standardization preview). Demonstrates Server A's 'metadata extraction + STAC standardization' step: the same shape we use to publish national SAR ('HaiShao') with a SAR Extension.
Search the Registry of Open Data on AWS (Sentinel-2 L2A) via STAC. Args: bbox: [min_lon, min_lat, max_lon, max_lat]. Example (Hainan coast): [109.0, 18.0, 111.0, 20.0] datetime_range: STAC datetime, e.g. "2025-01-01/2025-06-30". Optional. max_items: max scenes to return (default 5). max_cloud_cover: keep scenes below this cloud-cover % (default 20). Returns a compact, agent-friendly list of scenes (id, datetime, cloud %, assets).
Segment water from a Sentinel-2 scene (or demo stub). If geoai is installed, runs a real model; otherwise returns a deterministic stub.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields without knowing what each tool returns. search_open_data returns 'compact, agent-friendly list' but structure is undefined.
Descriptions embed example values (bbox [109.0, 18.0, 111.0, 20.0], datetime '2025-01-01/2025-06-30'). LLMs reuse examples literally rather than adapting to context, causing failures on different geographies/dates.
No input validation or error guidance. If bbox is malformed, cloud_cover is negative, or datetime_range is invalid, the tool will fail silently. No recovery hints for the LLM.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Parameters lack type constraints. max_cloud_cover accepts any float (0-100 expected but not enforced). max_items accepts any integer (1-1000 expected but not enforced). No enums, ranges, or patterns in schema.
describe_item description is vague ('Return STAC-style metadata') and references internal implementation ('Server A's metadata extraction'). Does not explain when to call it vs search_open_data or what fields it returns.