プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。Google でログインするとレビューを書けます。プロトタイプ · 30分ごとに更新
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

Umbra open SAR archive

作者:reesehammerバージョン 0.1.4i★ 2iパソコンでもクラウドでも
レジストリ名io.github.reesehammer/umbra-mcp

インストール方法

What it does

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

  • Connects パソコンでもクラウドでも
  • Account or key Cloud: No key needed · Local: Needs UMBRA_CANOPY_TOKEN, ANTHROPIC_API_KEY, OPENAI_API_KEY
  • Category 検索・AIの記憶

インストール

使っているAIアプリを選んで、設定をコピーしてください。

チェック 5/5 合格 · 質問内容は提供元のサーバー(api.umbra-py.space)を通ります · ✓ コマンド確認済み 2026年11月13日

まず:どの AI を使っていますか?

使っているアプリを選ぶと、下に手順が表示されます。

Claude につなげます · 約 2 分

キー不要、インストール不要 · claude.ai かデスクトップアプリで一度設定すれば、チャットで使えます · 無料アカウントは 1 つまで · Team/Enterprise はオーナー(Owner)が追加

  1. Claude の Connectors ページを開く

    CustomizeConnectors

    CustomizeConnectors1Add2https://…3Add4
  2. 「Add」→「Custom」→「Web」を押し、この 2 つを入力

    ここからコピーして Claude の同じ名前の欄に貼り付け、Continue を押します

    Name · 名前Umbra open SAR archive
    Remote MCP server URL · アドレスhttps://api.umbra-py.space/mcp

    Claude が検出したサインイン設定の画面で Continue を押す · Authentication は作者の説明どおり(Sign in now・Sign in when needed・No sign in)を選び Add を押します

  3. チャットで有効にする

    +ConnectorsUmbra open SAR archive

  4. 試してみる

    Umbra open SAR archive を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude が Umbra open SAR archive を使っていると言うか、回答に Umbra open SAR archive のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

ChatGPT との接続はプランしだい

フル MCP:Web 版 ChatGPT の Business・Enterprise・Edu · Pro:読み取り/取得の権限で接続、データを変えるツールは使えないことがあります · Plus:公式ドキュメントで未確認。プラグイン画面にカスタム MCP を追加する項目があれば試せます · Web のみ

  1. Web 版 ChatGPT で MCP の追加ページを開く

    Plugins+Add custom MCP server

    ChatGPTPlugins1+2https://…3Create4
  2. 名前とアドレスを入力

    名前を入れ、Connection にアドレスを貼り付け、注意事項にチェックして Create as a plugin を押します

    Name · 名前Umbra open SAR archive
    Connection · アドレスhttps://api.umbra-py.space/mcp
  3. チャットで Umbra open SAR archive を選ぶ

    新しいチャットを開き、入力前にプラグインの一覧から Umbra open SAR archive を選びます

  4. 試してみる

    Umbra open SAR archive を使って、私に何ができるか教えて、1 つやってみせて

    ✓ ChatGPT が Umbra open SAR archive を使っていると言うか、回答に Umbra open SAR archive のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に OpenAI のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Claude Code につなげます · 約 2 分

キー不要、インストール不要

  1. ターミナルを開く

    Mac:Command+スペースで Terminal と入力 · Windows:PowerShell を開く

  2. このコマンドを貼り付けて Enter

    claude mcp add --transport http --scope user umbra https://api.umbra-py.space/mcp
  3. Claude Code で /mcp と入力

    Umbra open SAR archive が一覧にあり、接続済みと表示されれば OK です

  4. 試してみる

    Umbra open SAR archive を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Claude Code が Umbra open SAR archive を使っていると言うか、回答に Umbra open SAR archive のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Anthropic のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Cursor につなげます · 約 2 分

キー不要、インストール不要

  1. このボタンで Cursor を開く

    Cursor で開く

    Cursor がインストールの確認をするので Install を押します

  2. Cursor の AI チャットを Agent モードで開く

  3. 試してみる

    Umbra open SAR archive を使って、私に何ができるか教えて、1 つやってみせて

    ✓ Cursor が Umbra open SAR archive を使っていると言うか、回答に Umbra open SAR archive のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に Cursor のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

VS Code につなげます · 約 2 分

キー不要、インストール不要

  1. このボタンで VS Code を開く

    VS Code で開く

    VS Code がインストールの確認をするので Install を押します

  2. VS Code の AI チャットを Agent モードで開く

  3. 試してみる

    Umbra open SAR archive を使って、私に何ができるか教えて、1 つやってみせて

    ✓ VS Code が Umbra open SAR archive を使っていると言うか、回答に Umbra open SAR archive のツール名が出れば接続成功です

