UK Law
Server Details
Search and read all UK legislation (130k Acts and regulations), updated daily, with official links.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- flaviohtavares/uk-law-mcp
- GitHub Stars
- 0
- Server Listing
- UK Law MCP Server
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 4 tools
Each tool targets a distinct object: search by title/id, browse topics, read a topic's legislation, read a law. The only mild overlap is get_topic vs list_topics, but the descriptions make the boundary clear (list = topic index with counts, get = laws in force on a topic).
All four names follow the same snake_case verb_noun pattern (get_law, get_topic, list_topics, search_laws), with singular nouns for single-item retrieval and plural for collections. No mixing of conventions.
Four tools is on the lean side but fits a focused read-only legislation lookup surface, and each tool covers a distinct step in the browse flow. Nothing feels redundant or bloated.
The surface covers the core path: search -> topics -> topic contents -> read a law (with paging for long statutes). Minor gaps remain, such as no full-text search over law bodies (title/id only) and no tool for amendment/version history or cross-references.
Available Tools
4 toolsget_lawRead a UK lawARead-onlyInspect
Read a law by id. Short laws come whole. Long laws (100+ sections) return their front matter and a Contents list: then ask for one part, e.g. part: "section 86", "schedule 1", "regulation 3" or "part 2" (lists that part's sections).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Law id from search_laws, e.g. ukpga/1996/18 | |
| part | No | One section, regulation, article, schedule or part of a long law, e.g. "section 86" | |
| max_chars | No | Default 60000 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish read-only and open-world behavior, while the description adds important non-obvious behavior: short laws are returned whole, but long laws return only front matter and a Contents list first. It still does not discuss truncation, errors, or rate limits, so it is strong but not complete.
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 front-loaded, concise, and well-structured: it states the core action, then explains the important short-law/long-law branching and follow-up part request with examples. Every sentence contributes useful operational detail.
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 three-parameter read tool with no output schema, the description covers the key return-shape nuance and the follow-up part workflow. It is nearly complete, though it could say more about max_chars behavior and what front matter includes.
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 real meaning to the part parameter by explaining that it is used after a long-law Contents response and by giving concrete part formats. It does not add meaning beyond the schema for max_chars.
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 gives a specific verb and resource: "Read a law by id," and it clarifies short-law versus long-law behavior. It does not explicitly name sibling tools like search_laws, so sibling differentiation is partly implicit rather than fully stated.
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 clearly explains when to supply a part: long laws return front matter and a Contents list, then the agent should request one section, schedule, regulation, or part. It gives useful examples but does not mention alternatives or when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_topicRead a topic pageBRead-onlyInspect
The Acts and regulations in force on one topic, with how many regulations each Act has on it. Big topics list regulations by year: pass year to read one.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Topic name from list_topics, e.g. Landlord and Tenant | |
| year | No | For big topics: the year of regulations to list | |
| max_chars | No | Default 60000 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so safety is covered. The description adds useful response-shape context (Acts with counts, year-based listing for big topics) but says nothing about truncation behavior for max_chars, which is the key behavioral risk on a read tool returning potentially 60k+ characters.
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 short sentences, front-loaded with the return content before the conditional year rule. The phrasing is slightly telegraphic ('pass year to read one') but nothing is wasted.
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 three-parameter read tool with no output schema, the description conveys the return shape reasonably well. It leaves two gaps an agent would care about: what happens when a big topic is queried without year, and how truncation via max_chars is surfaced.
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 all three parameters are documented in the schema itself, giving a baseline of 3. The description's note on year largely restates the schema's own wording, and it adds nothing about max_chars beyond the schema's 'Default 60000'.
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 resource (Acts and regulations in force on one topic) and states what the response contains (a per-Act regulation count), which is far more informative than the title's 'Read a topic page'. It doesn't explicitly differentiate itself from siblings like get_law or search_laws, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives conditional guidance for one path: 'Big topics list regulations by year: pass year to read one,' which tells the agent when the year parameter is needed. It offers no guidance on when to prefer this over get_law or search_laws, and no statement of what happens if year is omitted on a big topic.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_topicsList topicsARead-onlyInspect
Topics (the official subject headings of legislation.gov.uk) with the number of Acts and regulations in force. Optionally only those whose name has these words.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | e.g. housing, tax, employment |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, so the agent knows this is a safe read against an external dataset. The description adds useful behavioral content by revealing that each topic is accompanied by in-force counts for Acts and regulations, which is not obvious from the name. It says nothing about whether all topics are returned at once or how large the result set is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with what the tool returns before mentioning the optional filter; nothing is redundant. The second sentence is slightly telegraphic ('Optionally only those whose name has these words'), which costs a little clarity but not length.
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 one optional parameter, no output schema, and read-only annotations, the description is nearly sufficient: it describes the returned fields inline, which compensates for the missing output schema. Only the result-set shape (complete list vs paginated) is unaddressed, a minor gap at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single query parameter is already documented with example values (housing, tax, employment). The description adds only that the match is word-based against the topic's name, which is marginal beyond the schema. Baseline 3 applies when the schema carries the semantics.
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+resource (listing topics) and even defines the domain term: topics are 'the official subject headings of legislation.gov.uk'. It also discloses what each entry carries, the number of Acts and regulations in force. It does not explicitly contrast itself with get_topic, but the singular sibling name makes the distinction inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the optional filter is introduced with 'Optionally only those whose name has these words', which tells the agent that an unfiltered call is valid. There is no statement about when to prefer this over get_topic or search_laws, and no guidance on how to find a topic's identifier for a follow-up call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_lawsSearch UK lawsARead-onlyInspect
Find UK Acts and regulations by words of their title, or by id (e.g. ukpga/1996/18). Exact titles, Acts and laws in force come first. Returns id, title, status, extent and topics.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Default 20 | |
| query | Yes | Words from the title, e.g. "employment rights act", or an id such as "ukpga/2018/12" | |
| topic | No | Only laws under a topic whose name contains this text, e.g. Housing | |
| types | No | Only these id prefixes: ukpga (UK Acts), uksi (UK regulations), asp/ssi (Scotland), asc/anaw/wsi (Wales), nia/nisr (Northern Ireland), eur (EU-origin) | |
| extent | No | Only laws that extend to E, W, S or N.I. | |
| in_force | No | Leave out repealed laws |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a read-only, open-world operation. The description adds useful ranking behavior ('Exact titles, Acts and laws in force come first') and lists returned fields, but it does not explain pagination, error handling, or how open-world search affects results.
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 three short sentences: action first, then ordering behavior, then return fields. There is no redundant wording, and the most important information is front-loaded.
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 that there is no output schema, the description usefully lists the returned fields and explains result ordering. The main omission is guidance on when to choose this tool over sibling retrieval tools, but parameter and safety context are otherwise complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all six parameters are already documented. The description restates the query's title/id modes but adds no extra meaning for topic, types, extent, in_force, or limit, which matches the baseline for high schema coverage.
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 ('Find') and resource ('UK Acts and regulations') and gives two explicit query modes: title words or an id such as ukpga/1996/18. This makes the tool's purpose immediately clear.
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 does not say when to use this tool versus get_law, get_topic, or list_topics. The search phrasing implies usage, but no explicit alternatives or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_law - First observed
get_topic - First observed
list_topics - First observed
search_laws
Related MCP Connectors
Search and read UK legislation at any date, resolve citations, list amendments, track changes.
Search UK Acts, Statutory Instruments, and legislation with full text retrieval
Point-in-time amendment history for 528 UK law provisions: search, version history, changes.
UK legal research — case law, legislation, Hansard, bills, votes, committees, HMRC, citations
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables searching and reading UK legislation as it stands now, as enacted, or on any date, resolving citations to canonical items and provisions, listing amendments and effects, and tracking daily changes via the legislation.gov.uk publication log.691 npm2Apache 2.0
- AlicenseAqualityBmaintenanceEnables searching and retrieval of UK legislation (Acts, Statutory Instruments) from legislation.gov.uk with persistent identifiers and verifiable citations.9101 PyPIApache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables querying point-in-time amendment history for UK law, including searching provisions, viewing provision histories, listing recent amendments, and identifying most-amended provisions.1MIT
- AlicenseAqualityBmaintenanceProvides comprehensive tools for searching UK case law, legislation, parliamentary Hansard debates, and HMRC tax guidance. It features a specialized OSCOLA citation parser to extract and resolve legal references directly from text.37527 PyPI20MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.