Skip to main content
Glama
cenogram-mcp-server

cenogram-mcp-server

Official

get_transaction_landslide

Read-only

Get a parcel-level landslide-hazard breakdown for a transaction, including the worst category, share of each plot inside mapped zones, and per-zone details from official 1:10,000 maps.

Instructions

Parcel-by-parcel landslide-hazard breakdown for one transaction, from official landslide-hazard maps (1:10,000): per linked plot intersecting a mapped hazard area - the worst category ('landslide' = a mapped landslide area, 'threatened' = an area threatened by mass movements), the share of the plot inside the zones, and the per-zone list (with source_version_date, the source-record version date, not an observation date). At this scale an intersection means overlap with a mapped area, not that the parcel itself is a landslide. Use it after a search whose result shows landslide_risk (inline in search_transactions and search_by_area, not search_by_polygon). For a parcel with no transaction, get_parcel_report gives the share and zone kinds. Land in no mapped zone returns nothing - absence of data is never an assertion of safety. Cost: 4 tokens (refunded when there is no landslide data).

Input Schema

NameRequiredDescriptionDefault
transactionIdNo
transaction_idNoTransaction id (UUID) from a search result. This or transactionId is required.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changedv0.18.0
    • addedInput schema / properties / transactionId
      Added value: +{
      +  "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",
      +  "type": "string"
      +}
    • changedInput schema / properties / transaction_id / description
      Previous value: -"Transaction id (UUID) from a search_transactions / search_by_area / search_by_polygon result."New value: +"Transaction id (UUID) from a search result. This or transactionId is required."
    • removedInput schema / required
      Removed value: -[
      -  "transaction_id"
      -]
  2. First observedv0.5.0

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare this is a non-destructive read; the description goes well beyond by disclosing pricing (4 tokens, refunded when no landslide data), the scale caveat (intersection means overlap with a mapped area, not that the parcel is a landslide), the meaning of source_version_date, and the crucial empty-result semantics ('absence of data is never an assertion of safety'). That last point is the kind of behavioral nuance structured fields cannot convey.

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?

Front-loads the core capability, then usage, then caveats and cost — a sensible ordering with no filler sentences. It is dense and the deeply nested parenthetical defining source_version_date forces re-reading, but every sentence carries information an agent needs.

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

Completeness4/5

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

The description effectively documents the return shape (worst category, share of plot in zones, per-zone list) despite there being no output schema, and covers cost, negative results, and scale limits. The only remaining gap is guidance on the two mutually-exclusive transaction id parameters, which matters somewhat given both are optional in the schema.

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

Parameters3/5

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

Schema coverage is 50%: transaction_id carries a description naming it as the UUID from a search result, while transactionId is undocumented in the schema. The description establishes what the input represents ('for one transaction') but never explains the duplicated alias or that either field satisfies the requirement, leaving the agent to reconcile two near-identical parameters itself. Adequate baseline, but it does not fully compensate for the coverage gap.

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 description names a specific resource and scope: parcel-by-parcel landslide-hazard breakdown for a single transaction, sourced from 1:10,000 official hazard maps. It also defines the domain vocabulary ('landslide' vs 'threatened') so the agent understands the output categories, and it is clearly separable from siblings like get_transaction_flood or get_parcel_report.

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?

Explicit trigger: call it after a search whose result shows landslide_risk, and it even names which search tools surface that field (search_transactions, search_by_area) and which do not (search_by_polygon). It also names the alternative for transactions-less parcels (get_parcel_report), which is exactly the when-to-use-another-tool guidance the dimension asks for.

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