protogrid

Search / io.github.cyanheads/uk-legislation-mcp-server

uk-legislation-mcp-server

R0· no sign-in

Search and read UK legislation at any date, resolve citations, list amendments, track changes.

v0.1.2 · active · repository · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality89good
Trust94of 100
Uptime, 30 days100%
Latency p50194 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "uk-legislation-mcp-server": {
      "type": "http",
      "url": "https://uk-legislation.caseyjhand.com/mcp"
    }
  }
}
claude mcp add --transport http uk-legislation-mcp-server https://uk-legislation.caseyjhand.com/mcp
[mcp_servers.uk-legislation-mcp-server]
url = "https://uk-legislation.caseyjhand.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "uk-legislation-mcp-server": {
      "type": "remote",
      "url": "https://uk-legislation.caseyjhand.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "uk-legislation-mcp-server": {
      "type": "http",
      "url": "https://uk-legislation.caseyjhand.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=uk-legislation-mcp-server&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdWstbGVnaXNsYXRpb24uY2FzZXlqaGFuZC5jb20vbWNwIn0%3D"
}
{
  "servers": {
    "uk-legislation-mcp-server": {
      "type": "http",
      "url": "https://uk-legislation.caseyjhand.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "uk-legislation-mcp-server": {
      "httpUrl": "https://uk-legislation.caseyjhand.com/mcp"
    }
  }
}
extensions:
  "uk-legislation-mcp-server":
    enabled: true
    name: "uk-legislation-mcp-server"
    type: streamable_http
    uri: "https://uk-legislation.caseyjhand.com/mcp"
    timeout: 300

Quality 89 / 100good

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene86 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations6 of 6 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: uklaw_search_legislation (destructiveHint); uklaw_get_document (destructiveHint); uklaw_list_reference (destructiveHint); …
  • pass
    tools.token_costabout 3,519 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability100 · weight 15
  • pass
    stability.changesno tool changes in 30 days
  • pass
    stability.rug_pullno tool changed its meaning under the same name
dependenciesn/a · weight 15

6 tools, about 3,519 tokens to load them all · tool set 4c5552fa4bca · checked 2026-10-20 19:42 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 94 / 100

provenance80
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +reachable +uptime-100% +updated-11d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Dependencies

@cyanheads/[email protected] npmthis version is not known to the dependency resolver

@cyanheads/[email protected] npmthis version is not known to the dependency resolver

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://uk-legislation.caseyjhand.com/mcp streamable-httpnoneyes100%194 ms2026-07-282026-10-20
packageregistryversionruntimesecrets
@cyanheads/uk-legislation-mcp-servernpm0.1.2npx
@cyanheads/uk-legislation-mcp-servernpm0.1.2npx

Tools (6)

uklaw_get_amendmentsread-onlyList the effects — amendments, repeals, revocations, commencements, modifications — recorded against an item (direction affected) or made by an item (direction affecting), from legislation.gov.uk's changes feeds. Filter by the other item (counterpart), by applied status (unapplied = the outstanding work on the revised text), and by provision. item may be partial (ukpga/2018 = all effects on 2018 Acts). Each effect names both sides with provision links, in-force dates, and why it is not applied. For the applied history of one provision in prose, read its annotations with uklaw_get_document.
uklaw_get_documentread-onlyRead one item or one provision of UK legislation from legislation.gov.uk — as it stands now (revised), as enacted/made, or as it stood on a date — in Markdown, with its editorial status, annotations (the applied amendment history), the unapplied effects touching it, the versions available, and attribution. Provision-level reads are the main path; an item-level read returns the whole text only for small items and otherwise an outline of provision paths to read next. With match_text (item level), returns the provisions whose text matches. Revised text is an editorial consolidation that can lag: read editorial.caveat and unapplied_effects before relying on it, and use uklaw_get_amendments for every recorded effect on an item, applied or not.
uklaw_list_referenceread-onlyDecode the vocabulary the other uklaw_* tools take and return: legislation type codes (ukpga, uksi, eur, …) with their labels, categories and enacted keywords; type groups; extents; version keywords; document status; annotation letters (F, C, I, M, E, P, X); effect record fields; provision path forms and shorthand; accepted citation formats; Publication Log vocabulary and read modes; data coverage; and the attribution lines. Offline — no request to legislation.gov.uk.
uklaw_lookup_citationread-onlyResolve a citation or short title to the canonical legislation.gov.uk item and provision: "Data Protection Act 2018 s. 45", "2018 c. 12", "S.I. 2019/419", "S.S.I. 2020/123", "S.R. 2020/12", "2020 asp 13", "Regulation (EU) 2016/679 art. 28", a legislation.gov.uk URI, or a short title. Returns the item path to pass to uklaw_get_document, and when a provision is given, whether it exists in the current version. A miss or an ambiguous title is a result with found false plus guidance or candidates, not an error. To find legislation by topic or by partial title words rather than a known citation, use uklaw_search_legislation.
uklaw_search_legislationread-onlySearch the UK statute book on legislation.gov.uk by full text or title, or list legislation by type and year, filtered by geographical extent and point in time. Full-text search ranks by relevance; title searches and type/year listings run newest year first and carry type and year counts (facets) to narrow with. Each result gives the item path to pass to uklaw_get_document. For a known citation or short title, uklaw_lookup_citation is cheaper and exact.
uklaw_track_changesread-onlyRead the legislation.gov.uk Publication Log for a date window of up to 31 days: new items, new revised versions, newly recorded effects, and withdrawals, newest first — the compliance-monitoring view of "what changed". Filter by content type, effect direction, category, an item or type/year, first-time items only, or event. With a full item path it reads that item's own log, usually in one call; otherwise it walks the window day by day, newest first, so a broad window may need several calls. A changes event carries no effect detail — uklaw_get_amendments with that item has it. Continue with next_cursor.

