Koskamo

Contract Lily MCP

An official MCP server by Contract Lily that allows AI assistants to check UK tenancy and employment rules, including deposit caps, notice periods, rent increase validity, holiday entitlement, and minimum wage compliance, without requiring user authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Contract Lily MCP logo, by Contract LilyVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Contract Lily
MCP endpoint (Streamable HTTP)
https://api.contractlily.com/mcp
Vendor documentation

What you can do with it

  • Check if a tenancy deposit amount is within legal caps for the specific UK nation.
  • Verify if a Section 13 rent increase notice meets date and form requirements in England.
  • Calculate the statutory notice period required to end a job in the UK.
  • Determine the minimum paid holiday entitlement based on weekly working days.

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
contract-lily 1.0.0
MCP protocol
2025-06-18
Tools
11 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Contract Lily reviews UK residential tenancy agreements, and its rules also cover UK employment basics. These tools apply Contract Lily's own code-based rules for England, Wales, Scotland and Northern Ireland to the facts the user gives, the same rules its reviews use. Ask the user for any fact a tool needs rather than guessing it. Results are general information, not legal advice: pass on the law each result names, and the page it links, so the user can read more. When the user has a tenancy agreement they want checked, or a tenancy answer turns on clauses these tools cannot see, offer get_tenancy_agreement_review_link: it gives the link to a full review of the tenancy agreement. When the user has an employment contract, offer letter or written statement they want checked, or an employment answer turns on clauses these tools cannot see, offer get_employment_contract_review_link: it says whether employment reviews are open and gives the link.

Tools

11 advertised

check_deposit_cap — Deposit cap check
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

check_deposit_cap input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "nation",
    "rent",
    "rentPeriod"
  ],
  "properties": {
    "rent": {
      "type": "number",
      "maximum": 1000000,
      "minimum": 0.01,
      "description": "The rent for one rent period, in pounds, for example 1200 or 950.50."
    },
    "nation": {
      "enum": [
        "england",
        "wales",
        "scotland",
        "northern-ireland"
      ],
      "type": "string",
      "description": "The UK nation the home is in."
    },
    "rentPeriod": {
      "enum": [
        "four_weeks",
        "month",
        "week"
      ],
      "type": "string",
      "description": "How often the rent falls due."
    },
    "depositAsked": {
      "type": "number",
      "maximum": 10000000,
      "minimum": 0,
      "description": "The tenancy deposit the landlord or agent asked for, in pounds, if the user gave one."
    }
  }
}
check_deposit_cap output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "depositAsked",
    "lawAsAt",
    "limits",
    "nation",
    "page",
    "rent"
  ],
  "properties": {
    "page": {
      "type": "string"
    },
    "rent": {
      "type": "string"
    },
    "limits": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "kind",
          "law",
          "overAbove",
          "upTo",
          "url"
        ],
        "properties": {
          "law": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "kind": {
            "enum": [
              "tenancy deposit",
              "holding deposit"
            ],
            "type": "string"
          },
          "upTo": {
            "type": "string"
          },
          "overAbove": {
            "type": "string"
          }
        }
      }
    },
    "nation": {
      "enum": [
        "england",
        "wales",
        "scotland",
        "northern-ireland"
      ],
      "type": "string"
    },
    "lawAsAt": {
      "type": "string"
    },
    "depositAsked": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "amount",
            "verdict"
          ],
          "properties": {
            "amount": {
              "type": "string"
            },
            "verdict": {
              "enum": [
                "within",
                "over",
                "unclear",
                "unchecked"
              ],
              "type": "string"
            }
          }
        },
        {
          "type": "null"
        }
      ]
    }
  }
}
check_deposit_cap annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_notice_period — Notice period check
Advertised by the server during the last successful anonymous check.
Advertised read-only

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).

