UK Legal Research MCP Server
uk-legal-mcp
一个用于英国法律研究的模型上下文协议 (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工具
判例法
工具 | 功能 |
| 英国判决书全文搜索。可按法院、法官、当事人、日期范围进行筛选。 |
| 在判决书中查找符合模式的段落。每次命中返回 |
资源模板(通过 resources/read 或由 ResourcesAsTools 生成的 read_resource 工具读取):
URI 模板 | 返回内容 |
| 元数据标题(当事人、法官、引文)。约 1k tokens。 |
| 每行的段落 eId + 第一行。约 4k tokens。遍历此项以发现段落。 |
| 包含其子段落的单个段落。400–1700 tokens。 |
上游:TNA Find Case Law (Atom/XML)。速率限制:1,000 次请求/5 分钟。缓存 1 小时。
立法
工具 | 功能 |
| 在 legislation.gov.uk 上搜索议会法案和法定文书。 |
| 法案目录 — 部分、章节、条款、附表。 |
| 获取具有领土范围、生效状态和版本日期的特定条款。 |
资源模板(对于偏好 URI 寻址读取的客户端,作为上述工具的替代方案):
URI 模板 | 返回内容 |
| 作为 CLML XML 的完整法案/SI。 |
| 作为 CLML XML 的特定条款。 |
| 目录的扁平化 |
| 针对 YYYY-MM-DD 日期的特定时间点 CLML。 |
上游:legislation.gov.uk (CLML XML + Atom feed)。缓存 24 小时。使用带有 Chrome 模拟功能的 curl_cffi 来绕过 CloudFront 437;2006 年公司法目前会间歇性触发 AWS WAF JS 挑战。
注意: 请务必检查 extent(范围)字段。某一条款可能适用于英格兰和威尔士,但不适用于苏格兰或北爱尔兰。
议会
工具 | 功能 |
| 按精确短语搜索 Hansard 辩论发言。 |
| 评估议会对政策议题的反应。搜索 Hansard,然后使用 LLM 采样来分类情绪、支持者、反对者和担忧。 |
| 按姓名查找议员或上议院议员。返回用于 |
| 获取特定成员的 Hansard 发言,可选择按主题筛选。 |
| 获取成员的注册经济利益(捐赠、持股等)。 |
| 按关键词搜索英国议会请愿书。 |
上游:hansard-api.parliament.uk + members-api.parliament.uk + petition.parliament.uk。不缓存(实时数据)。
法案
工具 | 功能 |
| 按关键词、会期或类型搜索当前和历史议会法案。 |
| 获取法案详情 — 阶段、发起人、出版物。 |
上游:bills-api.parliament.uk。缓存 1 小时。
投票
工具 | 功能 |
| 按关键词或日期搜索下议院和上议院投票记录。 |
| 获取投票详情 — 票数、每位成员的投票方式。 |
上游:commonsvotes-api.parliament.uk + lordsvotes-api.parliament.uk。缓存 24 小时。
委员会
工具 | 功能 |
| 按关键词搜索议会专责委员会。 |
| 获取委员会详情 — 成员、小组委员会。 |
| 搜索提交给委员会的口头和书面证据。 |
上游:committees-api.parliament.uk。缓存 1 小时。
引文
工具 | 功能 |
| 从自由文本中提取所有 OSCOLA 引文。解析为规范 URL。通过 LLM 采样消除模糊的法院代码歧义。 |
| 解析并将单个引文字符串解析为其规范 URL。 |
| 从 TNA 获取判决书并映射其中的每一条引文 — 案例、立法、SI、欧盟法律。 |
独立运行。无外部 API。零网络依赖(获取判决书 XML 的 citations_network 除外)。
支持的引文格式:
格式 | 示例 |
中立引文 |
|
法律报告(带或不带卷号) |
|
立法条款 |
|
法定文书 |
|
保留的欧盟法律 |
|
HMRC
工具 | 功能 |
| 任何商品或服务的增值税率查询。静态表,截至 2023 年秋季声明。 |
| 检查 VRN 的“数字化税务”(Making Tax Digital) 增值税授权状态。需要 HMRC OAuth 凭据。 |
| 在 GOV.UK 上搜索 HMRC 指南文档。 |
hmrc_get_vat_rate 和 hmrc_search_guidance 不需要凭据。hmrc_check_mtd_status 需要 HMRC_CLIENT_ID 和 HMRC_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 客户端池。
中间件堆栈(网关级别):
中间件 | 目的 |
| 捕获未处理的异常 |
| 带有持续时间和有效负载大小的 JSON 日志记录 |
| 每个工具的计时日志 |
| 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.ukDocker
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 |
| 无 | |
legislation.gov.uk |
| 无 | |
UK Parliament Hansard |
| 无 | |
UK Parliament Members |
| Open Parliament Licence | 无 |
UK Parliament Petitions |
| Open Parliament Licence | 无 |
UK Parliament Bills |
| Open Parliament Licence | 无 |
UK Parliament Votes |
| Open Parliament Licence | 无 |
UK Parliament Committees |
| Open Parliament Licence | 无 |
HMRC |
| OGL / 商业条款 | OAuth 2.0 |
GOV.UK Search |
| OGL v3 | 无 |
技术栈
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