メニュー名は 2026年11月11日 に VS Code のヘルプページで確認 · アプリのバージョンにより画面が少し違うことがあります

Windsurf、Zed、Gemini CLI など MCP を使える他のアプリは追加方法がそれぞれ違います。アプリ一覧で確認してください

MCP を使えるアプリをすべて見る →

Web 経由でつなぐアプリ用のアドレス

アドレスhttps://api.umbra-py.space/mcp

JSON 設定は下の「開発者向け」にあります

つまずいたら?Umbra open SAR archive を使っている人に聞いてみましょう💬 ディスカッション →
開発者向け:ターミナルのコマンドと JSON 設定

Web 経由

Claude Code

claude mcp add --transport http --scope user umbra https://api.umbra-py.space/mcp

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "umbra": {
      "url": "https://api.umbra-py.space/mcp"
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "umbra": {
      "type": "http",
      "url": "https://api.umbra-py.space/mcp"
    }
  }
}

パソコンにインストール

Claude Code

claude mcp add --scope user umbra --env UMBRA_CANOPY_TOKEN=your-value --env UMBRA_INDEX_DB=your-value --env ANTHROPIC_API_KEY=your-value --env OPENAI_API_KEY=your-value -- uvx umbra-py

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "umbra": {
      "command": "uvx",
      "args": [
        "umbra-py"
      ],
      "env": {
        "UMBRA_CANOPY_TOKEN": "your-value",
        "UMBRA_INDEX_DB": "your-value",
        "ANTHROPIC_API_KEY": "your-value",
        "OPENAI_API_KEY": "your-value"
      }
    }
  }
}

Cursor (~/.cursor/mcp.json)

{
  "mcpServers": {
    "umbra": {
      "command": "uvx",
      "args": [
        "umbra-py"
      ],
      "env": {
        "UMBRA_CANOPY_TOKEN": "your-value",
        "UMBRA_INDEX_DB": "your-value",
        "ANTHROPIC_API_KEY": "your-value",
        "OPENAI_API_KEY": "your-value"
      }
    }
  }
}

VS Code (mcp.json)

{
  "servers": {
    "umbra": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "umbra-py"
      ],
      "env": {
        "UMBRA_CANOPY_TOKEN": "your-value",
        "UMBRA_INDEX_DB": "your-value",
        "ANTHROPIC_API_KEY": "your-value",
        "OPENAI_API_KEY": "your-value"
      }
    }
  }
}

自分で入力する値

  • UMBRA_CANOPY_TOKEN 秘密 env
    Canopy API token. Set it and the same search tools query Umbra's authenticated commercial archive instead of the open bucket; leave it unset for the open data, which needs no credentials.
  • UMBRA_INDEX_DB env
    Path to a local catalog index (built with 'umbra index build' or fetched with 'umbra index fetch'). Without one the server walks the public bucket per search, which is correct but slow.
  • ANTHROPIC_API_KEY 秘密 env
    Optional. With a key, describe_scene and narrate_change call a vision model on the server. Without one they return a reading kit (picture + SAR primer) so the client's own model does the reading. A p…
  • OPENAI_API_KEY 秘密 env
    Alternative provider for the same two model tools, and the encoder behind find_similar_text.

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

ひと目でわかる

週あたりのダウンロードi
51/週
接続方法
パソコンでもクラウドでも
最新バージョンi
0.1.4
レジストリ公開日i
2026年10月27日
コードの最終更新i
2026年11月12日
作者
reesehammer
パッケージ
pypi: umbra-py
レジストリでの状態
有効

使えるアプリ

このサーバーのつなぎ方と、各アプリの公式ドキュメントに基づきます。2026年11月10日に確認。

インターネット経由でつなげるアプリ

ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast

パソコン上で動かせるアプリ

ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast

すべてのアプリと長所・短所 →

できること

ツールの名前と説明は、サーバーが2026年11月13日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。

  • 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`` / ``FeatureC

  • 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 ``se

  • 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 throu

  • 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``. ``datet

  • 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 polarizat

  • 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 int

  • 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 lo

  • 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, co

  • 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 ind

  • 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 embedded

  • 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 tool

  • 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 ref

  • 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 sh

  • 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 in

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月13日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント reesehammer で確認済みです

  • ✓ 合格

    今もメンテナンスされている

    コードの最終更新:昨日

  • ✓ 合格

    ライセンスがある

    Apache-2.0を使用

  • ✓ 合格

    エンドポイントが応答する

    37ミリ秒で応答(HTTP 200)

  • – 対象外

    OAuthでサインイン

    サインイン不要

  • ✓ 合格

    ツールの説明に隠れた指示がない

    19件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした

