MyPorta
Server Details
Find UK homes for sale and to rent, matched to your wishes, with nearby schools and area guides.
- Status
- Healthy
- Uptime
- 100.0% over 22 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: search for homes, retrieve one home's details, compare multiple homes, and get area information. The boundary between get_home (single home) and compare_homes (2-4 homes) is clear from the descriptions, and neither overlaps with get_area_guide or search_homes.
All tool names follow a consistent snake_case verb_noun pattern: compare_homes, get_area_guide, get_home, search_homes. The structure is predictable and readable, with no mixing of conventions.
Four tools is well-scoped for a UK property search assistant. Each tool covers a distinct step in the user journey (search, view details, compare, learn about area) and earns its place without redundancy.
The set covers the core workflows: searching homes, getting full details, comparing homes, and area guides. Minor gaps exist, such as no tool for saving favourites, contacting agents, or paginating beyond the initial search results, but these are not critical for the stated purpose.
Available Tools
4 toolscompare_homesCompare homesARead-onlyIdempotentInspect
Use this when the user wants to compare two to four homes from search_homes results side by side: price, rooms, key facts, nearby schools with their Ofsted grade, station, park, GP surgery, supermarket, broadband and agent. Takes the homes' ids.
| Name | Required | Description | Default |
|---|---|---|---|
| home_ids | Yes | Ids from search_homes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| homes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is fully covered structurally. The description adds real context on what the comparison surfaces (price, rooms, schools with Ofsted grades, stations, amenities, agent), which helps an agent predict the payoff of calling it. It omits anything about the freshness/limitations of the underlying listing data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence: trigger condition first, then the comparison dimensions, then the input in a short closing clause. No filler, no repetition of the title.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description is not obliged to enumerate return values, yet it still orients the agent on comparison dimensions. Trigger, scope, source of ids and read-only nature are all covered; nothing needed to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the schema itself declares minItems=2/maxItems=4, so the parameter is already fully documented. The description's "Takes the homes' ids" and "two to four homes" only restate that constraint without adding syntax, ordering or error-handling meaning. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb (compare) plus resource (homes) with explicit scope: two to four homes, side by side, on named dimensions. It is immediately distinguishable from search_homes (find listings) and get_home (single home detail).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this when the user wants to compare..." gives a clear triggering condition and ties the source to search_homes results, which is genuine routing guidance. It does not, however, state when not to use it (e.g. single-home lookups should use get_home) or what to do if the user hasn't searched yet.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_area_guideGet an Area OverviewARead-onlyIdempotentInspect
Use this when the user asks what a UK town, village or neighbourhood is like to live in. Returns MyPorta's Area Overview summary and a link to the full overview.
| Name | Required | Description | Default |
|---|---|---|---|
| place | Yes | Town, village or neighbourhood name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| name | No | |
| found | Yes | |
| region | No | |
| summary | No | |
| headline | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety bar is low. The description usefully adds that the response is a summary with a link to the full overview, clarifying the scope of what is returned without explaining pagination or empty-result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler: the first front-loads the usage trigger, the second states the return. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, read-only tool with full annotations and an output schema, the description covers what is needed to call it. The only minor gap is how it behaves when no overview exists for a place or when the name is ambiguous.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and documents 'place' as 'Town, village or neighbourhood name.' The description adds a real constraint the schema lacks: the geographic scope is UK-only, and the accepted place types are implied by the trigger sentence, so it contributes meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource (MyPorta's Area Overview for a UK town/village/neighbourhood) and what it returns (a summary plus a link to the full overview). The area-vs-home resource distinction separates it cleanly from siblings compare_homes, get_home and search_homes, though it never names them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit, concrete trigger: 'Use this when the user asks what a UK town, village or neighbourhood is like to live in.' That is a clear use condition, but it offers no exclusions or pointers to alternative tools (e.g. what to call for individual home data).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_homeGet a home's detailsARead-onlyIdempotentInspect
Use this when the user asks about one home from search_homes results: what the advert says, rooms, tenure, lease, service charge, ground rent, council tax band, EPC rating, parking, heating, nearby schools with their Ofsted grade, station, park, GP surgery, supermarket, broadband or agent. Takes the home's id.
| Name | Required | Description | Default |
|---|---|---|---|
| home_id | Yes | The id from search_homes. |
Output Schema
| Name | Required | Description |
|---|---|---|
| home | Yes | |
| facts | No | Key facts from the advert: tenure, lease, service charge, ground rent, council tax band, EPC rating, floor area, parking, heating. |
| caveat | No | |
| summary | No | The opening of the agent's advert, in the agent's words (homes found on an agent's website; the full advert is on the agent's page). |
| description | No | The agent's description (homes with full details on MyPorta only). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorld=false, so the safety profile is fully covered by structured data. The description adds the useful link that the id must come from search_homes, but says nothing about latency, rate limits, or error behavior for a missing id; with an output schema present, further behavioral detail is largely unnecessary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the triggering condition followed by the returned-field list. It is dense but every clause maps to a real capability; the long enumeration is the only slight strain on readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With a rich annotation set and an output schema, the description is complete enough for correct invocation — it identifies the trigger, the required input, and the source of that input. The field enumeration partially duplicates what the output schema presumably documents, but nothing an agent needs is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single home_id parameter and the schema already says 'The id from search_homes.' The description repeats that constraint ('Takes the home's id') without adding format or validity details, so it lands at the baseline for a well-documented single-parameter schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource and enumerates the exact fields returned (advert, rooms, tenure, EPC, schools, etc.), which is far more informative than the title. It also anchors the tool relative to search_homes results, so an agent can distinguish it from siblings without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit usage context: 'Use this when the user asks about one home from search_homes results,' which cleanly separates it from the bulk search case. It does not name when-not to use it or explicitly route to compare_homes/get_area_guide, so it falls one step short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_homesSearch homesARead-onlyIdempotentInspect
Use this when the user wants to find homes for sale or to rent in the UK. Give a place (town, area or postcode) and any budget, bedrooms or type they mention. Put what they want from the home or area in their own words in wishes (for example "a garden", "walk to a station", "good primary schools nearby", "within 45 minutes of King's Cross"); homes are then ranked by fit, each with a 0-100 match score and the evidence behind it (station and school distances, advertised features). Put a physical feature they insist on and an advert would state ("garage", "annexe") in must_haves; anything about lifestyle or the area ("near the sea", "wild swimming", "good schools") always goes in wishes. Returns up to 10 homes with price, bedrooms, agent and a link, and for each home what is nearby: the nearest primary and secondary schools with their Ofsted grade, station, park, GP surgery, supermarket and broadband.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | ||
| limit | No | Default 6. | |
| place | Yes | One UK place: a town, city, district, county, region, national park, National Landscape, named coast, island or postcode, e.g. "Harrogate", "Dorset", "the Lake District", "the South West", "the south coast", "Jersey", "LS6". Each is searched as one whole area. "near Totnes" takes in about 3 miles around it. | |
| wishes | No | What the user wants, in their words. Homes are ranked by how well they match. | |
| max_beds | No | ||
| min_beds | No | ||
| max_price | No | Pounds. For rent, per calendar month. | |
| min_price | No | Pounds. For rent, per calendar month. | |
| must_haves | No | A physical feature the advert must state word for word, e.g. "garage". Never lifestyle or area wishes: those go in wishes. | |
| buy_or_rent | No | Default buy. | |
| property_type | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| homes | Yes | |
| place | No | |
| towns | No | For a coast or national park: the towns searched, each with its search on MyPorta. |
| more_url | No | The same search on MyPorta, with every result. |
| place_found | No | False when MyPorta did not recognise the place; no homes are returned then. |
TDQS
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 real behavioral substance: homes are ranked by fit with a 0-100 match score plus evidence (station/school distances, advertised features), capped at 10 results, and must_haves are matched word-for-word against adverts. This is exactly the kind of ranking/matching semantics annotations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the use condition, then dense guidance on how to fill the fuzzy parameters, and finally the return shape. It is long but every clause carries information; the embedded parenthetical examples make some sentences heavy, which keeps it short of a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, describing the return payload (price, bedrooms, agent, link, nearby schools/Ofsted, station, park, GP, supermarket, broadband) is optional but helpful. The one required param (place) and the ranking params are covered; remaining minor params are left to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 64%, and the description compensates where it matters most by explaining the tricky distinction between `wishes` (lifestyle/area, own words) and `must_haves` (physical features an advert states verbatim), with examples for both. It adds nothing for sort, bed bounds or property_type, but those are enum/range-constrained in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource with explicit geographic scope: find homes for sale or to rent in the UK. The scope (search, ranked results, nearby evidence) is distinct from get_home and compare_homes without the agent needing to open the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use this when the user wants to find homes for sale or to rent" gives a clear triggering condition, and it instructs how to translate user input into place/budget/bedrooms/type. It does not explicitly name when to prefer get_home or compare_homes instead, so it falls short of a full routing rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
compare_homes1 field changed- changed
Output schema / properties / homes / items / properties / local / descriptionPrevious value: -"What is near the home, measured by MyPorta: the nearest primary and secondary schools with their Ofsted grade, the nearest station, park, GP surgery, supermarket and place of worship, and broadband. Distances are straight-line."New value: +"What is near the home, measured by MyPorta: the nearest primary and secondary schools with their Ofsted grade, the nearest station, bus stop, park, GP surgery, pharmacy, supermarket and place of worship, and broadband. Distances are straight-line."
- Changed
get_home1 field changed- changed
Output schema / properties / home / properties / local / descriptionPrevious value: -"What is near the home, measured by MyPorta: the nearest primary and secondary schools with their Ofsted grade, the nearest station, park, GP surgery, supermarket and place of worship, and broadband. Distances are straight-line."New value: +"What is near the home, measured by MyPorta: the nearest primary and secondary schools with their Ofsted grade, the nearest station, bus stop, park, GP surgery, pharmacy, supermarket and place of worship, and broadband. Distances are straight-line."
- Changed
search_homes1 field changed- changed
Output schema / properties / homes / items / properties / local / descriptionPrevious value: -"What is near the home, measured by MyPorta: the nearest primary and secondary schools with their Ofsted grade, the nearest station, park, GP surgery, supermarket and place of worship, and broadband. Distances are straight-line."New value: +"What is near the home, measured by MyPorta: the nearest primary and secondary schools with their Ofsted grade, the nearest station, bus stop, park, GP surgery, pharmacy, supermarket and place of worship, and broadband. Distances are straight-line."
4 tool updates
- First observed
compare_homes - First observed
get_area_guide - First observed
get_home - First observed
search_homes
Related MCP Connectors
Sold prices, area reports, postcodes, flood risk, crime and food hygiene for any UK location.
Search homes for sale and to rent across Europe and the UAE, keep shortlists, reveal sellers.
UK property data: prices, rents, valuations, sold prices, planning, flood risk, titles and UPRNs.
Schools in England: Ofsted, results, real catchment cut-offs and where to live for schools.
Related MCP Servers
- AlicenseAqualityBmaintenanceUnified UK property search across major portals with deduplication and open-data enrichment, enabling natural-language queries for listings, sold prices, EPC, crime, schools, and market stats.10MIT
- AlicenseCqualityDmaintenanceEnables access to UK property listings, price estimates, agent information, and market data through the Zoopla API for searching properties for sale or rent with detailed filters and analytics.22MIT
- FlicenseNot gradedqualityCmaintenanceUK property listing description generator. Give an AI assistant a postcode or address — it fetches comparable sales, EPC ratings, and Rightmove listings, then writes three copy variants ready for Rightmove, social media, and email.1-
- AlicenseAqualityDmaintenanceSearch comparable property sales across 16 global markets with 43M+ government-sourced transactions. Tools: search comps by location, get area statistics and trends, list available markets. Covers UK, France, Singapore, NYC, Chicago, Dubai, and 10 more cities.34MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.