Skip to main content
Glama

narrate_change

Read-only

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

NameRequiredDescriptionDefault
dbNo
urlsYes
assetNoGEC
modelNo
max_sizeNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes far beyond the single annotation (`readOnlyHint: true`) by detailing complex behavioral traits. It outlines that the tool streams Umbra COGs, requires specific server environments, and conditionally returns two entirely different payload structures based on the presence of a vision key.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

While highly technical and dense, the information is logically structured. It flows from core purpose to specific constraints and then to operational modes (public vs. local). The density is justified by the complexity of the tool itself.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The definition is exceptionally complete for such a complex tool. It covers input prerequisites (STAC format, order, polarization), execution environment constraints, and the two distinct output schemas (raw kit vs. provenance object), leaving no ambiguity about its function or use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Given that schema description coverage is 0%, the description is highly effective. It provides the necessary context for the `urls` parameter (STAC URLs, must be in time order), and sets expectations for the results, which informs how the agent should interpret the context of the input fields.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The purpose is clearly stated in the first sentence: 'Return a grounded reading of what changed between passes.' It immediately distinguishes itself as a sibling of 'describe_scene,' defining its unique function as narrating change based on deterministic data, which is critical for differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides stringent operational guidelines, including a refusal of mixed polarizations and a detailed breakdown of required setups (public vs. local hosting). It dictates precisely how inputs must be ordered (time order) and when to expect specific output formats.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.