# GetMovely

> Sold prices, tenure, EPC, owner-occupancy and price checks for 25m homes in England and Wales. Free.

- name: uk.co.getmovely/getmovely
- version: 0.3.0
- connection class: R0 (autonomous)
- trust: 82/100 flags: no-repository
- quality: 97/100 (new)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/uk.co.getmovely%2Fgetmovely
- tools: https://api.protogrid.dev/v1/servers/uk.co.getmovely%2Fgetmovely/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "getmovely": {
      "type": "http",
      "url": "https://getmovely.co.uk/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 97
- freshness: 100
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-92% +updated-3d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 97/100 (new)

### protocol: 100 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- pass `protocol.list_ttl`: tool list is cacheable (ttlMs 21600000)

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 94 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 23 of 23 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- warn `tools.token_cost`: about 8,098 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`, `stability.new_links`: tool history recorded for 3 of the 7 days needed

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 23, about 8,098 tokens to load them all
- tool set hash: f67c59ed33f40e615422a57561a779f7
- tools last changed: 2026-11-13T02:35:08.092Z
- badge: [![protogrid quality](https://protogrid.dev/badge/uk.co.getmovely/getmovely.svg)](https://protogrid.dev/servers/uk.co.getmovely/getmovely)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-13 `draft_letter` added
  - Hand a letter the person has agreed with you to GetMovely. Returns `letter_url`: a link that opens the letter composer for that home on getmovely.co.uk with the text already filled in, where the person reads it, can edit it, and sends it themselves (free; sending needs a free account, and GetMovely prints and posts it). Nothing is sent and nothing is stored by this call: the text travels inside the link. Checks the website's letter rules first (200 words, 1,400 characters) and says what to fix if the text breaks them. Draft with the person first; the guide 'letter-to-homeowner-asking-to-buy-house' says what a good letter contains.
- 2026-11-13 `stamp_duty` added
  - How much stamp duty: Stamp Duty Land Tax for a home in England, Land Transaction Tax for one in Wales, for a home mover, a first-time buyer or an additional property, with the tax in each band and the other two buyer cases beside it. Uses the residential rates published on GOV.UK and gov.wales, quoted in `sources` with the date they were read. An estimate for a standard purchase of one freehold or existing leasehold home by individuals: shared ownership, new leases with rent, companies, mixed-use property and linked purchases follow other rules, and the official calculator is linked in the answer.
- 2026-11-13 `recent_sales` added
  - What sold in an area, newest first: "what sold near here this year", "flats sold in SW19 since January for under £500k". HM Land Registry price paid data for a postcode district, postcode, street or small town, filtered by property type, date range, price range, floor area, tenure and new build. Each sale has the address, price, date, type, freehold or leasehold, and the price per square metre where the home has a floor area on its Energy Performance Certificate. Market-value sales only. Sales reach the register two weeks to two months after completion, so the last few weeks are always incomplete. For one home's own history use sale_history.
- 2026-11-13 `find_homes_not_for_sale` added
  - Homes that are NOT advertised for sale, by criteria: the homes a buyer could write to. "Which houses on this street could I write to", "owner-occupied houses over 120 m2 in BS7 that last sold before 2005". Filter by property type, floor area, freehold or leasehold, energy rating, when and for how much the home last sold, and whether the owner lives there. Each row has the address, type, floor area, energy rating, last sale and its price per square metre, whether it is owner-occupied, its response likelihood, and `contact_owner_url`, the link that opens a letter to that home's owner on GetMovely. Most property servers list only what is on the market; this one searches the homes that are not. 20 a page.
- 2026-11-13 `search_homes_for_sale` added
  - Homes currently advertised for sale in an area of England or Wales, by criteria: "find me a 3-bed under £400k in BS7", "flats over 60 m2 in Wimbledon". Filter by asking price, bedrooms, property type and floor area; and, for adverts GetMovely has matched to an exact address, by freehold or leasehold, energy rating and whether the owner lives there. Each row has the asking price, bedrooms, type, floor area, price per square metre, when it was listed and days on the market, the portal, agent and link to the advert, and for a matched home its address key, response likelihood and the link that opens a letter to its owner. 20 a page; `total` is every advert that fits. Adverts are re-read regularly, so a brand-new listing can be missing.
- 2026-11-13 `search_addresses` changed (description, inputSchema)
  - before: Find homes in England and Wales by street, postcode, town or address. Each row has the home's last sale, freehold or leasehold, whether it is owner-occupied, whether it is listed for sale, and its response likelihood (High = listed for sale and owner-occupied, Medium = owner-occupied, Unknown = no record). Filter with `response_likelihood` to answer "which homes on this street are owner-occupied and for sale", or sort by it. Returns at most 60 per page, newest sale first by default. If the street name exists in several places the answer lists the places as `streets` instead of rows; ask the person which one, then search again with the town or postcode.
  - after: Find homes in England and Wales by street, postcode, town or address. Each row has the home's last sale, freehold or leasehold, whether it is owner-occupied, whether it is listed for sale, and its response likelihood (High = listed for sale and owner-occupied, Medium = owner-occupied, Unknown = no record). Filter with `response_likelihood` to answer "which homes on this street are owner-occupied and for sale", or sort by it. Returns 20 per page (`limit`, up to 60), newest sale first by default. If the street name exists in several places the answer lists the places as `streets` instead of rows; ask the person which one, then search again with the town or postcode. When nothing matches exactly the answer says so (`exact_match` false) and gives at most ten of the nearest names, which may be in other towns: Scotland and Northern Ireland are not covered.

Full history: https://api.protogrid.dev/v1/servers/uk.co.getmovely%2Fgetmovely/changes

## Remotes

- https://getmovely.co.uk/mcp (streamable-http, auth none, reachable true, uptime30d 0.9230769)

## Packages

_none_

## Tools (23)

- `address_report`: Everything GetMovely knows about one home in one call. `home` gives the facts in
brief: freehold or leasehold, whether it is owner-occupied (from its Energy
Performance Certificate), whether it is listed for sale, and its response likelihood
(High = listed for sale and owner-occupied). `tiles` is the nine-part report the
website shows: sold-price
history, building type and size, energy rating with costs and improvements, local
market (price per m2 nearby), area price trend, market history (asking price, time on
the market, the agent and the link to the advert when it is for sale), nearby
essentials, recorded crime and air quality. `contact_owner_url` opens a letter to its
owner. About 15 KB: use get_address, sale_history, energy_performance or price_check
when one part is enough. Limited to 60 reports per hour per caller, a limit
sale_history, energy_performance, price_check and compare_homes share.
- `area_overview`: What homes sell for in one postcode district, for every property type sold
there (detached, semi-detached, terraced, flats): the latest whole year's median
price per square metre with its quartiles and number of sales, the change since
the series began in 2015, and the year in progress against the same months a year
earlier. Use compare_areas to set districts against each other and price_trends
for what tenure, energy rating or size are worth within one.
- `compare_areas`: Two to six postcode districts side by side for one property type: latest whole
year's median price per square metre with quartiles and sales, change since 2015,
the year in progress against the same months a year earlier and, when a floor area
is given, what that many square metres cost at each district's median. Property
type is held constant because comparing a district of flats with a district of
houses compares the mix, not the place.
- `compare_homes`: Two to four homes side by side, one row each: type and floor area, tenure, last
sale and its price per square metre, energy rating and modelled running cost, what
the street has sold for recently, the district trend, whether it is
owner-occupied, whether it is listed for sale and its response likelihood (High =
both), the nearest supermarket, primary school, station and park, recorded crime
and air quality. Each row links its own report and the page
that opens a letter to its owner. Counts as one address report per home against the
60 an hour limit.
- `district_statistics`: GetMovely's published research for one local authority district, with England
and Wales alongside: the share of homes that are leasehold (houses and flats
separately), how many years pass between sales of the same home and the share not
sold for 20 years or more, the share of purchases resold within two years, and how
big homes are (median floor area, by property type and built form). Districts are
named as HM Land Registry and the EPC register name them; an unclear name returns
the candidates. For prices use area_overview, which works by postcode district.
- `draft_letter`: Hand a letter the person has agreed with you to GetMovely. Returns `letter_url`: a
link that opens the letter composer for that home on getmovely.co.uk with the text
already filled in, where the person reads it, can edit it, and sends it themselves
(free; sending needs a free account, and GetMovely prints and posts it). Nothing is
sent and nothing is stored by this call: the text travels inside the link. Checks
the website's letter rules first (200 words, 1,400 characters) and says what to fix
if the text breaks them. Draft with the person first; the guide
'letter-to-homeowner-asking-to-buy-house' says what a good letter contains.
- `energy_performance`: A home's Energy Performance Certificate in plain terms: rating and score now and
the rating it could reach, modelled running costs a year for heating, hot water and
lighting, carbon dioxide, which parts of the building are weak (walls, roof,
windows), and the assessor's own list of improvements with their indicative costs.
Costs are the assessor's model at the prices of the certificate's date, not bills.
- `find_address_from_sale_history`: Property portals often hide the house number but show the home's past sale
prices. HM Land Registry records every sale by exact address, so the sale history
identifies the home: give the area and the sales, get the address or addresses that
match. One match is the answer. Several means add another sale or a tighter area.
None means check the year (portals show the year the sale completed) or widen the
area. The returned `akey` works with every per-address tool.
- `find_homes_not_for_sale`: Homes that are NOT advertised for sale, by criteria: the homes a buyer could write
to. "Which houses on this street could I write to", "owner-occupied houses over
120 m2 in BS7 that last sold before 2005". Filter by property type, floor area,
freehold or leasehold, energy rating, when and for how much the home last sold, and
whether the owner lives there. Each row has the address, type, floor area, energy
rating, last sale and its price per square metre, whether it is owner-occupied, its
response likelihood, and `contact_owner_url`, the link that opens a letter to that
home's owner on GetMovely. Most property servers list only what is on the market;
this one searches the homes that are not. 20 a page.
- `get_address`: One home's card, the quick answer to "is this house for sale" and "does the owner
live there": full address, last sale, freehold or leasehold, whether it is
owner-occupied (from its Energy Performance Certificate), whether it is listed for sale
(with the portal, the agent and the link to the advert), its response likelihood (High
= listed for sale and owner-occupied), and the link that opens a letter to its owner
on GetMovely.
- `house_age`: The construction age band of homes matching an address, from the Energy Performance
Certificate, with what that era means for the construction, plus the first recorded sale
year as corroboration and the property type. Up to 12 candidates.
- `price_check`: Is a price in line? Works out the price per square metre from the home's EPC
floor area and sets it against three things: what homes of the same type sold for
per square metre in the same postcode district in the latest whole year, with the
quartiles; recent sales on the home's own street or postcode; and the home's own
last sale moved by the district's change since. Also gives the price range the
district's quartiles imply for this floor area. Arithmetic on public medians, not a
valuation, and the answer carries the caveats to pass on. Shares the address
report's limit of 60 an hour per caller.
- `price_trends`: What freehold or leasehold, new build or resale, energy rating and floor area are
worth per square metre in one postcode district, for one property type (D detached,
S semi-detached, T terraced, F flat), by whole calendar year, against the national
picture. Property type is always held constant because it is the confounder that
makes the naive comparison lie. Every figure is a median of at least a minimum
number of sales; no per-address data. For a plain summary of a district across all
its property types use area_overview.
- `read_guide`: The full text of one GetMovely guide as Markdown, with the questions it
answers, the primary sources it cites (GOV.UK, HM Land Registry, the ICO, The
Property Ombudsman and others) and the date it was last updated. General
information, not legal advice. Cite the guide's `url` when you use it.
- `recent_sales`: What sold in an area, newest first: "what sold near here this year", "flats sold in
SW19 since January for under £500k". HM Land Registry price paid data for a postcode
district, postcode, street or small town, filtered by property type, date range,
price range, floor area, tenure and new build. Each sale has the address, price,
date, type, freehold or leasehold, and the price per square metre where the home has
a floor area on its Energy Performance Certificate. Market-value sales only. Sales
reach the register two weeks to two months after completion, so the last few weeks
are always incomplete. For one home's own history use sale_history.
- `sale_history`: Every recorded sale of one home since 1995, from HM Land Registry price paid
data: price, month and year, the price per square metre each sale works out at on
the home's current EPC floor area, and the change from the first sale to the last.
The short answer to "what did this house sell for"; address_report has the rest.
- `search_addresses`: Find homes in England and Wales by street, postcode, town or address. Each row has
the home's last sale, freehold or leasehold, whether it is owner-occupied, whether it
is listed for sale, and its response likelihood (High = listed for sale and
owner-occupied, Medium = owner-occupied, Unknown = no record). Filter with
`response_likelihood` to answer "which homes on this street are owner-occupied and for
sale", or sort by it. Returns 20 per page (`limit`, up to 60), newest sale first by default.
If the street name exists in several places the answer lists the places as `streets`
instead of rows; ask the person which one, then search again with the town or postcode.
When nothing matches exactly the answer says so (`exact_match` false) and gives at most
ten of the nearest names, which may be in other towns: Scotland and Northern Ireland are
not covered.
- `search_guides`: GetMovely's plain-English guides to buying and selling homes in England and
Wales: contacting an owner directly and the law on it, buying or selling without an
estate agent, finding who owns a property or the address behind a listing, how
often sales fall through, speeding a sale up, best and final offers, stopping
unwanted letters. Returns the closest guides with a one-paragraph summary and the
questions each answers; read_guide gives the full text with its sources.
- `search_homes_for_sale`: Homes currently advertised for sale in an area of England or Wales, by criteria:
"find me a 3-bed under £400k in BS7", "flats over 60 m2 in Wimbledon". Filter by
asking price, bedrooms, property type and floor area; and, for adverts GetMovely has
matched to an exact address, by freehold or leasehold, energy rating and whether the
owner lives there. Each row has the asking price, bedrooms, type, floor area, price
per square metre, when it was listed and days on the market, the portal, agent and
link to the advert, and for a matched home its address key, response likelihood and
the link that opens a letter to its owner. 20 a page; `total` is every advert that
fits. Adverts are re-read regularly, so a brand-new listing can be missing.
- `stamp_duty`: How much stamp duty: Stamp Duty Land Tax for a home in England, Land Transaction Tax
for one in Wales, for a home mover, a first-time buyer or an additional property,
with the tax in each band and the other two buyer cases beside it. Uses the
residential rates published on GOV.UK and gov.wales, quoted in `sources` with the
date they were read. An estimate for a standard purchase of one freehold or
existing leasehold home by individuals: shared ownership, new leases with rent,
companies, mixed-use property and linked purchases follow other rules, and the
official calculator is linked in the answer.
- `street_price_per_m2`: Recent Land Registry sales near one home with their EPC floor area, as pounds per
square metre and per square foot by year. Scope is the home's own postcode when it has
enough sized sales, otherwise the whole street; `scope` says which. Market-value
(category A) sales only.
- `tenure_check`: Whether homes matching an address are freehold or leasehold, from the tenure recorded
on the latest Land Registry sale of each exact address, with that sale's date. Up to 12
candidates; null tenure means no recorded sale with a tenure. Matching is by text: when
`fuzzy` is true or the rows are not the address asked for, use search_addresses, whose
rows carry `tenure_at_last_sale` for the exact home.
- `whats_nearby`: Train, tram and ferry stops, bus stops, primary and secondary schools, cafes and
restaurants, pubs, takeaways, supermarkets, parks and play areas around one home, from
official open data, within 100 m to 2 km: for each kind the count, the nearest one and
its distance. Pass `closest` with a kind to get the nearest N of that kind instead.