Schemas: list_tools.

Similar MCP servers

More from io.github.cyanheads

And 140 more from this publisher.

Official server.json
{
  "name": "io.github.cyanheads/uk-legislation-mcp-server",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://uk-legislation.caseyjhand.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "0.1.2",
  "packages": [
    {
      "version": "0.1.2",
      "transport": {
        "type": "stdio"
      },
      "identifier": "@cyanheads/uk-legislation-mcp-server",
      "runtimeHint": "npx",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "environmentVariables": [
        {
          "name": "UK_LEGISLATION_CONTACT",
          "format": "string",
          "description": "Email or URL appended to the User-Agent so legislation.gov.uk can reach the operator. Optional; set it on hosted deployments."
        },
        {
          "name": "UK_LEGISLATION_MIN_REQUEST_GAP_MS",
          "format": "number",
          "default": "1000",
          "description": "Minimum gap between legislation.gov.uk request starts, in ms (minimum 250). Replicas sharing one User-Agent divide the fair use limit: use at least 250 ms x replica count."
        },
        {
          "name": "UK_LEGISLATION_CACHE_MAX_MB",
          "format": "number",
          "default": "64",
          "description": "Response cache size bound, in MB (8-1024)."
        },
        {
          "name": "MCP_LOG_LEVEL",
          "format": "string",
          "default": "info",
          "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
        }
      ]
    },
    {
      "version": "0.1.2",
      "transport": {
        "url": "http://localhost:3010/mcp",
        "type": "streamable-http"
      },
      "identifier": "@cyanheads/uk-legislation-mcp-server",
      "runtimeHint": "npx",
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "environmentVariables": [
        {
          "name": "MCP_TRANSPORT_TYPE",
          "value": "http",
          "format": "string",
          "description": "Selects the HTTP transport."
        },
        {
          "name": "MCP_HTTP_HOST",
          "format": "string",
          "default": "127.0.0.1",
          "description": "The hostname for the HTTP server."
        },
        {
          "name": "MCP_HTTP_PORT",
          "format": "string",
          "default": "3010",
          "description": "The port to run the HTTP server on."
        },
        {
          "name": "MCP_HTTP_ENDPOINT_PATH",
          "format": "string",
          "default": "/mcp",
          "description": "The endpoint path for the MCP server."
        },
        {
          "name": "MCP_AUTH_MODE",
          "format": "string",
          "default": "none",
          "description": "Authentication mode to use: 'none', 'jwt', or 'oauth'."
        },
        {
          "name": "UK_LEGISLATION_CONTACT",
          "format": "string",
          "description": "Email or URL appended to the User-Agent so legislation.gov.uk can reach the operator. Set it on hosted deployments."
        },
        {
          "name": "UK_LEGISLATION_MIN_REQUEST_GAP_MS",
          "format": "number",
          "default": "1000",
          "description": "Minimum gap between legislation.gov.uk request starts, in ms (minimum 250). Replicas sharing one User-Agent divide the fair use limit: use at least 250 ms x replica count."
        },
        {
          "name": "UK_LEGISLATION_CACHE_MAX_MB",
          "format": "number",
          "default": "64",
          "description": "Response cache size bound, in MB (8-1024)."
        },
        {
          "name": "MCP_LOG_LEVEL",
          "format": "string",
          "default": "info",
          "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
        }
      ]
    }
  ],
  "repository": {
    "url": "https://github.com/cyanheads/uk-legislation-mcp-server",
    "source": "github"
  },
  "description": "Search and read UK legislation at any date, resolve citations, list amendments, track changes."
}