Contract Lily
Server Details
Check UK tenancy and employment rules from the facts you give: deposit caps, notice periods, section 13 rent increase notices, statutory notice, holiday entitlement and the minimum wage, for England, Wales, Scotland and Northern Ireland. Each answer names the law it applies and links to more detail. It can also link you to a full review of your tenancy agreement or employment contract. Read-only, with no account or sign-in. General information, not legal advice.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 9 tools
Each tool has a clearly distinct purpose: statutory checks for deposits, holiday, minimum wage, tenancy notice, rent increase notices, and employment notice, plus two separate review-link tools. The England/Scotland rent-increase tools are close but explicitly differentiated by jurisdiction and scope in their descriptions.
The set follows a consistent snake_case verb_noun pattern: seven check_* tools and two get_*_link tools. Jurisdiction-specific variants are named predictably, e.g. check_scottish_rent_increase_notice.
Nine tools is well-scoped for a UK employment and tenancy legal-check assistant. Each tool covers a distinct check or review pathway without obvious padding.
The surface covers several core statutory calculations across UK nations and provides full review links for employment contracts and tenancy agreements. Minor gaps remain, such as rent-increase notice checks for Wales and Northern Ireland and other possible statutory employment checks.
Available Tools
9 toolscheck_deposit_capDeposit cap checkARead-onlyIdempotentInspect
Work out the most a landlord or agent can ask for as a tenancy deposit and a holding deposit, from the rent, in any UK nation, and optionally check a deposit the user was asked for. England limits both; Wales limits the holding deposit; Scotland and Northern Ireland limit the tenancy deposit.
| Name | Required | Description | Default |
|---|---|---|---|
| rent | Yes | The rent for one rent period, in pounds, for example 1200 or 950.50. | |
| nation | Yes | The UK nation the home is in. | |
| rentPeriod | Yes | How often the rent falls due. | |
| depositAsked | No | The tenancy deposit the landlord or agent asked for, in pounds, if the user gave one. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| rent | Yes | |
| limits | Yes | |
| nation | Yes | |
| lawAsAt | Yes | |
| depositAsked | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this read-only, idempotent and non-destructive, so the safety profile is covered. The description adds genuine domain context beyond them: which deposit type is capped in each nation (England both, Wales holding only, Scotland and NI tenancy only), which tells the agent what the result will and will not contain. Return shape is covered by the output schema.
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 dense sentence that front-loads the core computation and appends the optional check, followed by the jurisdiction caveat. No filler, and the most important information (what it computes) comes first.
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 read-only, idempotent calculation tool with a full output schema and 100%-documented parameters, this covers scope, jurisdiction coverage and the optional validation path. Slightly more could be said about how non-monthly rent periods (week/four_weeks) are normalised, but the essentials are present.
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; the description earns an extra point by clarifying that depositAsked is an optional validation input ('optionally check a deposit the user was asked for') and that the core computation is driven from the rent figure, framing the required-vs-optional distinction in one clause.
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 precise verb+resource: works out the maximum tenancy and holding deposit from rent, for any UK nation, with an optional check of a deposit already asked for. This is clearly distinguishable from siblings like check_rent_increase_notice or check_notice_period, which cover different regulatory questions.
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 makes the trigger condition clear: computing statutory deposit caps from a rent figure, and optionally validating an amount the user was quoted. It gives clear context but does not explicitly route the agent away from or toward any named sibling, so it stops short of the 5 bar.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_holiday_entitlementHoliday entitlement checkARead-onlyIdempotentInspect
Work out the statutory minimum paid holiday a year, in days, for a worker who works a set number of days a week, in any UK nation: 5.6 weeks, at most 28 days, which may include bank holidays.
| Name | Required | Description | Default |
|---|---|---|---|
| nation | Yes | The UK nation where the worker mainly works. | |
| daysPerWeek | Yes | The days the worker works each week, such as 5 or 2.5. |
Output Schema
| Name | Required | Description |
|---|---|---|
| law | Yes | |
| days | Yes | |
| page | Yes | |
| lawAsAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, closed-world behaviour, so the description's job is domain context — and it delivers the calculation rule (5.6 weeks), the statutory cap (28 days), and the important caveat that the figure may include bank holidays. It doesn't mention rounding or that this is the statutory minimum rather than contractual entitlement, which would have pushed it to a 5.
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 that leads with the output ('in days') and packs the jurisdiction, the 5.6-week rule, the 28-day cap and the bank-holiday caveat without a wasted word.
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 both required parameters are fully described in the schema. The description supplies the legal basis and caveats an agent needs to interpret the result correctly, leaving nothing material missing for a two-parameter calculator.
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 both parameters are documented (nation as an enum of the four UK nations, daysPerWeek with 0.5–7 bounds). The description echoes 'set number of days a week' and 'any UK nation' but adds no syntax or edge-case guidance beyond the schema, so the 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?
States a specific verb and resource: 'Work out the statutory minimum paid holiday a year, in days,' scoped to a worker's days-per-week and UK nation. It is clearly distinct from siblings like check_minimum_wage or check_deposit_cap, though it never names or contrasts them explicitly.
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 by the domain framing ('for a worker who works a set number of days a week'). There is no statement of when to reach for this versus another check, no prerequisites, and no exclusions (e.g. self-employed, part-year workers).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_minimum_wageMinimum wage checkARead-onlyIdempotentInspect
Check whether an hourly rate of pay meets the UK minimum wage for the worker’s age, and apprenticeship, on a date from 1 April 2024, and give the rate that applies.
| Name | Required | Description | Default |
|---|---|---|---|
| age | Yes | The worker’s age. | |
| date | Yes | The day the pay is for, as YYYY-MM-DD. | |
| apprentice | Yes | Whether the worker is an apprentice, and if so whether in the first year of the apprenticeship. | |
| hourlyPence | Yes | The pay for an hour, in pence. | |
| pastSchoolAge | Yes | Whether the worker is over compulsory school age (past the school-leaving day of the year they turn 16). |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| answer | Yes | |
| lawAsAt | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds the valuable behavioural facts the annotations lack: jurisdiction (UK), the effective date floor, and that it returns the applicable rate alongside the check.
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 that states the check, the inputs that drive it, and the effective date with no filler. The phrasing 'for the worker's age, and apprenticeship, on a date from 1 April 2024' is slightly awkward but not costly.
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 five all-required parameters fully documented in schema, complete annotations, and an output schema covering the return value, the description only needs to supply the non-structural context — which it does (UK scope, 1 April 2024 start, returns applicable rate). What happens for out-of-range dates or unsupported worker categories remains unstated.
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 every parameter including the subtle pastSchoolAge flag is already documented, establishing a baseline of 3. The description adds only the date-floor constraint on 'date'; it says nothing about the pastSchoolAge or apprentice enum values that materially change the result.
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 a specific verb and resource ('Check whether an hourly rate of pay meets the UK minimum wage') and even states the criteria used (age, apprenticeship, date). It does not explicitly distinguish itself from any sibling, but the domain is unambiguous against check_holiday_entitlement or check_deposit_cap.
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 supplies clear applicability context: the check is UK-specific and only valid for a date from 1 April 2024, which is a real precondition an agent must respect. It gives no explicit exclusions (e.g. agricultural wages or salaried staff), so it stops short of full when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_notice_periodNotice period checkARead-onlyIdempotentInspect
Work out the least notice that ends a periodic private tenancy, and the earliest end date it can name, in any UK nation, whether the tenant or the landlord gives it. It also says when a landlord cannot end the tenancy by notice at all (England) or must apply to a tribunal (Scotland).
| Name | Required | Description | Default |
|---|---|---|---|
| given | Yes | The day the notice is given, as YYYY-MM-DD. In Scotland, the day the other side receives it. | |
| party | Yes | Who gives the notice. | |
| nation | Yes | The UK nation the home is in. | |
| period | Yes | How often the rent falls due. | |
| rentDueDay | No | For monthly rent: the day of the month rent falls due, such as 1 or 31. Leave it out only if it is the day of the month the tenancy started. | |
| rentDueDate | No | For weekly or four-weekly rent: a day rent fell due, such as the last due date, as YYYY-MM-DD; rent periods repeat every 7 or 28 days from it. Leave it out only if they repeat from the day the tenancy started. | |
| tenancyStart | Yes | The day the tenancy, or in Wales the occupation contract, began, as YYYY-MM-DD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| party | Yes | |
| answer | Yes | |
| nation | Yes | |
| lawAsAt | Yes | |
| explanation | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, non-destructive operation. The description adds meaningful behavioral context beyond the annotations, including the special cases where a landlord cannot end the tenancy by notice in England or must apply to a tribunal in Scotland. With an output schema present, it does not need to explain return values.
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 description is two sentences, front-loaded with the core computation and followed by the important jurisdictional exceptions. Every sentence contributes useful scope or behavioral information without repetition.
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 the complexity of UK tenancy notice rules, the description clearly frames the tool's scope, parties, nations, and key legal exceptions. The input schema is fully documented and an output schema exists, so the description does not need to restate parameter or return details.
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 all seven parameters are already documented in the input schema. The description does not add further meaning about parameters such as rentDueDay, rentDueDate, or given. A baseline score of 3 is appropriate when the schema carries the parameter documentation.
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 resource: it works out the least notice and earliest end date for ending a periodic private tenancy, across UK nations and for either party. It is clear what the tool computes, but it does not explicitly differentiate itself from sibling tools such as check_statutory_notice or check_rent_increase_notice.
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 gives clear usage context by specifying periodic private tenancies, all UK nations, and both tenant- and landlord-given notice. It also notes important jurisdictional limitations for England and Scotland. However, it does not explicitly say when to use this tool instead of a sibling tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_rent_increase_noticeSection 13 rent increase checkARead-onlyIdempotentInspect
Check a section 13 rent increase notice for an assured periodic tenancy in England, served from 1 May 2026: whether the new rent's start date meets each date rule and the notice is on the prescribed form, and the earliest the new rent could start. England only; it does not judge whether the new rent is fair.
| Name | Required | Description | Default |
|---|---|---|---|
| period | Yes | How often the rent falls due. | |
| served | Yes | The day the tenant received the notice, as YYYY-MM-DD. | |
| starts | Yes | The day the notice says the new rent starts, as YYYY-MM-DD. | |
| history | Yes | Whether the rent has gone up before after a section 13 notice or a tribunal decision: none, increased (give lastIncrease), or unknown. | |
| lastIncrease | No | If the rent went up before, the day that increase took effect, as YYYY-MM-DD. | |
| tenancyStart | Yes | The day the first rent period of the tenancy began, as YYYY-MM-DD. | |
| prescribedForm | Yes | Whether the notice is on the government's prescribed form for a section 13 notice. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| checks | Yes | |
| lawAsAt | Yes | |
| earliest | Yes | |
| certainlyFrom | Yes | |
| earliestStart | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely non-obvious context: jurisdiction limits, the 1 May 2026 commencement boundary, and the negative scope on rent fairness. It doesn't discuss how 'unknown' history or 'unsure' prescribed form are handled, which is the remaining behavioral gap.
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 naming the resource and scope first, then the outputs, with zero filler. The colon-and-comma construction makes it dense to parse in one pass, which keeps it just short of ideal structure.
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, the description needn't explain returns, and annotations carry the safety profile; what remains is scope and limits, which are covered. The only omission is guidance on how uncertain inputs (history 'unknown', prescribedForm 'unsure') affect the result, which an agent might want before calling.
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 all seven parameters, including the three enum-constrained ones, are documented in the schema itself. The description adds no parameter-level meaning beyond what the schema already says, so the 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?
States a specific verb and resource ("Check a section 13 rent increase notice") and pins the scope precisely: assured periodic tenancy, England, served from 1 May 2026. It also enumerates the three things it evaluates, so an agent knows exactly what answer shape to expect and can distinguish it from the employment/other-tenancy 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?
Gives clear applicability conditions (England only, assured periodic tenancy, notices served on or after 1 May 2026) and one explicit exclusion ("does not judge whether the new rent is fair"). It does not name a sibling or alternative tool for the excluded question, so routing for fairness checks 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.
check_scottish_rent_increase_noticeScottish rent increase checkARead-onlyIdempotentInspect
Check a landlord's rent-increase notice for a private residential tenancy in Scotland, outside a rent control area: whether it gives at least three months' notice, whether the rent has already gone up in the 12 months before, and whether it is on the prescribed form; when the new rent can start, and the last day to refer it to a rent officer. Scotland only; it does not judge whether the new rent is fair.
| Name | Required | Description | Default |
|---|---|---|---|
| starts | Yes | The day the notice says the new rent starts, as YYYY-MM-DD. | |
| history | Yes | Whether the rent has gone up before: none, increased (give lastIncrease), or unknown. | |
| received | Yes | The day the tenant received the notice, as YYYY-MM-DD. | |
| lastIncrease | No | If the rent went up before, the day that increase took effect, as YYYY-MM-DD. If a rent officer or the tribunal set it, the day the landlord’s notice would have taken effect. | |
| prescribedForm | Yes | Whether the notice is on the prescribed rent-increase notice form. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| checks | Yes | |
| lawAsAt | Yes | |
| referBy | Yes | |
| summary | Yes | |
| takesEffect | Yes | |
| earliestAllowed | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/non-open-world, so the safety profile is covered; the description adds substantive behavioral boundaries beyond that — the jurisdictional and rent-control-area limits, the three specific legal tests applied, and an explicit statement of what it will not opine on. That is exactly the extra context a calling agent needs to trust and frame the result.
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 purpose, then scope, then outputs, then limits — a sensible order with no filler sentences. It is a single very long semicolon-chained sentence, which is dense but every clause carries distinct 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?
For a five-parameter read-only checker with an output schema and full annotations, the description supplies everything still needed: scope, the decision rules, the two derived outputs (new rent start date, referral deadline), and the fairness disclaimer. Nothing an agent requires to call 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 coverage is 100%, so the schema already documents all five inputs and their enums. The description nevertheless adds meaning by tying parameters to the legal rules they feed (three months' notice from `received` to `starts`, the 12-month lookback on `history`/`lastIncrease`, the `prescribedForm` test), which helps an agent supply correct values.
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 (check), a specific resource (a landlord's rent-increase notice), and narrows scope to private residential tenancies in Scotland outside rent control areas. It then enumerates the exact questions answered, so an agent can tell it apart from check_rent_increase_notice and the other check_* 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 clear applicability conditions ('private residential tenancy in Scotland, outside a rent control area') and an explicit exclusion ('it does not judge whether the new rent is fair'), which is real when-to-use guidance. What it lacks is naming an alternative tool for notices outside that scope, which would be needed for a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_statutory_noticeStatutory notice checkARead-onlyIdempotentInspect
Work out the least notice the law requires to end employment in any UK nation, from the employer and from the employee, from the start date and the day notice is given. A contract can require more notice, never less.
| Name | Required | Description | Default |
|---|---|---|---|
| given | Yes | The day notice is given, as YYYY-MM-DD. | |
| nation | Yes | The UK nation where the employee mainly works. | |
| started | Yes | The day the employee started working for the employer, as YYYY-MM-DD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| law | Yes | |
| page | Yes | |
| years | Yes | |
| lawAsAt | Yes | |
| employeeWeeks | Yes | |
| employerWeeks | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuine interpretive context beyond that: it computes both employer and employee notice, and warns that the result is a legal minimum a contract may exceed — which affects how the agent should present the answer.
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, with the core computation stated first and the contract caveat following. Every clause carries meaning.
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?
Output schema exists, so return values need no explanation, and the three-parameter surface is simple. The remaining gap is selection context: a sibling named 'check_notice_period' sits next to this tool and the description gives no basis for choosing between them.
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%, with 'given', 'nation' and 'started' each documented including date format and an enum for nation. The description restates the same inputs ('start date', 'day notice is given', 'any UK nation') without adding format or edge-case detail, so 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?
A specific verb ('work out') and resource ('the least notice the law requires to end employment'), with the scope of both directions (employer and employee) stated. However, it never distinguishes itself from the sibling 'check_notice_period', which by name appears to overlap heavily — an agent cannot tell which one to pick.
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 second sentence ('A contract can require more notice, never less') establishes that this returns a statutory floor rather than the actual contractual notice, which is a useful scope boundary. But there is no explicit when-to-use, when-not-to-use, or routing to the similarly named 'check_notice_period' sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_employment_contract_review_linkGet the employment contract review linkARead-onlyIdempotentInspect
Get the link to a full Contract Lily review of a UK employment contract, offer letter or written statement, and what it covers: whether employment reviews are open, the nations, what the report includes, the files it accepts and the price. Use it when the user wants their whole contract checked; it doesn't upload anything.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| open | Yes | |
| price | Yes | |
| nations | Yes | |
| pricing | Yes | |
| includes | Yes | |
| documents | 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 genuinely new context: nothing is uploaded, and the payload includes availability, nations, report contents, accepted files and price — telling the agent what to expect before calling.
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 the action and link first, then usage. The list of covered items is dense but each item answers a real pre-call question; nothing is padded.
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?
A zero-parameter, read-only link tool with an output schema, fully covered by the annotations plus a description of the payload's scope. An agent has everything needed to decide and call 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?
The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly avoids inventing inputs.
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 ('Get the link to a full Contract Lily review of a UK employment contract, offer letter or written statement') and enumerates what the response covers. The employment-contract scope cleanly separates it from the tenancy-agreement sibling 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?
'Use it when the user wants their whole contract checked' gives a clear triggering condition, and 'it doesn't upload anything' pre-empts a likely user concern. There is no explicit when-not or named alternative, but the document-type scoping makes the boundary obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tenancy_agreement_review_linkGet the tenancy agreement review linkARead-onlyIdempotentInspect
Get the link to a full Contract Lily review of a UK tenancy agreement, and what it covers: whether reviews are open, the nations, what the report includes, the files it accepts and the price. Use it when the user wants their whole agreement checked; it doesn't upload anything.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| open | Yes | |
| price | Yes | |
| nations | Yes | |
| pricing | Yes | |
| includes | Yes | |
| documents | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuinely new behavior: that nothing is uploaded and that the payload reports review availability, supported nations, accepted file types and price. It could mention whether the link is stable or time-limited, but the added context is solid.
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 sentence with a compact list of covered details, front-loaded with the core action. The clause after the colon is long but each item (availability, nations, contents, files, price) is informative 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 zero-parameter read tool with an output schema, the description supplies purpose, when-to-use and a summary of what comes back, so an agent can call it without further inference. Nothing needed for correct invocation 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?
Zero parameters, which is the baseline-4 case; the description correctly signals a parameterless call by framing it as simply retrieving a link and its metadata. No ambiguity that arguments might be expected.
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?
Names a specific verb and resource: fetching the Contract Lily review link for a UK tenancy agreement. It also enumerates what the response covers (availability, nations, report contents, accepted files, price). It doesn't explicitly name the sibling get_employment_contract_review_link, though the tenancy scope implicitly separates 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?
"Use it when the user wants their whole agreement checked" gives an explicit trigger condition, and "it doesn't upload anything" sets a clear boundary on what this call does versus an upload/start flow. No alternative tool is named for narrower checks, which keeps it short of a 5.
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.
1 tool update
- Added
check_scottish_rent_increase_notice
8 tool updates
- First observed
check_deposit_cap - First observed
check_holiday_entitlement - First observed
check_minimum_wage - First observed
check_notice_period - First observed
check_rent_increase_notice - First observed
check_statutory_notice - First observed
get_employment_contract_review_link - First observed
get_tenancy_agreement_review_link
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs113 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.164 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.