話し合い

質問、コツの共有、使えないことの報告ができます。「役に立った」の多い順です。

まだ投稿はありません。最初の質問や共有をどうぞ。

ここの投稿は利用者によるもので、PopNx チームのものではありません。

Google でログインして投稿

ユーザーレビュー

まだレビューはありません

Google でログインしてレビューを書く

検索・AIの記憶のほかのサーバーとの比較i

  • このカテゴリのほかの6045件のうち82%よりスターが多い
  • このカテゴリのほかの6045件のうち68%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの6045件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

Umbra open SAR archiveは安全ですか?

当てはまる基本チェック5項目のうち5項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:UMBRA_CANOPY_TOKEN, ANTHROPIC_API_KEY, OPENAI_API_KEY

パソコンで動きますか、それともクラウドですか?

どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は昨日、最新バージョン(0.1.4)がレジストリに届いたのは17 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URL で接続するので、リモート MCP を受け付けるアプリでも使えます。例:Web 版 ChatGPT(Business 以上はフル MCP、Pro は読み取りのみ)。

代わりに使えるものは?

同じカテゴリには:Context7, Codebase Memory, Ruflo

同じカテゴリのほかの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Context7

Up-to-date docs for AI agents

作者:upstash広く使われている↓ 125万/週★ 6.5万昨日更新

パソコンでもクラウドでも

Codebase Memory

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

作者:DeusData広く使われている↓ 1.7万/週★ 4.9万27 日前更新

パソコンで動く

Ruflo

Agent teams, swarms, memory and hooks for Claude Code and Codex, served over MCP.

作者:ruvnet広く使われている↓ 7.4万/週★ 8.2万 リポジトリ全体のスター今日更新

パソコンで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

umbra-py

