Skip to main content
Glama
cenogram-mcp-server

cenogram-mcp-server

Official

get_transaction_roads

Read-only

Get per-plot road-access evidence for one transaction: distances to the nearest public road, any road and motorway, plus access indicators flagging what to verify before concluding.

Instructions

Plot-by-plot road-access evidence for one transaction, to judge how its land sits relative to the road network: per linked plot, the distance in meters to the nearest public road (500 m), the nearest road of any kind (500 m) and the nearest motorway/expressway/dual-carriageway (3 km; a traffic-nuisance proxy, not access) - plus, for the nearest public road, the estimated distance to its carriageway EDGE (null when the source has no width), its management category and functional class, and whether it runs at ground level (false = viaduct or tunnel). Each plot carries access_indicator (likely / uncertain / unlikely) and its rule version. access_indicator is GEOMETRIC EVIDENCE from carriageway centrelines in reference road data. It does NOT determine legal access or say anything about easements and rights of way (land register, not published here) - a lead to verify, never a conclusion. A null distance means no such road within the radius in the reference data - NEVER a guarantee none exists; assessed=false = not evaluated yet. For a parcel with no transaction, get_parcel_report has a one-line road-access summary. Cost: 4 tokens (refunded when there is no informative 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. Addedv0.12.0

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only declare readOnlyHint/destructiveHint, yet the description adds substantive behavior: explicit cost (4 tokens, refunded when there is no informative data), the meaning of null distances, assessed=false semantics, and the carriageway-edge null case when the source lacks width. It also bounds interpretation, stating categorically that the indicator is geometric evidence and never a legal-access conclusion.

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-loaded with purpose before the field list, and every clause carries information (radii, null meaning, legality caveat, cost). It runs long at roughly 150 words, but the dashes and parentheses keep it scannable and no sentence is filler.

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?

No output schema exists, yet the description fully describes the return shape per plot, including access_indicator values and rule version, plus edge cases (null, assessed=false). Cost and interpretation limits are covered. An agent has everything needed to call and read the result correctly.

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 description coverage is 50% — only transaction_id documents itself as 'Transaction id (UUID) from a search result. This or transactionId is required.' The description adds nothing about the two-parameter alias (transactionId vs transaction_id) or which form to prefer. With trivial UUID parameters the schema does most of the work, so baseline 3 fits.

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?

States a specific verb and resource: plot-by-plot road-access evidence for a single transaction, and enumerates exactly what it returns (nearest public road, any road, motorway distances, carriageway-edge distance, management category, functional class, ground-level flag, access_indicator). This is clearly distinguishable from siblings like get_transaction_transit or get_transaction_surroundings without opening the schema.

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

Usage Guidelines4/5

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

Gives a clear purpose statement ('to judge how its land sits relative to the road network') and names a concrete alternative for the no-transaction case: get_parcel_report's one-line road-access summary. It also warns that the motorway distance is a nuisance proxy, not an access measure. No explicit 'do not use this when' exclusion versus other transaction_* siblings, but the routing guidance is strong.

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