UK Tribunal Decisions — GOV.UK

MCP serverSearch

UK first-tier tribunal decisions, GOV.UK search + content API.

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use UK Tribunal Decisions — GOV.UK

Install UK Tribunal Decisions — GOV.UK

The server’s own address, for the clients that take one directly. Or connect ahel onceand every client you use reads it from one address, with the account kept on ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user uk-tribunal-decisions-gov-uk 'https://gateway.pipeworx.io/uk-tribunals/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://gateway.pipeworx.io/uk-tribunals/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=uk-tribunal-decisions-gov-uk&config=eyJ1cmwiOiJodHRwczovL2dhdGV3YXkucGlwZXdvcnguaW8vdWstdHJpYnVuYWxzL21jcCJ9

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://gateway.pipeworx.io/uk-tribunals/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add uk-tribunal-decisions-gov-uk --url 'https://gateway.pipeworx.io/uk-tribunals/mcp'

    Run it once, then sign in with codex mcp login uk-tribunal-decisions-gov-uk if the server asks for an account.

From the project's README

As published by pipeworx-io/mcp-uk-tribunals in README.md.

First-instance and Upper Tribunal decisions published on GOV.UK: the first-tier Employment Tribunal, the Employment Appeal Tribunal, the Residential Property Tribunal, the Upper Tribunal (Administrative Appeals Chamber — social security, disability and child support appeals), and the Upper Tribunal (Tax and Chancery Chamber).

Part of Pipeworx — an MCP gateway connecting AI agents to 1679+ live data sources.

The reason this pack exists: Find Case Law (uk-caselaw) carries the Employment Appeal Tribunal only — it has no court code for the first-tier Employment Tribunal. So a search there for "employment tribunal decisions" silently returns EAT appeals, and the 134,000+ first-tier ET decisions GOV.UK actually publishes were unreachable anywhere in the catalog before this pack. uk-caselaw remains the right pack for appeals and every other UK court.

Auth

None. Keyless GOV.UK search + content API.

Tools

ToolUse it when
search_tribunal_decisionsYou have a subject, party name or date range and know which tribunal
get_tribunal_decisionYou have a link from a search result and want the full text
list_tribunal_categoriesYou want the exact category slug to filter by (not guessable from the label)

The usual path is search_tribunal_decisions → take a result's link → get_tribunal_decision.

The five tribunals

tribunal argWhat it isDecisions (2026-09-18)
employmentEmployment Tribunal, first-tier134,136
employment_appealEmployment Appeal Tribunal2,615
residential_propertyResidential Property Tribunal / FTT (Property Chamber)18,229
administrative_appealsUpper Tribunal (Administrative Appeals Chamber)2,079
taxUpper Tribunal (Tax and Chancery Chamber)1,442

GOV.UK also publishes a generic decision content type (~13,000 items) — deliberately not exposed here. It is teacher-misconduct panel outcomes, medicine licence suspensions and other professional-regulator decisions, not tribunal decisions; routing a tribunal question there would silently answer it with the wrong kind of document.

Data shape traps worth knowing

  • Full text is not published for every decision. get_tribunal_decision returns text_available: false when GOV.UK has not extracted text — this is the norm for Tax and Chancery Chamber decisions, which are PDF-only. pdf_url is always returned when a PDF exists.
  • The category field name is not the same across tribunals. Employment, Employment Appeal and Administrative Appeals use a plural array (tribunal_decision_categories); Residential Property and Tax use a singular string (tribunal_decision_category). Filtering search_tribunal_decisions by category against the wrong field name doesn't error upstream — it just matches nothing, which reads as "no such category" rather than "wrong field". This pack routes on the right field per tribunal internally; category takes the same slug regardless of which field backs it.
  • list_tribunal_categories reads live, off each tribunal finder page's own details.facets in the GOV.UK content API — not a hardcoded list. GOV.UK adds and renames categories over time; a hardcoded list would go stale silently.