check_notice_period input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "given",
    "nation",
    "party",
    "period",
    "tenancyStart"
  ],
  "properties": {
    "given": {
      "type": "string",
      "format": "date",
      "description": "The day the notice is given, as YYYY-MM-DD. In Scotland, the day the other side receives it."
    },
    "party": {
      "enum": [
        "tenant",
        "landlord"
      ],
      "type": "string",
      "description": "Who gives the notice."
    },
    "nation": {
      "enum": [
        "england",
        "wales",
        "scotland",
        "northern-ireland"
      ],
      "type": "string",
      "description": "The UK nation the home is in."
    },
    "period": {
      "enum": [
        "four_weeks",
        "month",
        "week"
      ],
      "type": "string",
      "description": "How often the rent falls due."
    },
    "rentDueDay": {
      "type": "integer",
      "maximum": 31,
      "minimum": 1,
      "description": "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": {
      "type": "string",
      "format": "date",
      "description": "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": {
      "type": "string",
      "format": "date",
      "description": "The day the tenancy, or in Wales the occupation contract, began, as YYYY-MM-DD."
    }
  }
}
check_notice_period output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "answer",
    "explanation",
    "lawAsAt",
    "nation",
    "page",
    "party"
  ],
  "properties": {
    "page": {
      "type": "string"
    },
    "party": {
      "enum": [
        "tenant",
        "landlord"
      ],
      "type": "string"
    },
    "answer": {
      "oneOf": [
        {
          "type": "object",
          "required": [
            "earliestEnd",
            "kind",
            "minimum"
          ],
          "properties": {
            "kind": {
              "const": "notice"
            },
            "minimum": {
              "type": "string"
            },
            "earliestEnd": {
              "type": "string",
              "format": "date"
            }
          }
        },
        {
          "type": "object",
          "required": [
            "earliestEnd",
            "givenFrom",
            "kind"
          ],
          "properties": {
            "kind": {
              "const": "too-early"
            },
            "givenFrom": {
              "type": "string",
              "format": "date"
            },
            "earliestEnd": {
              "type": "string",
              "format": "date"
            }
          }
        },
        {
          "type": "object",
          "required": [
            "kind"
          ],
          "properties": {
            "kind": {
              "const": "no-notice-to-quit"
            }
          }
        },
        {
          "type": "object",
          "required": [
            "days",
            "kind",
            "tribunalFrom"
          ],
          "properties": {
            "days": {
              "enum": [
                28,
                84
              ],
              "type": "number"
            },
            "kind": {
              "const": "notice-to-leave"
            },
            "tribunalFrom": {
              "type": "string",
              "format": "date"
            }
          }
        }
      ]
    },
    "nation": {
      "enum": [
        "england",
        "wales",
        "scotland",
        "northern-ireland"
      ],
      "type": "string"
    },
    "lawAsAt": {
      "type": "string"
    },
    "explanation": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  }
}
check_notice_period annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_rent_increase_notice — Section 13 rent increase check
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

check_rent_increase_notice input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "history",
    "period",
    "prescribedForm",
    "served",
    "starts",
    "tenancyStart"
  ],
  "properties": {
    "period": {
      "enum": [
        "four_weeks",
        "month",
        "week"
      ],
      "type": "string",
      "description": "How often the rent falls due."
    },
    "served": {
      "type": "string",
      "format": "date",
      "description": "The day the tenant received the notice, as YYYY-MM-DD."
    },
    "starts": {
      "type": "string",
      "format": "date",
      "description": "The day the notice says the new rent starts, as YYYY-MM-DD."
    },
    "history": {
      "enum": [
        "none",
        "increased",
        "unknown"
      ],
      "type": "string",
      "description": "Whether the rent has gone up before after a section 13 notice or a tribunal decision: none, increased (give lastIncrease), or unknown."
    },
    "lastIncrease": {
      "type": "string",
      "format": "date",
      "description": "If the rent went up before, the day that increase took effect, as YYYY-MM-DD."
    },
    "tenancyStart": {
      "type": "string",
      "format": "date",
      "description": "The day the first rent period of the tenancy began, as YYYY-MM-DD."
    },
    "prescribedForm": {
      "enum": [
        "yes",
        "no",
        "unsure"
      ],
      "type": "string",
      "description": "Whether the notice is on the government's prescribed form for a section 13 notice."
    }
  }
}
check_rent_increase_notice output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "certainlyFrom",
    "checks",
    "earliest",
    "earliestStart",
    "lawAsAt",
    "page"
  ],
  "properties": {
    "page": {
      "type": "string"
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "outcome",
          "rule",
          "text"
        ],
        "properties": {
          "rule": {
            "enum": [
              "notice",
              "period",
              "sinceStart",
              "sinceLastIncrease",
              "form"
            ],
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "outcome": {
            "enum": [
              "met",
              "not-met",
              "unsure"
            ],
            "type": "string"
          }
        }
      }
    },
    "lawAsAt": {
      "type": "string"
    },
    "earliest": {
      "type": "string",
      "format": "date"
    },
    "certainlyFrom": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ]
    },
    "earliestStart": {
      "type": "string"
    }
  }
}
check_rent_increase_notice annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_scottish_rent_increase_notice — Scottish rent increase check
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

