MCP server
Umbra open SAR archive
io.github.reesehammer/umbra-mcp
Checked 26 Oct 2026, 08:29 UTC · Connected to it and listed its tools
Search, preview, and measure Umbra open SAR from any MCP client. Umbra ships no search API.
Working at last checkAbout 10,101 tokens per request once connected19 tools
https://api.umbra-py.space/mcp
At a glance
- Type
- MCP server
- Publisher
- Not verified
- Status
- Working at last check
- Tools
- 19
- Token cost
- About 10,101 tokens per request
- Sets up in
- Claude Code, Claude Desktop, Codex, Gemini CLI, Cursor, VS Code, Antigravity, ChatGPT, OpenAI API, Grok
- Last checked
- 26 Oct 2026, 08:29 UTC
Connect it to your agent
Opens the app, which shows the server and asks you to confirm. For other apps, copy the setup below.
Claude Code
claude mcp add --transport http umbra-mcp https://api.umbra-py.space/mcp
Claude Desktop
Settings → Connectors → Add custom connector, and paste the URL.
Codex (config.toml)
[mcp_servers.umbra-mcp] url = "https://api.umbra-py.space/mcp"
Gemini CLI
{"mcpServers":{"umbra-mcp":{"httpUrl":"https://api.umbra-py.space/mcp"}}}
Cursor
{"mcpServers":{"umbra-mcp":{"url":"https://api.umbra-py.space/mcp"}}}
VS Code
{"servers":{"umbra-mcp":{"type":"http","url":"https://api.umbra-py.space/mcp"}}}
Antigravity
agy mcp add umbra-mcp https://api.umbra-py.space/mcp
ChatGPT
Settings → Apps & Connectors → Advanced settings: turn on Developer mode, then Create a connector and paste the URL. Which plans can do this varies.
OpenAI API (Responses tools)
{"type":"mcp","server_label":"umbra-mcp","server_url":"https://api.umbra-py.space/mcp","require_approval":"always"}
Grok (xAI API tools)
{"type":"mcp","server_label":"umbra-mcp","server_url":"https://api.umbra-py.space/mcp"}
Tools
change_composite~279 tokens
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 polarizationdescribe_scene~541 tokens
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 tool ddownload_asset~601 tokens
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 actually fetch. Returnsfind_repeat_sites~1280 tokens
Rank the archive's most repeat-imaged sites — where change detection has something to measure. The discovery step *before* every analysis verb. ``change`` / ``timescan`` / ``stack`` / ``pick_change_interval`` / ``narrate_change`` all answer *what* changed at a site, but each assumesfind_similar~473 tokens
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 index by vfind_similar_text~345 tokens
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 embedded with tgeocode_place~132 tokens
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``.get_item~573 tokens
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 throughindex_stats~226 tokens
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``. ``datetimenarrate_change~432 tokens
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 refused.pick_change_interval~738 tokens
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 into aquicklook~373 tokens
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 onlsearch_catalog~1086 tokens
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 polygon object (a ``Polygon`` / ``MultiPolygon`` geometry, or a ``Feature`` / ``Featurestack_provenance~616 tokens
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 on thestack_stats~852 tokens
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-registestamp_description~337 tokens
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 shapestamp_narration~261 tokens
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 in.timescan~187 tokens
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.watch_site~769 tokens
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, come back
Browse
Related MCP servers
- Open Archives
MCP server for Open Archives: Dutch genealogical records and historical page transcriptions. - Comrades of War Archive
Search a Spanish gaming-community archive and receive exact x402 page purchase URLs. - AIS Trail
Live AIS ship positions, vessel history, port calls and events, plus sanctions flags. Read-only. - Cms
CMS Open Data MCP — US Centers for Medicare & Medicaid Services. - CADProps
Fast multi-format CAD previews, geometry checks and conversion; measure and share in the workspace. - Create Web Page
Create, edit, preview, publish, and manage web pages from MCP-capable AI clients. - Open Quality
Open healthcare quality measures: CQL, SQL and FHIR with provenance and known issues - SHIP
Assign Linear, Jira or GitHub issues to an AI coding agent team that plans, builds, reviews, tests.
Badge for your README
[](https://aptlynx.net/servers/io.github.reesehammer/umbra-mcp)
Listing text is written by the maker; AptLynx lists tools and does not vouch for them. Find another tool · Browse by topic · For agents