NestDaddy

Umbra open SAR archive

io.github.reesehammer/umbra-mcp · v0.1.4

Search, preview, and measure Umbra open SAR from any MCP client. Umbra ships no search API.

Connect Remote server

Terminal
claude mcp add --transport http umbra-mcp https://api.umbra-py.space/mcp
~/.cursor/mcp.json
{
  "mcpServers": {
    "umbra-mcp": {
      "url": "https://api.umbra-py.space/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "umbra-mcp": {
      "type": "http",
      "url": "https://api.umbra-py.space/mcp"
    }
  }
}
Claude Desktop
Settings > Connectors > Add custom connector
URL: https://api.umbra-py.space/mcp

Tools 19 found in our last check

  • search_catalog

    Search Umbra's catalog and return compact context cards. Filters (all optional, combine freely): ``bbox`` as ``[min_lon, min_lat, max_lon, max_lat]`` in WGS84 degrees; ``intersects`` as a GeoJSON object (a ``Point``, ``Polygon``, or ``MultiPolygon``, or a ``Feature`` / ``Feature…

  • find_repeat_sites

    Rank sites imaged more than once, before a change tool is pointed at one. Use this when the site is not already known. Each site's ``hrefs`` are that site's STAC URLs, oldest first, ready for ``pick_change_interval``, ``change_composite``, or ``stack_stats``. Prefer this, or ``s…

  • get_item

    Return the full context card for one item. ``url`` is the JSON URL of an open-data STAC sidecar, a GEC/SICD (or other product) filename such as ``2025-05-17-17-43-46_UMBRA-08_GEC.tif``, or the acquisition stem ``2025-05-17-17-43-46_UMBRA-08``. A filename or stem is resolved thro…

  • geocode_place

    Resolve a free-text place name to a bounding box via Nominatim. Returns ``{"bbox": [min_lon, min_lat, max_lon, max_lat], "display_name": ...}`` so the agent can inspect the box before searching, or pass it straight to ``search_catalog``'s ``bbox``.

  • index_stats

    Report on the local catalog index, if one has been built or fetched. Lets a long-running agent decide whether searches will be instant (index present) or pay a live S3 walk, and how stale the snapshot is. ``end`` is the newest acquisition that is not ``datetime_suspect``. ``date…

  • quicklook

    Return a scene's quicklook PNG as an image block. Prefers a baked catalog preview (``preview="auto"``, the default) so a public host can show the radar scene without proxying Umbra COGs. **A baked preview is typically 512 px** (the published weekly sidecar). ``max_size`` applies…

  • change_composite

    Composite 2-3 passes of one site into a change image. Pass the STAC URLs of two or three acquisitions of the *same* site in time order. Colors encode change: bright green = signal appeared after the first date, magenta = signal vanished, grey = unchanged. Refuses to mix polariza…

  • timescan

    Summarize a whole time series into one activity image. Pass the STAC URLs of a site's passes; the timescan encodes per-pixel temporal statistics so bright/colored areas are *where activity happened* over the series. Returns the image block plus attribution.

  • stack_stats

    Measure how much a site changed across its passes, as numbers. The quantitative counterpart to ``change_composite`` / ``timescan``: those return a picture of *where* change is, this returns the *how much*. Pass the STAC URLs of a site's passes (2 or more, any order); they are co…

  • stack_provenance

    Check whether a site's passes are one measurement, before measuring them. ``stack_stats`` refuses a selection whose rasters were made by *different* ``umbra convert`` settings — a calibrated pass differenced against an uncalibrated one puts the difference between two conversions…

  • pick_change_interval

    Scan a site's whole series and name the two passes worth narrating. The deterministic first half of the "watch a site over time" story, and the step that turns a wall of passes into an answer. Given the STAC URLs of a site's passes (2 or more, any order), it co-registers them in…

  • download_asset

    Download one asset of an item to local disk, gated by a size check. SAR products can be multiple GB, so this is a two-step handshake: call it first with ``confirm=False`` (the default) to get the byte size without downloading, then again with ``confirm=True`` to fetch it. On a l…

  • watch_site

    Report only the acquisitions **new** since the last check of this site. SAR's value for monitoring is its cadence, so the natural workflow is *standing*: run the same search each time and act only on what changed. This tool packages that idempotent delta — call it in one turn, c…

  • find_similar

    Find archived scenes that **look like** the acquisition at ``url``. This is the one search that lives in the pixels, not the metadata: where ``search_catalog`` filters by date/bbox/task-name, this renders the query item's quicklook, embeds it, and ranks the pre-embedded scene in…

  • find_similar_text

    Find archived scenes matching a plain-language ``query`` over their imagery. Text-to-scene search: embeds ``query`` ("ships at a berth", "a flooded field") and ranks the stored *image* vectors by cosine similarity. It only works when the index was built and this query is embedde…

  • describe_scene

    Return a SAR-literate reading of the scene at ``url``. The picture and the metadata card are produced deterministically; a model only interprets them. How that model is reached depends on whether this process holds a vision key: - **No key** (the public community host): this too…

  • narrate_change

    Return a grounded reading of *what changed* between passes. Sibling of :func:`describe_scene`. The composite and the per-block dB grid are produced deterministically; a model only narrates change those numbers support. Pass the STAC URLs in time order; mixed polarizations are re…

  • stamp_description

    Validate a client-produced scene reading and stamp provenance. This is the interpretation boundary for the no-key kit path: you read the picture ``describe_scene`` returned, produce ``{summary, observed_features, confidence, caveats}``, and pass it here. The library checks the s…

  • stamp_narration

    Validate a client-produced change narration and stamp provenance. Sibling of :func:`stamp_description` for the no-key ``narrate_change`` kit. Pass the JSON you produced plus the ``change_stats`` grid from the kit so the stamped object carries the numbers the prose was grounded i…

Details

Endpointhttps://api.umbra-py.space/mcp (Streamable HTTP)
Package[email protected] (PYPI, stdio)
First published26 Oct 2026
Last updated26 Oct 2026
Registry nameio.github.reesehammer/umbra-mcp

More search and web servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.