check_scottish_rent_increase_notice input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "history",
    "prescribedForm",
    "received",
    "starts"
  ],
  "properties": {
    "starts": {
      "type": "string",
      "format": "date",
      "description": "The day the notice says the new rent starts, as YYYY-MM-DD."
    },
    "history": {
      "enum": [
        "none",
        "increased",
        "unknown"
      ],
      "type": "string",
      "description": "Whether the rent has gone up before: none, increased (give lastIncrease), or unknown."
    },
    "received": {
      "type": "string",
      "format": "date",
      "description": "The day the tenant received the notice, as YYYY-MM-DD."
    },
    "lastIncrease": {
      "type": "string",
      "format": "date",
      "description": "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": {
      "enum": [
        "yes",
        "no",
        "unsure"
      ],
      "type": "string",
      "description": "Whether the notice is on the prescribed rent-increase notice form."
    }
  }
}
check_scottish_rent_increase_notice output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "checks",
    "earliestAllowed",
    "lawAsAt",
    "page",
    "referBy",
    "summary",
    "takesEffect"
  ],
  "properties": {
    "page": {
      "type": "string"
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "outcome",
          "rule",
          "text"
        ],
        "properties": {
          "rule": {
            "enum": [
              "notice",
              "sinceLastIncrease",
              "form"
            ],
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "outcome": {
            "enum": [
              "met",
              "not-met",
              "unsure"
            ],
            "type": "string"
          }
        }
      }
    },
    "lawAsAt": {
      "type": "string"
    },
    "referBy": {
      "type": "string",
      "format": "date"
    },
    "summary": {
      "type": "string"
    },
    "takesEffect": {
      "type": "string",
      "format": "date"
    },
    "earliestAllowed": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ]
    }
  }
}
check_scottish_rent_increase_notice annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_welsh_rent_increase_notice — Welsh rent increase check
Advertised by the server during the last successful anonymous check.
Advertised read-only

Check a landlord's notice of a new rent for a periodic standard occupation contract in Wales: whether the new rent starts at least two months after the notice is given, whether it comes at least a year after the last increase, and whether it is on form RHW12; and the earliest the new rent can start. Wales only; it does not judge whether the new rent is fair.

check_welsh_rent_increase_notice input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "history",
    "prescribedForm",
    "received",
    "starts"
  ],
  "properties": {
    "starts": {
      "type": "string",
      "format": "date",
      "description": "The day the notice says the new rent starts, as YYYY-MM-DD."
    },
    "history": {
      "enum": [
        "none",
        "increased",
        "unknown"
      ],
      "type": "string",
      "description": "Whether the rent has gone up before: none, increased (give lastIncrease), or unknown."
    },
    "received": {
      "type": "string",
      "format": "date",
      "description": "The day the contract-holder was given the notice, as YYYY-MM-DD."
    },
    "lastIncrease": {
      "type": "string",
      "format": "date",
      "description": "If the rent went up before, the day that increase took effect, as YYYY-MM-DD."
    },
    "prescribedForm": {
      "enum": [
        "yes",
        "no",
        "unsure"
      ],
      "type": "string",
      "description": "Whether the notice is on form RHW12, the Welsh Government form for a notice of variation of rent."
    }
  }
}
check_welsh_rent_increase_notice output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "checks",
    "earliestAllowed",
    "lawAsAt",
    "page",
    "summary"
  ],
  "properties": {
    "page": {
      "type": "string"
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "outcome",
          "rule",
          "text"
        ],
        "properties": {
          "rule": {
            "enum": [
              "notice",
              "sinceLastIncrease",
              "form"
            ],
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "outcome": {
            "enum": [
              "met",
              "not-met",
              "unsure"
            ],
            "type": "string"
          }
        }
      }
    },
    "lawAsAt": {
      "type": "string"
    },
    "summary": {
      "type": "string"
    },
    "earliestAllowed": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ]
    }
  }
}
check_welsh_rent_increase_notice annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_northern_ireland_rent_increase_notice — Northern Ireland rent increase check
Advertised by the server during the last successful anonymous check.
Advertised read-only

