Skip to main content
Glama

MarketCode

Search land, units or buildings in a district or small area

sourcing_search
Read-onlyIdempotent
Find land parcels, property units or buildings matching search criteria — the
sourcing tool. Give a `location` (place name, area code or postcode
district) or a `bbox`.

AREA LIMIT: one scan covers at most 150 km². A whole town or local
authority (Harrogate, Cheltenham, Farnham, most boroughs) is usually larger
and is refused with `area_too_large`, which lists the postcode districts
covering it. Search a large place district by district: pass one postcode
district per call as `location` ("HG1", then "HG2"), or a `bbox` no more
than 0.5° on a side. Nothing is charged for a refused area.

STRATEGY MODE (preferred). Pass a `strategy` key from
`sourcing_strategies` with `lad_code` or `postcode_district`, and the
search runs the published preset: its filters, its ranking, and a
`score_components` breakdown on every row saying which term earned what.
Override any published filter with `strategy_overrides` — `{"min_yield_pct":
8}` — or pass null for a key to switch that filter off. An unknown key is
rejected rather than ignored. `listing_state` restricts to on- or
off-market units; page with `cursor` from `next_cursor`. Strategy mode
ignores the legacy filters below.

Filter land by use class and `max_built_coverage` (built footprint as a
share of plot, so 0.2 finds substantially empty plots), units by type,
bedrooms, EPC band and tenure, and either by owner — `min_years_owned` is
the usual off-market signal, and `owner_types` separates companies from
public bodies.

Returns parcels with ownership attached where the bulk register knows it.
For land or units, use sourcing_owners to resolve a specific set afterwards.

PARKS, HEATHS, RAILWAYS, CEMETERIES AND UTILITY LAND ARE EXCLUDED BY
DEFAULT. The scan is ordered by parcel size, and the largest parcels in any
area are its open spaces — unfiltered, a Camden search returned Regent's
Park, Hampstead Heath, a cemetery and railway land as its top six, while
13,047 residential parcels in the same borough never appeared. Pass
`include_undevelopable=True` to see them; they come back with no indicative
land value, because a residual on a heath is a meaningless number that
reads as an authoritative one.

BUILDINGS: asset="buildings" searches recorded footprints with footprint
area, storey count, unit count, dominant EPC and tenure. Supply one location,
bbox or drawn polygon. Results include matching footprints and stable
building IDs for linked-unit inspection. Page with offset, limit up to 100.
Unit/owner/strategy criteria are rejected for buildings.

INVENTORY PAGINATION: for land or units, supply offset=0, then next_offset
while has_more is true. These bounded pages apply every criterion before
pagination; derived-score/strategy criteria are not accepted in this mode.
Unit size uses min/max_floor_area_m2; land and buildings use min/max_area_m2.
Repeated warehouse reads are cached for five minutes. Results remain metered
by the gateway. No unknown tenure or EPC is asserted to meet a positive filter.

UK only. Costs 40 credits (40p).

Input Schema

NameRequiredDescriptionDefault
bboxNo
assetNoland
limitNo
cursorNoSTRATEGY MODE ONLY: `next_cursor` from the previous page. Inventory pages use `offset`.
epc_inNo
offsetNo
tenureNo
landuseNo
min_rlvNo
lad_codeNoSTRATEGY MODE scope (GSS code, e.g. E09000032). Without a strategy, pass the code as `location` instead.
locationNo
max_bedsNo
min_bedsNo
strategyNoA preset key from `sourcing_strategies`. Turns on strategy mode.
max_unitsNo
min_scoreNo
min_unitsNo
max_floorsNo
min_floorsNo
max_area_m2No
min_area_m2No
owner_typesNo
area_geojsonNo
listing_stateNoSTRATEGY MODE ONLY, units only: restrict to on- or off-market units. Rejected without `strategy`. For what is on the market now use `sourcing_live_listings`.
require_ownerNo
company_statusNo
property_typesNo
min_years_ownedNo
max_floor_area_m2No
min_floor_area_m2No
postcode_districtNoSTRATEGY MODE scope (e.g. SW11). Without a strategy, pass it as `location`.
max_built_coverageNo
opportunities_onlyNo
strategy_overridesNoSTRATEGY MODE ONLY. Values for the preset's own filter keys.
exclude_owner_typesNo
max_unexpired_yearsNo
include_undevelopableNo

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?

Well beyond the readOnly/idempotent annotations, the description discloses failure behaviour (`area_too_large` with a postcode-district list), cost (40 credits), five-minute caching, gateway metering, rejection of unknown strategy keys, and the two incompatible pagination regimes (cursor vs offset). The parks/heaths exclusion paragraph explains the ranking mechanism and its consequence, which is exactly the kind of context an agent cannot get from structured fields.

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 the core verb and location requirement, then organised into labelled blocks (AREA LIMIT, STRATEGY MODE, BUILDINGS, INVENTORY PAGINATION) that match how an agent would navigate 37 parameters. It is long and occasionally repeats pagination/cost facts across sections, but most sentences earn their place given the tool's complexity.

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?

For a 37-parameter tool with sparse schema documentation, the description covers the decision-critical surface: area limits, mode selection, exclusion defaults, pagination, cost and UK-only scope, and an output schema exists so return values needn't be restated. Small gaps remain around the unexplained legacy filters (min_rlv, min_score, max_unexpired_years, company_status) that an agent would have to guess at.

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

Parameters4/5

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

Schema coverage is only 16% across 37 parameters, so the description carries a heavy load and does define the important ones: location/bbox, strategy + strategy_overrides semantics (null disables, unknown rejected), listing_state, cursor vs offset, min_years_owned as an off-market signal, owner_types, max_built_coverage, and the floor-area vs area split. However several non-obvious parameters are never mentioned — min_rlv, min_score, opportunities_only, max_unexpired_years, company_status, exclude_owner_types, require_owner — leaving real gaps against a 16% schema baseline.

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 three concrete resources (land parcels, property units, buildings) and explicitly names itself 'the sourcing tool', which separates it from analysis-oriented siblings like area_report or market_profile. Sibling routing is reinforced by naming sourcing_owners, sourcing_strategies and sourcing_live_listings for adjacent jobs.

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?

Gives explicit when-to-use and how-to-work-around guidance: one scan is capped at 150 km², so oversized places must be searched district by district or via a small bbox, and 'Nothing is charged for a refused area' tells the agent the retry cost. It also declares strategy mode 'preferred', states that strategy mode ignores legacy filters, and points to sourcing_live_listings for current market stock.

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