Data sources

  • Search: https://www.gov.uk/api/search.json?filter_content_store_document_type=<type>
  • Item: https://www.gov.uk/api/content<link> — details.metadata.hidden_indexable_content is the full extracted decision text where published; details.attachments[] carries the original PDF(s) on assets.publishing.service.gov.uk.
  • Category facets: https://www.gov.uk/api/content/<finder-base-path> — details.facets.

Crown copyright, published under the Open Government Licence v3.0.

Caveats worth passing to a user

  • England, Wales and Scotland only, as published on GOV.UK. Northern Ireland tribunals are not on this platform.
  • Decisions before roughly 2017 are sparse. GOV.UK publication of tribunal decisions is not retrospectively complete — an older decision's absence means not published here, not no such decision.
  • This is not a court. No Crown Court, County Court or Magistrates' Court decisions are published here — those are first-instance courts, not tribunals, and their decisions (mostly oral) are not published anywhere in this form.
  • Search is over the decision text itself, so a phrase the tribunal would actually write (a party name, a case number) finds more than a legal concept it never names.

Quick Start

Add to your MCP client (Claude Desktop, Cursor, Windsurf, etc.):

{
  "mcpServers": {
    "uk-tribunals": {
      "url": "https://gateway.pipeworx.io/uk-tribunals/mcp"
    }
  }
}

What this endpoint actually serves

tools/list at https://gateway.pipeworx.io/uk-tribunals/mcp returns the tools in the table above plus the shared Pipeworx meta-tools — ask_pipeworx, discover_tools, search_within, remember/recall and the rest of the gateway-wide set. So the tool count you see is larger than this table: a single-pack endpoint currently lists roughly 30 shared tools alongside the pack's own. The connection's initialize response states its exact scope, and is the authoritative answer for a given day.

This is deliberate, not multiplexing by accident. The meta-tools are what let a scoped connection answer a question this pack does not cover — via ask_pipeworx, which routes across the whole catalog — without you adding a second MCP server. There is currently no way to mount a pack endpoint without them; if the extra schemas cost you more context than the routing is worth, connect to the full gateway once rather than to several pack endpoints.

Or connect to the full Pipeworx gateway to get every pack's tools listed directly, instead of just this one's:

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

Both URLs reach the same gateway and the same 1679+ data sources. The only difference is which pack's tools are listed directly; ask_pipeworx reaches all of them from either one.

No MCP client? Call it over HTTP

curl -X POST https://gateway.pipeworx.io/v1/tools/search_tribunal_decisions \
  -H 'Content-Type: application/json' \
  -d '{"tribunal":"employment","query":"disability discrimination","limit":3}'

No account needed for the first calls. Inspect any tool: GET https://gateway.pipeworx.io/v1/tools/search_tribunal_decisions. Find one: POST https://gateway.pipeworx.io/v1/tools/search_packs with {"query":"..."}.

Standalone (no gateway account)

This package also runs as a local stdio MCP server — no Pipeworx account, no gateway round-trip:

{
  "mcpServers": {
    "uk-tribunals": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-uk-tribunals"]
    }
  }
}

Or run it directly to confirm it starts:

npx -y @pipeworx/mcp-uk-tribunals

It speaks MCP over stdin/stdout and answers initialize/tools/list/tools/call for only this pack's tools — none of the shared meta-tools the gateway connection above adds. Same source, same tools, no ask_pipeworx routing.

Using with ask_pipeworx

Instead of calling tools directly, you can ask questions in plain English — this works on the pack endpoint above as well as on the full gateway:

ask_pipeworx({ question: "your question about Uk Tribunals data" })

The gateway picks the right tool and fills the arguments automatically.

More

License

MIT

Advanced
Delivery
uk-tribunals MCP server → your ahel connector (mcp.ahel.ai) → your AI.
Catalog kind
mcp-server
Key
io-github-pipeworx-io-uk-tribunals
Source
github.com/pipeworx-io/mcp-uk-tribunals
Hosted endpoint
https://gateway.pipeworx.io/uk-tribunals/mcp