Skip to main content
Glama

MarketCode

Comparable lets near the property and the rent they indicate

valuation_rent_comparables
Read-onlyIdempotent
Comparable lets for a market rent, and the rent they indicate. ASKING
rents from portal adverts: no achieved rents exist, so say "asking" when
you quote them. Reads the rent adverts of the nearest units (within 1 km,
last seen in the 24 months before `as_of`), widening from 250 m and 6
months until 4 effective comparables qualify. A let qualifies when it is
the same type family (flats with flats, houses with houses; house shares
and rooms never), the same bedrooms (+/- 1 only when exact cannot reach
the minimum), and within 0.67-1.5x the subject's floor area when both are
known; others come back with `flags`. Each let:
address, distance, beds, floor area, first/last seen, `outcome`
(let_agreed | withdrawn | live | unknown), first and last asking rent,
reductions, days on market, the rent carried to the last complete month
on the asking-rent index (`carried_rent_pcm`), `adjusted_rent_pcm` (equal
to it while size adjustment is off) and its `weight` (distance, recency, size, beds,
type; let agreed counts more, an unlet reduced asking rent less).
`estimate`: central_pcm (weighted median, an achievable ASKING rent),
low_pcm/high_pcm (80% range; back-tested on let-agreed adverts: median
miss 10%, 80% coverage), n_effective, and asking_to_achieved_ratio
(ONS paid rents over the local asking median for the bedroom band, capped
0.85-1.05, 1.0 with ratio_source `none` when no cell) published BESIDE
the estimate, not applied. `time_on_market_days`: median days to let
agreed for the comparable lets. The property's own adverts are never
comparables; its latest is `subject_advert`. `status` ok | thin |
no_comparables | location_unavailable. PASS `beds`, `property_type`
(flat | terraced | semi-detached | detached | bungalow) and
`floor_area_m2` whenever you have established them: the unit record's
bedrooms are imputed for most properties, and a wrong bedroom count
doubles the miss (`subject.attributes_source` says what was used).
`as_of` YYYY-MM or YYYY-MM-DD (default today); `limit` 1-30.
UK only. Costs 10 credits (10p). Keyed on a UPRN, not an address: call `address_autocomplete` (free) to narrow, then `address_resolve` to get one.

Input Schema

NameRequiredDescriptionDefault
bedsNo
uprnYes
as_ofNo
limitNo
floor_area_m2No
property_typeNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only cover the safety profile (readOnly/idempotent/non-destructive). The description adds substantial behavioral context: 10-credit cost, UK-only scope, the adaptive widening algorithm (250m/6mo to 1km/24mo until 4 effective comps), qualification criteria, `flags` for near-misses, status outcomes, estimate methodology with back-tested accuracy, and the asking_to_achieved_ratio caveat published beside (not applied to) the estimate.

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?

The purpose and the 'asking' caveat are front-loaded, and nearly every sentence carries real information. It is nonetheless a dense block with many parenthetical clauses that could be trimmed slightly without losing meaning.

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?

Despite an output schema existing, the description fully explains return fields, the qualification/widening behavior, edge statuses (ok|thin|no_comparables|location_unavailable), and the address-to-UPRN prerequisite. Nothing an agent needs to invoke and interpret this correctly is missing.

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?

Schema coverage is 0%, but the description compensates for every parameter: beds and property_type (with enumerated values flat|terraced|semi-detached|detached|bungalow), floor_area_m2 (with the size qualification rationale), as_of format (YYYY-MM or YYYY-MM-DD, default today), limit range (1-30), and uprn (keyed on UPRN, obtained via address_resolve). This is well beyond the raw schema.

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 opening states a specific verb+resource: 'Comparable lets for a market rent, and the rent they indicate', immediately clarified as ASKING rents from portal adverts. Combined with the qualification rules and estimate output, it is unambiguous enough to distinguish from the rent-estimate and sales-comparable siblings even without naming them.

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?

It gives clear operational context: 'ASING rents... say "asking" when you quote them', the prerequisite workflow 'call address_autocomplete (free) to narrow, then address_resolve to get one', and 'PASS beds, property_type and floor_area_m2 whenever you have established them' with the reason (imputed bedrooms). It stops short of explicitly naming an alternative sibling tool and when to prefer it.

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.

Resources