Check a landlord's rent increase notice, given from 1 April 2025, for a private tenancy in Northern Ireland other than a controlled tenancy (do not use it for a controlled tenancy, which has different rules): whether it is in writing, whether the new rent starts at least three months after the notice is given, and whether it comes at least 12 months after the tenancy began and the last increase; and when the new rent can start. Northern Ireland only; it does not judge whether the new rent is fair.

check_northern_ireland_rent_increase_notice input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "history",
    "received",
    "starts",
    "tenancyStart",
    "written"
  ],
  "properties": {
    "starts": {
      "type": "string",
      "format": "date",
      "description": "The day the notice says the new rent starts, as YYYY-MM-DD."
    },
    "history": {
      "enum": [
        "none",
        "increased",
        "unknown"
      ],
      "type": "string",
      "description": "Whether the rent has gone up before: none, increased (give lastIncrease), or unknown."
    },
    "written": {
      "enum": [
        "yes",
        "no",
        "unsure"
      ],
      "type": "string",
      "description": "Whether the notice is in writing; an email, text or other electronic message counts."
    },
    "received": {
      "type": "string",
      "format": "date",
      "description": "The day the tenant was given the notice, as YYYY-MM-DD; from 1 April 2025."
    },
    "lastIncrease": {
      "type": "string",
      "format": "date",
      "description": "If the rent went up before, the day that increase took effect, as YYYY-MM-DD."
    },
    "tenancyStart": {
      "type": "string",
      "format": "date",
      "description": "The day the tenancy was granted, as YYYY-MM-DD."
    }
  }
}
check_northern_ireland_rent_increase_notice output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "checks",
    "earliestAllowed",
    "lawAsAt",
    "page",
    "summary"
  ],
  "properties": {
    "page": {
      "type": "string"
    },
    "checks": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "outcome",
          "rule",
          "text"
        ],
        "properties": {
          "rule": {
            "enum": [
              "notice",
              "sinceLastIncrease",
              "form"
            ],
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "outcome": {
            "enum": [
              "met",
              "not-met",
              "unsure"
            ],
            "type": "string"
          }
        }
      }
    },
    "lawAsAt": {
      "type": "string"
    },
    "summary": {
      "type": "string"
    },
    "earliestAllowed": {
      "anyOf": [
        {
          "type": "string",
          "format": "date"
        },
        {
          "type": "null"
        }
      ]
    }
  }
}
check_northern_ireland_rent_increase_notice annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_statutory_notice — Statutory notice check
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

check_statutory_notice input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "given",
    "nation",
    "started"
  ],
  "properties": {
    "given": {
      "type": "string",
      "format": "date",
      "description": "The day notice is given, as YYYY-MM-DD."
    },
    "nation": {
      "enum": [
        "england",
        "wales",
        "scotland",
        "northern-ireland"
      ],
      "type": "string",
      "description": "The UK nation where the employee mainly works."
    },
    "started": {
      "type": "string",
      "format": "date",
      "description": "The day the employee started working for the employer, as YYYY-MM-DD."
    }
  }
}
check_statutory_notice output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "employeeWeeks",
    "employerWeeks",
    "law",
    "lawAsAt",
    "page",
    "years"
  ],
  "properties": {
    "law": {
      "type": "string"
    },
    "page": {
      "type": "string"
    },
    "years": {
      "type": "number"
    },
    "lawAsAt": {
      "type": "string"
    },
    "employeeWeeks": {
      "type": "number"
    },
    "employerWeeks": {
      "type": "number"
    }
  }
}
check_statutory_notice annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_holiday_entitlement — Holiday entitlement check
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

check_holiday_entitlement input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "daysPerWeek",
    "nation"
  ],
  "properties": {
    "nation": {
      "enum": [
        "england",
        "wales",
        "scotland",
        "northern-ireland"
      ],
      "type": "string",
      "description": "The UK nation where the worker mainly works."
    },
    "daysPerWeek": {
      "type": "number",
      "maximum": 7,
      "minimum": 0.5,
      "description": "The days the worker works each week, such as 5 or 2.5."
    }
  }
}
check_holiday_entitlement output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "days",
    "law",
    "lawAsAt",
    "page"
  ],
  "properties": {
    "law": {
      "type": "string"
    },
    "days": {
      "type": "number"
    },
    "page": {
      "type": "string"
    },
    "lawAsAt": {
      "type": "string"
    }
  }
}
check_holiday_entitlement annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
check_minimum_wage — Minimum wage check
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

