Skip to main content
Glama
paulieb89

UK Legal Research MCP Server

uk-legal-mcp

SafeSkill 92/100 uk-legal-mcp MCP server

一个用于英国法律研究的模型上下文协议 (MCP) 服务器。通过单一端点将 AI 助手连接到判例法、立法、议会辩论、法案、投票、委员会、OSCOLA 引文解析和 HMRC 税务数据。

涵盖 8 个模块的 24 个工具。 单一连接。只读。24 个工具中有 23 个无需 API 密钥。

MCP Client (Claude, Cursor, etc.)
        |
        v
  uk-legal-mcp gateway  (Streamable HTTP)
  +----------------------------------------------------+
  |                                                    |
  |  case_law      TNA Find Case Law API               |
  |  legislation   legislation.gov.uk Atom feed         |
  |  parliament    Hansard API + Members API            |
  |  bills         Parliamentary Bills API              |
  |  votes         Commons + Lords division records     |
  |  committees    Select committees + evidence         |
  |  citations     OSCOLA regex parser (no network)     |
  |  hmrc          HMRC sandbox/prod + GOV.UK search    |
  |                                                    |
  +----------------------------------------------------+

快速入门

连接到托管服务器

添加到您的 Claude Desktop 配置 (~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "uk-legal": {
      "type": "streamable-http",
      "url": "https://uk-legal-mcp.fly.dev/mcp"
    }
  }
}

然后尝试:

  • “搜索关于自行车事故的判例法”

  • “获取 2006 年公司法第 172 条”

  • “解析以下引文:法院适用了 Donoghue v Stevenson [1932] AC 562 和 1957 年占有者责任法第 2 条”

  • “议会对于卖空行为有何说法?”

本地运行

pip install -e .
python -m src.gateway
# Server starts on http://localhost:8000/mcp

使用 MCP Inspector 进行检查:

npx @modelcontextprotocol/inspector http://localhost:8000/mcp

工具

判例法

工具

功能

case_law_search

英国判决书全文搜索。可按法院、法官、当事人、日期范围进行筛选。

case_law_grep_judgment

在判决书中查找符合模式的段落。每次命中返回 {eId, snippet, match}

资源模板(通过 resources/read 或由 ResourcesAsTools 生成的 read_resource 工具读取):

URI 模板

返回内容

judgment://{slug*}/header

元数据标题(当事人、法官、引文)。约 1k tokens。

judgment://{slug*}/index

每行的段落 eId + 第一行。约 4k tokens。遍历此项以发现段落。

judgment://{slug*}/para/{eId}

包含其子段落的单个段落。400–1700 tokens。

上游:TNA Find Case Law (Atom/XML)。速率限制:1,000 次请求/5 分钟。缓存 1 小时。

立法

工具

功能

legislation_search

在 legislation.gov.uk 上搜索议会法案和法定文书。

legislation_get_toc

法案目录 — 部分、章节、条款、附表。

legislation_get_section

获取具有领土范围、生效状态和版本日期的特定条款。

资源模板(对于偏好 URI 寻址读取的客户端,作为上述工具的替代方案):

URI 模板

返回内容

legislation://{type}/{year}/{number}

作为 CLML XML 的完整法案/SI。

legislation://{type}/{year}/{number}/section/{section}

作为 CLML XML 的特定条款。

legislation://{type}/{year}/{number}/toc

目录的扁平化 id: title 行。

legislation://{type}/{year}/{number}/{date}

针对 YYYY-MM-DD 日期的特定时间点 CLML。

上游:legislation.gov.uk (CLML XML + Atom feed)。缓存 24 小时。使用带有 Chrome 模拟功能的 curl_cffi 来绕过 CloudFront 437;2006 年公司法目前会间歇性触发 AWS WAF JS 挑战。

注意: 请务必检查 extent(范围)字段。某一条款可能适用于英格兰和威尔士,但不适用于苏格兰或北爱尔兰。

议会

工具

功能

parliament_search_hansard

按精确短语搜索 Hansard 辩论发言。

parliament_vibe_check

评估议会对政策议题的反应。搜索 Hansard,然后使用 LLM 采样来分类情绪、支持者、反对者和担忧。

parliament_find_member

按姓名查找议员或上议院议员。返回用于 member_debates 的成员 ID。

parliament_member_debates

获取特定成员的 Hansard 发言,可选择按主题筛选。

parliament_member_interests

获取成员的注册经济利益(捐赠、持股等)。

parliament_search_petitions

按关键词搜索英国议会请愿书。

上游:hansard-api.parliament.uk + members-api.parliament.uk + petition.parliament.uk。不缓存(实时数据)。

法案

工具

功能

bills_search_bills

按关键词、会期或类型搜索当前和历史议会法案。

bills_get_bill

获取法案详情 — 阶段、发起人、出版物。

上游:bills-api.parliament.uk。缓存 1 小时。

投票

工具

功能

votes_search_divisions

按关键词或日期搜索下议院和上议院投票记录。

votes_get_division

获取投票详情 — 票数、每位成员的投票方式。

上游:commonsvotes-api.parliament.uk + lordsvotes-api.parliament.uk。缓存 24 小时。

委员会

工具

功能

committees_search_committees

