Home / MCP registry index / io.github.paulieb89/uk-legal-mcp

UK Legal Research

io.github.paulieb89/uk-legal-mcp in the official MCP registry. Endpoint https://uk-legal-mcp.fly.dev/mcp. Source: github.com/paulieb89/uk-legal-mcp.

The registry describes it as: UK legal research — case law, legislation, Hansard, bills, votes, committees, HMRC, citations

We read its 37 tools on 2026-10-29. Nothing in them matched our tool-poisoning rules. It also sets server instructions, text a client puts in front of the model on connect; those were read too.

A clean read means these rules found nothing, not that the server is harmless. A server can change its tools at any time, which is why the index reads it again every week.

Connect it

The endpoint answers MCP over HTTP; that is how we read it. Add it to your client:

Claude Code
claude mcp add --transport http uk-legal-mcp https://uk-legal-mcp.fly.dev/mcp
Cursor: ~/.cursor/mcp.json
{
  "mcpServers": {
    "uk-legal-mcp": {
      "url": "https://uk-legal-mcp.fly.dev/mcp"
    }
  }
}
VS Code
code --add-mcp '{"name":"uk-legal-mcp","type":"http","url":"https://uk-legal-mcp.fly.dev/mcp"}'

Some servers ask you to sign in the first time a client connects, or want a key from the people who run them; the server's own docs say which.

Let Claude Code check servers as it adds them

With the free lazaretto-guard plugin installed, when Claude Code adds a server for you or writes one into an MCP config, the plugin reads the server's tools first and asks you if one of our rules matches. Install it, restart Claude Code, then ask it to run the command above.

Install lazaretto-guard
claude plugin marketplace add jamesdfinance-dev/lazaretto-plugins
claude plugin install lazaretto-guard@lazaretto-plugins

Tools it advertises

judgment_get_header judgment_get_index judgment_get_paragraph case_law_search case_law_grep_judgment legislation_search legislation_get_section legislation_get_toc parliament_search_hansard parliament_policy_position_summary parliament_find_member parliament_member_debates parliament_member_interests parliament_search_petitions parliament_get_debate_divisions parliament_get_debate_contributions parliament_lookup_by_column bills_search_bills bills_get_bill votes_search_divisions votes_get_division committees_search_committees committees_get_committee committees_search_businesses committees_search_evidence citations_parse citations_resolve citations_network citations_format_oscola hmrc_get_vat_rate hmrc_check_mtd_status hmrc_search_guidance hmrc_get_manual_page list_prompts get_prompt list_resources read_resource

Run this server? Show the check in your README

The badge reflects the latest weekly read: MCP tool check badge

Markdown
[![MCP tool check](https://lazaretto.dev/mcp-registry/io-github-paulieb89-uk-legal-mcp/badge.svg)](https://lazaretto.dev/mcp-registry/io-github-paulieb89-uk-legal-mcp)

How this was checked

Lazaretto connects to the endpoint the way any MCP client does, asks the server to introduce itself and list its tools, and reads every name, description, parameter schema and server instruction for tool poisoning: hidden directive blocks, orders to read local secrets, parameters built to carry secrets or the conversation out, orders that redirect another server's tools, and invisible characters. It never calls a tool. What we found across the registry.

To run the same check every time Claude Code adds a server, install the free lazaretto-guard plugin. Browse every server in the index.