HouseFile UK property licensing checker
Server Details
Checks whether a property in England is in a council's selective or HMO licensing scheme
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a distinct entry point: postcode lookup (check_property_licensing), coverage meta-info (licensing_coverage), council-scoped listing (list_council_schemes), and a cross-council chronological change feed (upcoming_licensing_changes). The only real overlap is that both list_council_schemes and upcoming_licensing_changes surface 'proposed/starting soon' schemes, but the descriptions make the framing (full council picture vs. time-windowed change log) reasonably clear.
All names are snake_case and readable, but the convention is mixed: check_property_licensing and list_council_schemes are verb_noun, while licensing_coverage and upcoming_licensing_changes are noun phrases with no verb. Two of four tools deviating from the verb-led pattern makes this genuinely mixed rather than a minor slip.
Four tools is well-scoped for a focused read-only licensing reference service: one lookup, one coverage disclaimer, one per-council listing, one forward-looking change feed. Each tool earns its place and none feels redundant or missing.
The surface covers the main informational workflows: postcode lookup with the mandatory HMO test, coverage transparency, council-level scheme listings, and upcoming/ended changes. Minor gaps exist, such as no scheme-detail-by-id lookup, no address-level search, and no history beyond the 12-month window, but agents can work around these.
Available Tools
4 toolscheck_property_licensingCheck a property’s licensingARead-onlyIdempotentInspect
Looks up a postcode in England in HouseFile’s records of council licensing schemes and returns each scheme in force there, with its dates, fee, source link and the date the records were last verified, plus the national HMO rule. Schemes not in force yet are listed under upcoming. It works to postcode precision, so near a scheme’s edge it says so. Give occupants and households to settle the mandatory HMO test in England.
| Name | Required | Description | Default |
|---|---|---|---|
| postcode | Yes | A full UK postcode in any spacing or case, such as "e8 1dy" | |
| occupants | No | How many people live in the property | |
| as_of_date | No | YYYY-MM-DD. Defaults to today; at most 24 months ahead | |
| households | No | How many separate households they form | |
| address_line | No | House number or name and street. Accepted, but the lookup works to postcode precision, and the address is never stored |
Output Schema
| Name | Required | Description |
|---|---|---|
| council | Yes | |
| country | Yes | |
| covered | Yes | |
| schemes | Yes | |
| postcode | Yes | |
| upcoming | Yes | |
| as_of_date | Yes | |
| disclaimer | Yes | |
| housefile_url | Yes | |
| council_gss_code | Yes | |
| council_address_checker | Yes | The council’s own address-level lookup, where it has one |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior, so the bar is lower. The description adds real behavioral context beyond them: accuracy is bounded to postcode precision and it discloses that at a scheme edge, upcoming schemes are segregated under 'upcoming', and results carry a last-verified date. It does not mention rate limits or error 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?
Four sentences, front-loaded with what is returned and followed by caveats and input guidance; no filler. It is slightly dense and mixes return-format detail with usage guidance in the same breath, but every sentence carries information.
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 return values need not be enumerated, yet the description nonetheless names the salient fields (dates, fee, source link, verification date, upcoming bucket). Combined with the precision caveat and the HMO guidance, an agent has everything needed to call this correctly.
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%, so the baseline is 3, but the description goes further by explaining the joint role of occupants and households (settling the mandatory HMO test) and reiterating that address_line does not change lookup precision. That is genuine added meaning rather than restating 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: looks up a postcode in HouseFile's council licensing records and returns schemes in force plus the national HMO rule. It also carves out its own scope against siblings by distinguishing in-force vs upcoming schemes, which maps onto upcoming_licensing_changes without opening either 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 clear context for the conditional inputs ('Give occupants and households to settle the mandatory HMO test in England') and the precision limit where the answer degrades. It never explicitly names an alternative tool or states when not to use it, so routing against list_council_schemes or licensing_coverage is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
licensing_coverageWhich councils are coveredARead-onlyIdempotentInspect
Which councils HouseFile’s records cover, with the number of published schemes for each and when they were last verified. Use it to tell the user honestly whether their area is covered.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| councils | Yes | |
| council_count | Yes | |
| housefile_url | Yes | |
| published_scheme_count | Yes | |
| most_recent_verification | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety and closed-world profile is covered. The description adds useful context about what the listing contains (scheme counts, verification recency), but no further behavioral detail about the result ordering or coverage limits.
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 tight sentences, front-loaded with what is returned before the usage hint. No filler, though "HouseFile's records cover" is slightly awkward phrasing.
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 return values need not be explained, and the annotations carry the safety profile; for a zero-parameter read tool the description covers purpose and use. It stops short of naming the closest sibling, which is the only remaining gap.
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?
The tool takes zero parameters, so the baseline of 4 applies. There is no argument syntax to misread and the description correctly implies a no-argument whole-catalogue listing.
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 resource (council coverage) and enumerates the returned fields: published scheme counts and last-verified dates. It does not name or contrast the siblings (check_property_licensing, list_council_schemes), so differentiation is left to the agent, but the scope is unambiguous.
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 it to tell the user honestly whether their area is covered" implies the triggering scenario (answering a coverage question) but gives no explicit when-not or pointer to the alternatives. Adequate but leaves the sibling routing to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_council_schemesList a council’s licensing schemesARead-onlyIdempotentInspect
Lists a council’s licensing schemes from HouseFile’s records: in force, starting soon, proposed, and ended in the last 12 months, each with its area, dates, fee, source link and last verified date. Takes a council name, part of a name or a GSS code. If several councils match, it returns them to choose from.
| Name | Required | Description | Default |
|---|---|---|---|
| council | Yes | A council name, part of one, or its GSS code, such as "Croydon" or "E09000008" |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| result | Yes | |
| council | Yes | |
| schemes | Yes | |
| candidates | Yes | |
| disclaimer | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and non-open-world, so the safety profile is covered. The description still adds real behavioral context: the 12-month lookback for ended schemes, the fields each scheme carries, and the disambiguation behavior when multiple councils match (it returns them to choose from).
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?
Three sentences, front-loaded with the resource and scope, then input form, then ambiguity handling. No filler, though the enumerated return fields edge slightly toward duplication of the output schema.
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?
Covers input flexibility, match disambiguation, and the status/time window of returned schemes, which is enough for an agent to call it correctly given that a full output schema exists and needs no restating. Only the missing when-to-use-vs-siblings guidance keeps it from complete.
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 single parameter already documents that it accepts a name, partial name, or GSS code with examples. The description restates this input flexibility but adds no syntax, formatting, or matching rules beyond what the schema provides, so this is the baseline 3.
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 (lists) and resource (a council's licensing schemes) and scopes the content precisely: in force, starting soon, proposed, and ended in the last 12 months, each with area, dates, fee, source link and last verified date. This is far more specific than the sibling names check_property_licensing or licensing_coverage and lets an agent distinguish it 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?
The description explains how to invoke it (council name, partial name, or GSS code) and what happens on ambiguous matches, but never states when to prefer this tool over siblings like licensing_coverage or upcoming_licensing_changes. Usage is implied by the resource scope rather than explicitly routed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upcoming_licensing_changesUpcoming licensing changesARead-onlyIdempotentInspect
What’s coming: schemes proposed or starting soon, and recent changes to schemes in HouseFile’s records (started, ended, fee or area changed), newest first. Optionally for one council, and for a number of months ahead and back (6 by default, at most 24).
| Name | Required | Description | Default |
|---|---|---|---|
| council | No | A council name, part of one, or its GSS code | |
| within_months | No | Months ahead and back to look, 6 by default |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes | |
| council | Yes | |
| upcoming | Yes | |
| candidates | Yes | |
| disclaimer | Yes | |
| within_months | Yes | |
| recent_changes | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: the ordering ('newest first'), the default look-ahead/look-back window (6 months, capped at 24), and the kinds of changes tracked (started, ended, fee or area changed).
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, front-loaded with what the tool returns before the filtering and windowing details. Efficient, with no filler, though the parenthetical enumeration of change types makes it slightly dense.
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 return-value explanation is correctly omitted. The description covers scope, ordering, default window, and optional council filtering, which is sufficient for an agent to invoke it correctly; only cross-references to sibling tools are absent.
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%, so the baseline is 3 regardless. The description's '6 by default, at most 24' restates what the schema already encodes via default text and maximum=24, so it adds little new parameter meaning.
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 names the resource (licensing schemes proposed, starting soon, or recently changed) and the temporal framing (newest first), which is a specific and non-tautological statement of purpose. It is clearly distinct in spirit from siblings like list_council_schemes or licensing_coverage, though it never explicitly contrasts itself against 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?
Usage is only implied: the mention of 'schemes proposed or starting soon, and recent changes' hints at when an agent would reach for it, and 'optionally for one council' clarifies scoping. There is no explicit when-to-use versus when-not, and no reference to the sibling tools it could be confused with.
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.
4 tool updates
- First observed
check_property_licensing - First observed
licensing_coverage - First observed
list_council_schemes - First observed
upcoming_licensing_changes
Related MCP Connectors
RegEvidenceHub Premises: UK premises-licensing preflight for supported authorities.
Check a home to rent in England: rent, licensing, flood risk, energy rating and the free report.
Landlord rules for England by postcode: council licensing, the landlord register and the law, cited.
Planning constraints for English properties from official planning.data.gov.uk data, via Apify.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables point-in-England lookups to retrieve planning designations such as conservation areas, listed buildings, green belt, flood risk zones, and more from the national planning data platform.14 npmMIT
- 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
- AlicenseAqualityDmaintenanceEnables users to search UK property prices by postcode, street, or city using the HM Land Registry's SPARQL endpoint. It also provides tools for resolving postcodes and finding nearby locations through Ordnance Survey data.22MIT
- AlicenseAqualityBmaintenanceEnables AI assistants to query UK property data including EPCs, sale history, planning, flood risk, council tax, demographics, and more via the Homedata API.18MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.