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 refused.
This tool **streams Umbra COGs** to build the composite, so a public
community host refuses it (use a local ``uvx --from 'umbra-py[mcp]'
umbra-mcp`` server, or describe each pass with :func:`describe_scene` /
:func:`quicklook` on baked previews). On a local server:
- **No vision key:** returns the composite as an MCP image block plus a
reading kit (SAR change primer, the dB grid, the JSON schema). **You**
(the client's model) narrate, grounded in the numbers.
- **Key configured:** sends picture + grid to that vision model, validates
through ``parse_narration``, and returns a provenance-stamped
``{summary, changes[], confidence, caveats[], change_stats}`` object.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| db | No | ||
| urls | Yes | ||
| asset | No | GEC | |
| model | No | ||
| max_size | No |