rentready
Checks whether a single English rental property is ready for the Renters' Rights Act landlord database registration and what needs attention.
Exposes one MCP tool:
check_property.Look up a property by postcode, or override the region manually.
Check registration window and deadline for the property’s region.
Validate gas safety record, EICR, EPC issue dates, and EPC rating; mark
no_gaswhere applicable.Use tenancy start date and property count to support EPC and fee calculations.
Return certificate validity status, £65-per-property fee context, upload checklist, and penalties.
It does not register the property, fetch certificates, or store data.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@rentreadyis B3 2TA ready? gas expires 2026-02-01, EICR 2023-06-01, EPC 2017-05-01"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
rentready
Is your rental ready for England's landlord database?
From 15 December 2026 every private landlord in England must register each let property on the government's
"Register your rental property" service (Renters' Rights Act 2025), region by region, at £65 per property per year,
uploading the gas safety record, EICR and EPC. Unoccupied properties need not be registered yet, and landlords of supported
exempt accommodation are excluded (official guidance). Without an active entry the court cannot make a possession
order, except on Ground 7A or Ground 14 (section 90). Penalties are up to £7,000 for a breach
(section 91) and up to £40,000 for the offences in section 92: false information, continuing a breach
after a penalty, or a repeat within five years. rentready tells you your region's window and deadline, whether
your certificates will still be in date, what to book, what to upload and what it costs. Zero dependencies, one file,
also an MCP server and a Claude Code plugin, so your own agent can run it.
No install: check in your browser at https://genzagents.github.io/rentready/ (0.7.0: now with the registration pack). Add your properties or
paste a CSV, see every property's window, deadline and certificate state, then download one .ics with every date and
reminder. It runs docs/rentready.js, a line-for-line port of the Python that tests/test_web.py holds to identical
answers and an identical calendar on five dates; the only network call is the postcode lookup at postcodes.io, and
your list stays in your browser.
curl -sL https://raw.githubusercontent.com/genzagents/rentready/main/rentready/__init__.py | python3 - check "B3 2TA" --gas=2026-02-01 --eicr=2023-06-01 --eicr-due=2028-06-01 --epc=2017-05-01 --epc-rating=Drentready 0.8.1 B3 2TA region: West Midlands
Window: requirement starts 2026-12-15, deadline 2027-03-14 (137 days from 2026-10-28); the service opens for everyone on 2026-12-15
PASS registration deadline: West Midlands requirement starts 2026-12-15, deadline 2027-03-14; you can register from 2026-12-15
WARN gas safety record: expires 2027-02-01, before the 2027-03-14 deadline (96 days)
PASS EICR: valid to 2028-06-01
PASS EPC: valid to 2027-05-01
INFO EPC rating: rating D meets today's E minimum; it would not meet the C minimum set for all tenancies from 1 October 2030 (government response, 21 Jan 2026; not yet law)
Do next:
- Book before 2027-02-01: annual gas safety check by a Gas Safe engineer; upload the record and issue date
Fee: £65 a year (65 per property); renewal every 12 months: the renewal date is the last day of the 12 months from your first entry, one date for the whole portfolio (draft regulation 10); later properties pay pro rata
Upload at registration (within 28 days of the entry, or it becomes inactive):
- Latest gas safety record (CP12) and its issue date, if the property has gas
- EICR (or EIC if no EICR yet) and its expiry date
- Latest EPC, and any MEES exemption; if the EPC has lapsed, the start date of the current tenancy
READY: nothing expires before your deadline. Gather the details above and register when your window opens.The timetable
Region | Requirement starts | Deadline (midnight) |
West Midlands | 15 Dec 2026 | 14 Mar 2027 |
East of England | 15 Jan 2027 | 14 Apr 2027 |
East Midlands | 15 Feb 2027 | 14 May 2027 |
South East | 15 Mar 2027 | 14 Jun 2027 |
Yorkshire and Humber | 15 Apr 2027 | 14 Jul 2027 |
North West | 15 May 2027 | 14 Aug 2027 |
North East | 15 Jun 2027 | 14 Sep 2027 |
London | 15 Jul 2027 | 14 Oct 2027 |
South West | 15 Aug 2027 | 14 Nov 2027 |
Registration opens for all of England on 15 December 2026. Source: the draft Private Rented Sector Database Regulations 2026, laid before Parliament on 9 September 2026 and not yet approved: the Lords Secondary Legislation Scrutiny Committee drew them to the special attention of the House (13th report, 22 October 2026) and committees of both Houses debated them on 28 October 2026 (Parliament record), as summarised by the NRLA and HCR Law; the same dates are in the official guidance at housinghub.campaign.gov.uk, which names the region "Yorkshire and Humber". Upload within 28 days of the entry and one renewal date for every property are in the draft regulations (regulation 6(2), regulation 10) and reported by the NRLA; the official guidance says the fee is pro-rated during the rollout, and the method for later properties is reported by the NRLA. The £65 fee is from the official guidance; the draft leaves the amount to the database operator (regulation 14). Miss the 28-day upload and the entry becomes inactive (regulation 11(2)(a)); any later change must be updated within 28 days (regulation 9(4)). The two 28-day rules and the single renewal date are not in the official guidance yet. Check gov.uk before relying on a date.
Related MCP server: UK Property Data
Install
pip install git+https://github.com/genzagents/rentready # or copy rentready/__init__.py anywhere
rentready regions
rentready check "SW1A 1AA" --no-gas --eicr=2024-01-01 --epc=2020-01-01 --properties=3 --jsonExit code 0 when nothing fails, 1 otherwise, so it works in a cron or a CI step.
A whole portfolio from one CSV (0.2.0)
rentready portfolio properties.csv # one line per property, every FAIL/WARN, total fee, earliest deadline
rentready portfolio properties.csv --jsonproperties.csv has a header row with any of name, postcode, gas, no_gas, eicr, eicr_due, epc, epc_rating, tenancy_start, region
(eicr is the report's issue date, eicr_due the date it gives for the next inspection)
(common spellings like Address, Post Code, Gas safety, Rating are accepted; a JSON list of objects works too):
name,postcode,gas,no_gas,eicr,epc,epc_rating
12 Example St,B3 2TA,2026-02-01,,2023-06-01,2017-05-01,D
Flat 4,SW1A 1AA,,yes,2024-01-01,2020-01-01,CDates in your calendar, with reminders (0.2.0)
rentready calendar properties.csv --out=rentready.ics # whole portfolio
rentready calendar "B3 2TA" --gas=2026-02-01 --eicr=2023-06-01 --epc=2017-05-01 --out=rentready.ics
rentready calendar properties.csv --reminders=90,30,7 > rentready.icsOne all-day event per dated thing: the day your region's window opens, the registration deadline, and each gas safety,
EICR and EPC expiry, each with reminders 60 and 14 days before (change with --reminders). Import the file into Google,
Apple or Outlook calendar; UIDs are deterministic, so re-importing after a renewal updates the events instead of duplicating them.
This is the free, serverless version of the monthly watch: nothing is stored anywhere but your own calendar.
The registration pack (0.5.0; in the browser from 0.7.0)
rentready pack properties.csv --out=pack.md # add --organisation for a company or trustNo terminal? On https://genzagents.github.io/rentready/ press Show my registration pack after a check: the same pack
(docs/rentready.js, parity-tested against pack.py), printable or saved as registration-pack.md for your agent. Extra
columns pasted in the CSV are kept with your list in the browser.
Every question Register your rental property asks, in the service's own words (gov.uk "Get ready to register", Oct 2026):
you as the landlord once, then per property the dwelling, tenancy, rent and health-and-safety sections. Answers come
pre-filled from the CSV, a GATHER line marks each gap, and the pack tells you which columns to add to fill them
(ownership, dwelling_type, bedrooms, let, occupants, households, licence, furnished, rent, rent_frequency, bills,
optional freeholder, manager). Each certificate gets a file name to scan it as (12-example-st_eicr_2023-06-01.pdf) and
a state: READY, RENEW SOON (expires before your deadline), RENEW (lapsed: renew before you upload) or GATHER. A lapsed EPC
is accepted with the current tenancy's start date, and an F or G rating adds the MEES exemption question. A property is
ready to register only when every answer and file is in hand. Nothing registers for you: you start the entry with
GOV.UK One Login.
Watch
A certificate that lapses in month four is the thing nobody notices until the deadline. The watch is the alarm, and it
runs for free as a GitHub Action in a private repo of yours that holds properties.csv: on the first of every month it
re-checks every property, keeps one issue up to date with the full table, and comments on that issue only when
something needs action: a gas safety record, EICR or EPC within 60 days of expiring, your region's window opening,
a deadline nearing or passing, or a property no longer ready. GitHub emails the comment to you. No server, no account
beyond GitHub, no dependencies; your dates never leave your repo except for the postcode lookup. Example:
issue #1 watches docs/example.csv.
Copy docs/watch.yml to .github/workflows/rentready-watch.yml:
on:
schedule: [{ cron: "23 7 1 * *" }] # the 1st of each month
workflow_dispatch:
push: { paths: [properties.csv] }
permissions: { issues: write, contents: read }
jobs:
watch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: genzagents/rentready@v0.8.1
with:
portfolio: properties.csv
# warn-days: 90
# always-comment: "true" # a monthly "all fine" email tooThe same command runs from cron on your own machine with a local state file instead of an issue:
rentready watch properties.csv --state=rentready-state.json # exit 1 when something needs actionAs an MCP server / Claude Code plugin
claude plugin marketplace add genzagents/marketplace
claude plugin install rentready@genzagentsOr add to any MCP client: uvx rentready mcp (from PyPI) or python3 /path/to/rentready/__init__.py mcp (stdio). Four tools: check_property, check_portfolio (CSV or JSON text in, one table out), make_calendar (returns the .ics text for one property or a portfolio) and registration_pack (the markdown checklist above).
Listed in the official MCP registry as io.github.genzagents/rentready.
mcp-name: io.github.genzagents/rentready
What it checks
Region from the postcode (postcodes.io, no key;
--region=to skip the lookup). Wales and Scotland are flagged out of scope.Registration window and deadline for that region; whether it is open, upcoming or missed.
Gas safety record (annual), EICR, EPC (ten-yearly): valid at the deadline, expiring before it, expired, or missing.
EICR: the law requires an inspection at least every 5 years, or by an earlier date if the last report says so (SI 2020/312, regulation 3(2)), and the service asks for the report's expiry date. Give the report's next-inspection date (
--eicr-due, CSV columneicr_due) and rentready uses it; with only the issue date it assumes 5 years and says so in the result.EPC rating against the current E minimum and the C minimum for all tenancies from 1 October 2030 (government response, 21 Jan 2026; not yet law).
The fee for N properties, the renewal rule, the full list of details the service asks for, and the penalties.
Hosted monthly watch (0.4.0)
The paid step for landlords who do not want a GitHub repo: pay once a year, paste your properties into the checkout, and get the same alerts in your inbox. The runner is in this repo and needs no server:
rentready hosted run --dry-run # polls Polar for subscribers, prints every email it would send
rentready hosted run # sends through Resend: first report within the hour, alerts on change, a monthly digest
rentready hosted replay ~/.rentready-hosted/<id>.json # re-runs a stored report from its stored inputs: IDENTICAL or DIFFERENTEvery email is reproducible from the inputs and date stored beside it. Setup and prices: docs/HOSTED.md.
Letting agents can run it for their landlords from a file with --subscribers=subs.json, no payment provider needed.
What it does not do
It does not register for you, fetch certificates, or hold any data. It never sends your dates anywhere. Not legal advice.
Privacy
The check runs on your machine or, on the website, in your browser. The one network call sends the postcode (and nothing
else) to postcodes.io to find the region, so postcodes.io sees that postcode and your IP address;
pass --region= to skip it. The website is hosted on GitHub Pages, which may log visitors' IP addresses; it sets no
cookies and runs no analytics. Details: privacy. Made by
GenZAgents, London (about); questions and corrections via
GitHub issues.
Changes
0.8.1 (packaging only, no behaviour change)
Listed in the official MCP registry as
io.github.genzagents/rentready(server.json, published from GitHub Actions with GitHub OIDC); the README carries the registry'smcp-nameownership line.uvx rentready mcpruns the server.
0.8.0 (EICR correctness)
EICR expiry comes from the report's own next-inspection date when you give it (
--eicr-due, CSVeicr_due, MCPeicr_due, a column in the browser), capped at 5 years from issue. Before, a report recommending 3 years got a false PASS because expiry was always issue date + 5 years. Issue + 5 years is now only a fallback, labelled as an assumption in the finding, inassumptions, and in the registration pack. Same logic in Python, the browser and the MCP server (parity-tested).
0.7.1 (accuracy fixes, no new features)
EPC: the C minimum applies to all private tenancies from 1 October 2030; the government dropped the proposed 2028 date for new tenancies (government response, 21 Jan 2026; not yet law).
Penalties: up to £40,000 covers the section 92 offences (false information, continuing a breach after a penalty, a repeat within five years), not only repeats; no possession order without an active entry except on Ground 7A or Ground 14 (section 90).
Renewal: the last day of the 12 months from your first entry (draft regulation 10); the program text now says the regulations are a draft (laid 9 September 2026, not yet approved).
Roadmap
rentready calendar puts every date in your calendar and rentready watch emails you from GitHub when something needs action, both free. The hosted monthly watch (no repo, no CSV to keep, the same alerts to your inbox) is the
paid step, £12 a year for up to 10 properties; the runner shipped in 0.4.0 and the checkout opens when payments are set up. EPC lookup by address from the official open-data register is next (the register's API moved to get-energy-performance-data.communities.gov.uk in 2026 and needs a free key). Press the button on the project page if you want it.
MIT. Built by genzagents; sibling of citable.
Available Tools
4 toolscheck_portfolioA
Check many English rental properties at once for the landlord database. Input is CSV text (header row: name, postcode, gas, no_gas, eicr, eicr_due, epc, epc_rating, tenancy_start, region) or a JSON list of objects with those keys. Returns one line per property, the total £65/property fee, the earliest deadline and every FAIL/WARN.
| Name | Required | Description | Default |
|---|---|---|---|
| today | No | Override today's date YYYY-MM-DD | |
| portfolio | Yes | CSV text or JSON list of properties |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden and does well: it specifies accepted input formats and describes the return shape (one line per property, total £65/property fee, earliest deadline, every FAIL/WARN). It still omits whether the operation is strictly read-only, permission requirements, and 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?
Three tightly written sentences, front-loaded with purpose, then input formats, then return summary. Every sentence adds operational value with no filler.
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?
Given there is no output schema or annotations, the description provides enough to call the tool correctly: input formats, required keys, and high-level return values. The exact structure of each per-property line and error handling remain unspecified.
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%, so the baseline would be 3. The description adds meaningful detail for the portfolio parameter by listing the expected CSV header keys and JSON object shape, though it does not mention the today override parameter.
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 (check English rental properties) and explicitly scopes it to batch operation ('many at once'). This distinguishes it from the single-property sibling check_property without needing to name it.
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 batch scope ('many ... at once') gives clear context for when this tool is appropriate versus a single-property check. It does not explicitly say when not to use it or name the alternative, so it stops 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.
check_propertyA
Is an English rental property ready for the landlord database (Register your rental property, Renters' Rights Act)? Returns the region's registration window and deadline, whether the gas safety record, EICR and EPC will still be valid, the £65/property fee, the upload checklist and the penalties.
| Name | Required | Description | Default |
|---|---|---|---|
| epc | No | EPC issue date YYYY-MM-DD | |
| gas | No | Gas safety record issue date YYYY-MM-DD | |
| eicr | No | EICR issue date YYYY-MM-DD | |
| no_gas | No | True if the property has no gas supply | |
| region | No | Override region, e.g. 'London', if no postcode | |
| eicr_due | No | Date the EICR gives for the next inspection YYYY-MM-DD (used instead of issue + 5 years; give it whenever the report has one) | |
| postcode | No | Property postcode (England) | |
| epc_rating | No | EPC rating letter A-G | |
| properties | No | Number of properties, for the fee | |
| tenancy_start | No | Current tenancy start date YYYY-MM-DD |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by disclosing the returned checks: registration window, deadline, gas/EICR/EPC validity, fee, upload checklist, and penalties. It implies a read-only check through 'Returns' and 'check', but does not explicitly state side-effect behavior, authentication needs, or error handling.
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?
The definition is front-loaded and dense: the purpose appears in the opening question and the return contents are summarized efficiently in the second sentence. There is no filler, though the question phrasing is slightly less direct than a declarative purpose statement.
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?
There is no output schema, so the description appropriately enumerates the key returned results. Combined with full parameter descriptions, an agent has enough to invoke the tool correctly, though the description could do more to explain output structure or when to prefer sibling tools.
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 every parameter is already well documented in the input schema. The description mentions the relevant domains (EPC, gas, EICR, fee, region) but adds no syntax, format, or conditional guidance beyond what the schema provides.
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 clearly identifies a readiness-checking tool for English rental properties and enumerates what it returns, including registration windows, document validity, fees, and penalties. It is specific about the resource and evaluation, but it does not explicitly distinguish itself from sibling tools such as check_portfolio or registration_pack.
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 question format implies that the tool checks readiness, but there is no explicit guidance on when to use it versus alternatives. No siblings are mentioned, and there are no conditions, prerequisites, or exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
make_calendarA
Build an iCalendar (.ics) file for one property or a portfolio: registration window opens, registration deadline, and each gas/EICR/EPC expiry as all-day events with reminders. Save the returned text as rentready.ics and import it into Google, Apple or Outlook calendar.
| Name | Required | Description | Default |
|---|---|---|---|
| epc | No | ||
| gas | No | ||
| eicr | No | ||
| name | No | Label for the property | |
| no_gas | No | ||
| region | No | ||
| eicr_due | No | ||
| postcode | No | ||
| portfolio | No | CSV text or JSON list of properties (omit for a single property) | |
| reminder_days | No | Days before each event to alarm, default [60, 14] |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose meaningful behavior: the output is text the caller must save themselves (the tool does not write a file), events are all-day, and reminders are attached. It does not cover date-format expectations or how missing inputs (e.g. no_gas, region) are handled.
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, zero waste; the artifact and its contents are front-loaded and the follow-up action comes second. Nothing is padded or repeated.
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 10-parameter tool with no required params, no annotations and no output schema, the description should clarify when to use the single-property path versus the portfolio field and what date formats are accepted. It explains the produced artifact well but leaves the agent guessing about input conventions.
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 only 30% across 10 parameters, so the description needed to compensate. It gives conceptual framing (registration window/deadline, per-certificate expiries, portfolio vs single property) but leaves the date format for epc/gas/eicr/eicr_due, the meaning of region and postcode, and the derivation of the registration window entirely unexplained.
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 verb and artifact ('Build an iCalendar (.ics) file') plus the exact contents (registration window, deadline, gas/EICR/EPC expiries as all-day events with reminders). It is clearly distinguishable from registration_pack, check_property and check_portfolio, though it never names those siblings explicitly to route the agent.
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 implied through the post-generation instruction ('Save the returned text as rentready.ics and import it into Google, Apple or Outlook calendar'), which tells the agent what to do after calling but not when to pick this tool over the sibling checks. No exclusions or prerequisites are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registration_packA
Prepare the registration pack for England's 'Register your rental property' service: every question the service asks (landlord, dwelling, tenancy, rent, health and safety), pre-filled from the portfolio where known and marked GATHER where not, and each certificate to scan with a suggested file name, flagging any that must be renewed before upload. Returns a markdown checklist. Extra optional columns: bedrooms, dwelling_type, ownership, let, occupants, households, licence, furnished, rent, rent_frequency, bills, freeholder, manager.
| Name | Required | Description | Default |
|---|---|---|---|
| today | No | Override today's date YYYY-MM-DD | |
| portfolio | Yes | CSV text or JSON list of properties | |
| organisation | No | True if the landlord is a company, trust or other organisation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description does real work: it discloses the return format ('markdown checklist'), the pre-fill logic from the portfolio, the GATHER marking for unknown fields, and that certificates needing renewal are flagged before upload. It does not explicitly state that nothing is uploaded or mutated, but the 'prepare ... before upload' framing makes the non-destructive nature reasonably apparent.
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?
The purpose and output shape are front-loaded in the first sentence, with the column inventory trailing at the end where it is easy to skip. The column list is dense but functional rather than filler.
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 generation tool with no output schema and no annotations, the description covers purpose, inputs, pre-fill behavior, unknown-field handling, and return format. Remaining gaps (no explicit statement of side effects or handling of malformed portfolio data) are minor.
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%, so the baseline is 3, but the description adds genuine meaning for the `portfolio` input by listing the optional columns (bedrooms, dwelling_type, ownership, let, occupants, etc.) that the schema only calls 'CSV text or JSON list of properties'. It says nothing extra about `today` or `organisation` beyond the schema text.
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?
Uses a specific verb ('Prepare the registration pack') tied to a named external service, and enumerates exactly what the output contains (service questions, pre-fills, GATHER markers, certificate scan list). This is clearly a checklist-generation tool and is readily distinguished from the check_* and make_calendar siblings.
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 context of use is implied ('for England's Register your rental property service'), but there is no explicit statement of when to call this versus check_portfolio or check_property, nor any prerequisites or exclusions. Usage must be inferred from the purpose sentence.
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
v0.8.1- Added
check_portfolio - Changed
check_property1 field changed- added
Input schema / properties / eicr_dueAdded value: +{ + "description": "Date the EICR gives for the next inspection YYYY-MM-DD (used instead of issue + 5 years; give it whenever the report has one)", + "type": "string" +}
- Added
make_calendar - Added
registration_pack
1 tool update
v0.1.0- First observed
check_property
TDQS
Scored across 4 tools
The two bulk/single variants (check_property vs check_portfolio) are clearly differentiated by input shape, but registration_pack and check_property overlap substantially: both report the registration window, fee, certificate validity and an upload checklist for a single property, so an agent could reasonably pick either one when asked 'is this property ready to register?'.
Three of four tools follow a clean verb_noun snake_case pattern (make_calendar, check_property, check_portfolio), and registration_pack is the lone noun-only outlier. The deviation is readable and the prefix split (single vs portfolio) is discoverable.
Four tools is compact and each maps to a distinct deliverable (pack, calendar, single check, batch check), with no filler. It sits at the low end of the comfortable range but is well matched to a narrow compliance-lookup purpose.
The surface covers preparation, checking and scheduling, but there is no operation to record or persist property data, update certificate details, or track remediation status after a FAIL, so the agent hits a dead end once it leaves the advisory flow. The domain itself is clearly stated and core questions are answerable.
Maintenance
Related MCP Connectors
Checks whether a property in England is in a council's selective or HMO licensing scheme
UK property data: EPC, flood risk, planning, sale prices, MEES 2030 checks and grants.
UK tenancy and employment rule checks: deposits, notice, rent increases, holiday and minimum wage.
Landlord rules for England by postcode: council licensing, the landlord register and the law, cited.
Related MCP Servers
- 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
- AlicenseAqualityAmaintenanceUK property data MCP server — Land Registry comps, EPC, Rightmove, rental yields, stamp duty, Companies House. 13 tools.1318MIT
- AlicenseNot gradedqualityCmaintenanceUK property data MCP server for AI hosts (Claude, ChatGPT). Wraps Land Registry, Rightmove, EPC, rental yields, stamp duty, and Companies House into 13 tools.2MIT
- AlicenseAqualityCmaintenanceEnables AI agents to perform due diligence on Irish properties by querying public datasets for planning applications, sold prices, flood risk, radon risk, and zoning.174 npm8MIT