按关键词搜索议会专责委员会。

committees_get_committee

获取委员会详情 — 成员、小组委员会。

committees_search_evidence

搜索提交给委员会的口头和书面证据。

上游:committees-api.parliament.uk。缓存 1 小时。

引文

工具

功能

citations_parse

从自由文本中提取所有 OSCOLA 引文。解析为规范 URL。通过 LLM 采样消除模糊的法院代码歧义。

citations_resolve

解析并将单个引文字符串解析为其规范 URL。

citations_network

从 TNA 获取判决书并映射其中的每一条引文 — 案例、立法、SI、欧盟法律。

独立运行。无外部 API。零网络依赖(获取判决书 XML 的 citations_network 除外)。

支持的引文格式:

格式

示例

中立引文

[2024] UKSC 12

法律报告(带或不带卷号)

[2024] 1 WLR 100, [1932] AC 562

立法条款

s.47 Companies Act 2006

法定文书

SI 2018/1234

保留的欧盟法律

Regulation (EU) 2016/679

HMRC

工具

功能

hmrc_get_vat_rate

任何商品或服务的增值税率查询。静态表,截至 2023 年秋季声明。

hmrc_check_mtd_status

检查 VRN 的“数字化税务”(Making Tax Digital) 增值税授权状态。需要 HMRC OAuth 凭据。

hmrc_search_guidance

在 GOV.UK 上搜索 HMRC 指南文档。

hmrc_get_vat_ratehmrc_search_guidance 不需要凭据。hmrc_check_mtd_status 需要 HMRC_CLIENT_IDHMRC_CLIENT_SECRET — 请在 developer.service.hmrc.gov.uk 注册。默认为沙盒环境;生产环境请设置 HMRC_API_BASE=https://api.service.hmrc.gov.uk


架构

src/
  gateway.py            FastMCP gateway — mounts all modules, applies middleware
  deps.py               Shared httpx clients (lifespan-managed) + error formatting
  modules/
    case_law/           TNA Find Case Law (Atom/XML parsing)
    legislation/        legislation.gov.uk (CLML XML + Atom feed)
    parliament/         Hansard API + Members API + Petitions (JSON)
    bills/              Parliamentary Bills API (JSON)
    votes/              Commons + Lords division records (JSON)
    committees/         Select committees + evidence (JSON)
    citations/          OSCOLA regex engine (compiled once, lru_cache)
    hmrc/               HMRC OAuth + GOV.UK search (JSON)
tests/
  test_citations.py     35 unit tests — regex patterns, resolution, disambiguation

每个模块都是一个独立的 FastMCP 实例,挂载到具有命名空间前缀(case_law_legislation_ 等)的网关中。所有模块通过网关的生命周期上下文共享一个 httpx 客户端池。

中间件堆栈(网关级别):

中间件

目的

ErrorHandlingMiddleware

捕获未处理的异常

StructuredLoggingMiddleware

带有持续时间和有效负载大小的 JSON 日志记录

DetailedTimingMiddleware

每个工具的计时日志

ResponseLimitingMiddleware

80,000 字符上限(LegalDocML XML 可能超过 200k)

模块级缓存: 带有 TTL 的 ResponseCachingMiddleware — case_law (1小时), legislation (24小时), bills (1小时), votes (24小时), committees (1小时), hmrc (90天)。议会和引文不缓存。


部署

Fly.io

fly auth login
fly launch --name uk-legal-mcp --region lhr
fly deploy

可选密钥:

fly secrets set HMRC_CLIENT_ID=your_id HMRC_CLIENT_SECRET=your_secret
# For production HMRC (default is sandbox):
fly secrets set HMRC_API_BASE=https://api.service.hmrc.gov.uk

Docker

docker build -t uk-legal-mcp .
docker run -p 8000:8000 uk-legal-mcp

测试

pip install -e '.[test]'  # or: pip install pytest
pytest tests/test_citations.py -v

所有 35 个引文测试均离线运行,无需 API 凭据。


上游 API 和许可

来源

API

许可

认证

TNA Find Case Law

caselaw.nationalarchives.gov.uk

Open Justice Licence

legislation.gov.uk

legislation.gov.uk

OGL v3

UK Parliament Hansard

hansard-api.parliament.uk

Open Parliament Licence

UK Parliament Members

members-api.parliament.uk

Open Parliament Licence

UK Parliament Petitions

petition.parliament.uk

Open Parliament Licence

UK Parliament Bills

bills-api.parliament.uk

Open Parliament Licence

UK Parliament Votes

commonsvotes-api.parliament.uk

Open Parliament Licence

UK Parliament Committees

committees-api.parliament.uk

Open Parliament Licence

HMRC

test-api.service.hmrc.gov.uk

OGL / 商业条款

OAuth 2.0

GOV.UK Search

www.gov.uk/api/search.json

OGL v3


技术栈

  • Python 3.10+

  • FastMCP v3 (可流式传输的 HTTP 传输)

  • httpx (带有连接池的异步 HTTP)

  • lxml (LegalDocML 和 CLML XML 解析)

  • Pydantic v2 (输入验证、输出序列化)

  • Fly.io (伦敦区域,自动停止/启动)

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/paulieb89/uk-legal-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server