check_minimum_wage input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "age",
    "apprentice",
    "date",
    "hourlyPence",
    "pastSchoolAge"
  ],
  "properties": {
    "age": {
      "type": "integer",
      "maximum": 100,
      "minimum": 13,
      "description": "The worker’s age."
    },
    "date": {
      "type": "string",
      "format": "date",
      "description": "The day the pay is for, as YYYY-MM-DD."
    },
    "apprentice": {
      "enum": [
        "no",
        "first-year",
        "later-year"
      ],
      "type": "string",
      "description": "Whether the worker is an apprentice, and if so whether in the first year of the apprenticeship."
    },
    "hourlyPence": {
      "type": "integer",
      "minimum": 0,
      "description": "The pay for an hour, in pence."
    },
    "pastSchoolAge": {
      "type": "boolean",
      "description": "Whether the worker is over compulsory school age (past the school-leaving day of the year they turn 16)."
    }
  }
}
check_minimum_wage output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "answer",
    "lawAsAt",
    "page"
  ],
  "properties": {
    "page": {
      "type": "string"
    },
    "answer": {
      "oneOf": [
        {
          "type": "object",
          "required": [
            "band",
            "from",
            "hourlyPence",
            "kind",
            "meets"
          ],
          "properties": {
            "band": {
              "enum": [
                "national-living-wage",
                "18-to-20",
                "under-18",
                "apprentice"
              ],
              "type": "string"
            },
            "from": {
              "type": "string"
            },
            "kind": {
              "const": "rate"
            },
            "meets": {
              "type": "boolean"
            },
            "hourlyPence": {
              "type": "number"
            }
          }
        },
        {
          "type": "object",
          "required": [
            "kind"
          ],
          "properties": {
            "kind": {
              "const": "not-entitled"
            }
          }
        }
      ]
    },
    "lawAsAt": {
      "type": "string"
    }
  }
}
check_minimum_wage annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_tenancy_agreement_review_link — Get the tenancy agreement review link
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_tenancy_agreement_review_link input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [],
  "properties": {}
}
get_tenancy_agreement_review_link output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "documents",
    "includes",
    "nations",
    "open",
    "price",
    "pricing",
    "url"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "open": {
      "type": "boolean"
    },
    "price": {
      "type": "string"
    },
    "nations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "pricing": {
      "type": "string"
    },
    "includes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "documents": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "kinds",
            "maxDocuments",
            "maxMegabytes"
          ],
          "properties": {
            "kinds": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "maxDocuments": {
              "type": "number"
            },
            "maxMegabytes": {
              "type": "number"
            }
          }
        },
        {
          "type": "null"
        }
      ]
    }
  }
}
get_tenancy_agreement_review_link annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_employment_contract_review_link — Get the employment contract review link
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_employment_contract_review_link input schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [],
  "properties": {}
}
get_employment_contract_review_link output schema
{
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "required": [
    "documents",
    "includes",
    "nations",
    "open",
    "price",
    "pricing",
    "url"
  ],
  "properties": {
    "url": {
      "type": "string"
    },
    "open": {
      "type": "boolean"
    },
    "price": {
      "type": "string"
    },
    "nations": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "pricing": {
      "type": "string"
    },
    "includes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "documents": {
      "anyOf": [
        {
          "type": "object",
          "required": [
            "kinds",
            "maxDocuments",
            "maxMegabytes"
          ],
          "properties": {
            "kinds": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "maxDocuments": {
              "type": "number"
            },
            "maxMegabytes": {
              "type": "number"
            }
          }
        },
        {
          "type": "null"
        }
      ]
    }
  }
}
get_employment_contract_review_link annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
710 ms
95th percentile latency
710 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 710 ms · metadata changed · 11 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http contract-lily-mcp https://api.contractlily.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add contract-lily-mcp --url https://api.contractlily.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable contract-lily-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "contract-lily-mcp": {
      "url": "https://api.contractlily.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "contract-lily-mcp": {
      "type": "streamableHttp",
      "url": "https://api.contractlily.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start contract-lily-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "contract-lily-mcp": {
      "type": "http",
      "url": "https://api.contractlily.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http contract-lily-mcp https://api.contractlily.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "contract-lily-mcp": {
      "url": "https://api.contractlily.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "contract-lily-mcp": {
      "serverUrl": "https://api.contractlily.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Contract Lily MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Contract Lily MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing