Skip to main content
Glama
paulieb89

UK Legal Research MCP Server

uk-legal-mcp

SafeSkill 92/100 uk-legal-mcp MCP server

英国法務リサーチのためのModel Context Protocol(MCP)サーバーです。AIアシスタントを、判例法、法令、議会討論、法案、投票、委員会、OSCOLA引用解析、およびHMRC税務データに単一のエンドポイント経由で接続します。

8つのモジュールにわたる24のツール。 接続は1つ。読み取り専用。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"
    }
  }
}

その後、以下を試してみてください:

  • "Search for case law about cycling accidents"(自転車事故に関する判例法を検索)

  • "Get section 172 of the Companies Act 2006"(2006年会社法第172条を取得)

  • "Parse the citations in: The court applied Donoghue v Stevenson [1932] AC 562 and s.2 Occupiers' Liability Act 1957"(以下の引用を解析:裁判所はDonoghue v Stevenson [1932] AC 562および1957年占有者責任法第2条を適用した)

  • "What is parliament saying about short selling?"(議会では空売りについて何と言われていますか?)

ローカルでの実行

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トークン。

judgment://{slug*}/index

段落eId + 行ごとの最初の行。約4kトークン。これを辿って段落を発見します。

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

サブ段落を含む単一の段落。400〜1700トークン。

アップストリーム: 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フィード)。24時間キャッシュ。CloudFront 437を回避するためにChromeなりすまし機能付きの curl_cffi を使用。2006年会社法は現在、断続的にAWS WAF JSチャレンジにヒットします。

注意: 常に extent フィールドを確認してください。条文がイングランドおよびウェールズには適用されても、スコットランドや北アイルランドには適用されない場合があります。

議会

ツール

機能

parliament_search_hansard

正確なフレーズによるハンサード議事録の検索。

parliament_vibe_check

政策トピックに対する議会の反応を評価。ハンサードを検索し、LLMサンプリングを使用して感情、支持者、反対者、懸念を分類します。

parliament_find_member

名前で下院議員または貴族院議員を検索。member_debates で使用するメンバーIDを返します。

parliament_member_debates

特定の議員のハンサードでの発言を取得(トピックによるフィルタリング可能)。

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、EU法)をマッピング。

自己完結型。外部APIなし。ネットワーク依存ゼロ(判決XMLを取得する citations_network を除く)。

サポートされている引用形式:

形式

中立的引用

[2024] UKSC 12

判例集(巻数あり/なし)

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

法令条文

s.47 Companies Act 2006

法定計器

SI 2018/1234

保持されたEU法

Regulation (EU) 2016/679

HMRC

ツール

機能

hmrc_get_vat_rate

商品またはサービスのVAT税率検索。2023年秋季財政演説時点の静的テーブル。

hmrc_check_mtd_status

VRNのMaking Tax Digital VAT義務状況を確認。HMRC OAuth認証情報が必要。

hmrc_search_guidance

HMRCガイダンス文書のGOV.UK検索。

hmrc_get_vat_ratehmrc_search_guidance は認証不要。hmrc_check_mtd_statusHMRC_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

各モジュールは、名前空間プレフィックス(case_law_, legislation_ など)を付けてゲートウェイにマウントされたスタンドアロンの FastMCP インスタンスです。すべてのモジュールは、ゲートウェイのライフサイクルコンテキストを通じて単一の 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