Search, preview, load, and convert [Umbra](https://umbra.space/open-data/) open SAR data.

Umbra publishes 16–25 cm SAR as CC BY 4.0 open data, but no search API — only a 17+ TB S3 bucket and a static STAC tree. umbra-py is that layer: search, preview, download, and analysis-ready arrays without the usual 500 lines of glue. A community STAC API (umbra serve) and MCP server sit on the same host, so pystac-client and Claude can query the archive with nothing installed.

📖 Docs: umbra-py.space · Showcase: browse the archive in the browser (no install) · Already listing the bucket? Replace your crawler (HTTP, pystac-client, or DuckDB over the weekly Parquet)

Status: v0.1.4. Discovery, download, xarray loading,

SICD → geocoded COG, change/timescan composites, chips, a STAC API

(umbra serve, with a community host), and an MCP server all ship. This is

not an InSAR toolbox (phase is not preserved through convert). Not

affiliated with Umbra Lab, Inc.

Hosted API (api.umbra-py.space): best-effort 99% monthly uptime, no SLA, 120 requests/minute, page size 10,000. Limits, CORS, and the parquet fallback.

Install

pip install umbra-py              # core: search + download + metadata

pip install "umbra-py[load]" # + xarray / rasterio pip install "umbra-py[viz]" # + quicklooks, maps, galleries pip install "umbra-py[convert]" # + SICD → geocoded COG pip install "umbra-py[all]" # convert + load + viz + export

Python 3.10+. Other extras (dask, serve, mcp, ai, langchain, llamaindex) are listed in the install guide.

Five minutes to a scene

Fetch the weekly catalog snapshot, then search and preview offline. A live walk of the bucket (umbra search without --local) works but is slow.

pip install "umbra-py[viz,load]"

umbra index fetch umbra search --local --area Centerfield --product GEC --limit 3 umbra gallery --local --area Centerfield --limit 6 --out gallery.html --db

from umbra_py import CatalogIndex, to_xarray

with CatalogIndex.from_release() as index: item = next(iter(index.search(area="Centerfield", product_types=["GEC"], limit=1)))

Stream a downsampled window over HTTP — no multi-GB download. Needs [load].

da = to_xarray(item, max_size=1024, db=True) print(item.summary())

If the snapshot is missing, the same search against the live bucket is UmbraCatalog().search(...) / umbra search --area Centerfield.

What you can do

More detail, options, and caveats live in the docs.

Search by bbox, place name, polygon, or Umbra task (area=). --local reads the snapshot; omit it to walk S3.

from umbra_py import UmbraCatalog

for item in UmbraCatalog().search(area="Centerfield", product_types=["GEC"], limit=5): print(item.summary())

Preview without downloading the scene: umbra gallery, umbra quicklook --out scene.png --db, umbra view (full-res tiles), or umbra change --area Centerfield --out change.png.

Load a geocoded GEC into xarray or a GeoTIFF (to_xarray, to_geotiff, to_stack). Needs [load].

Convert a SICD to a north-up amplitude COG (sicd_to_geocoded_cog, umbra convert) — phase is discarded. Needs [convert]. Open products generally have no radiometric metadata, so --calibrate / --noise-model measured refuse rather than invent numbers. See limitations and the complex-product handoff.

Chip scenes into georeferenced ML tiles for SR / ATR-style benchmarks from open Umbra GEC/SICD: umbra chips --area Centerfield --out chips/. See the ISR training-set cookbook and Used in research.

Drive it from an agent. Copy-paste recipes for Claude Desktop and Claude Code: Connect Claude (MCP).

Zero-install remote MCP (no uvx):

# Claude Code

claude mcp add --transport http umbra https://api.umbra-py.space/mcp --scope user

{

"mcpServers": { "umbra": { "url": "https://api.umbra-py.space/mcp" } } }

Paste that JSON into Claude Desktop (claude_desktop_config.json). Claude Code needs "type": "http" on the same URL — see the MCP page.

Local stdio (server on your machine):

uvx --from 'umbra-py[mcp]' umbra-mcp
{

"mcpServers": { "umbra": { "command": "uvx", "args": ["--from", "umbra-py[mcp]", "umbra-mcp"] } } }

That command is published to the MCP registry as io.github.reesehammer/umbra-mcp. STAC for pystac-client / QGIS is https://api.umbra-py.space/ (not /mcp). docker compose -f deploy/docker-compose.yml up is the one-command self-host.

What the data looks like

AssetWhat it isUse it for
GECGeocoded cloud-optimized GeoTIFFMap-ready imagery. Start here.
CSIColor sub-aperture GeoTIFFQuick-look RGB, not a measurement
SIDDGeocoded detected image (NITF)Detected imagery in a standard format
SICDComplex slant-plane image (NITF). Open archive: RGAZIM/PFA.Phase-preserving downstream. Download; do not convert.
CPHDCompensated phase historyCustom formation *outside* umbra-py (download; do not convert). Not an image.

umbra-py downloads SICD/CPHD. umbra convert geocodes a SICD to amplitude and discards phase. It does not form interferograms or compute coherence. For a processor that needs the complex pixels, see Complex products (SICD/CPHD).

Data license & attribution

Umbra's imagery is CC BY 4.0. If you use or redistribute the data or derived products you must attribute Umbra. The copyright notice Umbra's terms require is quoted under Citing umbra-py. umbra-py also stamps this shorter line on its own outputs:

Contains Umbra open data, licensed under CC BY 4.0.

umbra-py itself is Apache 2.0 (LICENSE). The two licenses are independent and compatible.

Citing umbra-py

Cite all versions with the concept DOI 10.5281/zenodo.23676715 (Zenodo's Cite all versions? value). It resolves to the latest archived release. The v0.1.4 version DOI is 10.5281/zenodo.23676716. Machine-readable metadata lives in CITATION.cff (GitHub's Cite this repository button) and .zenodo.json (what Zenodo archives).

@software{hammerstrom2026umbrapy,

author = {Hammerstrom, Reese}, title = {umbra-py}, year = {2026}, version = {0.1.4}, doi = {10.5281/zenodo.23676715}, url = {https://github.com/reesehammer/umbra-py}, license = {Apache-2.0} }

Imagery is © Umbra Space, licensed CC BY 4.0. Umbra's terms require this copyright notice on or adjacent to adapted materials, with [YEAR] the year the image was first created:

SAR-derived data © [YEAR] Umbra Lab, Inc.

Also credit Umbra, link the license, and say if you changed the data. The open-data program is umbra.space/open-data.

Repo layout

PathRole
src/umbra_py/Package source
docs/Published user manual (mkdocs → umbra-py.space)
docs/schemas/Public JSON contracts (also in the wheel)
.github/TODO.mdMaintainer ledger of scoped-out follow-ups
deploy/Dockerfiles, docker-compose.yml, entrypoint
railway.tomlRailway Config-as-Code (dockerfilePath → deploy/Dockerfile.mcp)

Self-host: docker compose -f deploy/docker-compose.yml up (build context stays the repo root). More in docs/README.md and the deploy guide.

Community

Acknowledgements

Built on the SAR open-source community, including sarpy and Umbra's open data program. Not affiliated with or endorsed by Umbra Lab, Inc.