UK Legal Research MCP Server
uk-legal-mcp
英国法務リサーチのための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/mcpMCP Inspectorで検査:
npx @modelcontextprotocol/inspector http://localhost:8000/mcpツール
判例法
ツール | 機能 |
| 英国判決の全文検索。裁判所、裁判官、当事者、日付範囲でフィルタリング可能。 |
| パターンに一致する判決文内の段落を検索。ヒットごとに |
リソーステンプレート(resources/read または ResourcesAsTools によって生成された read_resource ツール経由で読み取り):
URI テンプレート | 戻り値 |
| メタデータヘッダー(当事者、裁判官、引用)。約1kトークン。 |
| 段落eId + 行ごとの最初の行。約4kトークン。これを辿って段落を発見します。 |
| サブ段落を含む単一の段落。400〜1700トークン。 |
アップストリーム: 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フィード)。24時間キャッシュ。CloudFront 437を回避するためにChromeなりすまし機能付きの curl_cffi を使用。2006年会社法は現在、断続的にAWS WAF JSチャレンジにヒットします。
注意: 常に extent フィールドを確認してください。条文がイングランドおよびウェールズには適用されても、スコットランドや北アイルランドには適用されない場合があります。
議会
ツール | 機能 |
| 正確なフレーズによるハンサード議事録の検索。 |
| 政策トピックに対する議会の反応を評価。ハンサードを検索し、LLMサンプリングを使用して感情、支持者、反対者、懸念を分類します。 |
| 名前で下院議員または貴族院議員を検索。 |
| 特定の議員のハンサードでの発言を取得(トピックによるフィルタリング可能)。 |
| 議員の登録された経済的利益(寄付、株式保有など)を取得。 |
| キーワードで英国議会への請願を検索。 |
アップストリーム: 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、EU法)をマッピング。 |
自己完結型。外部APIなし。ネットワーク依存ゼロ(判決XMLを取得する citations_network を除く)。
サポートされている引用形式:
形式 | 例 |
中立的引用 |
|
判例集(巻数あり/なし) |
|
法令条文 |
|
法定計器 |
|
保持されたEU法 |
|
HMRC
ツール | 機能 |
| 商品またはサービスのVAT税率検索。2023年秋季財政演説時点の静的テーブル。 |
| VRNのMaking Tax Digital VAT義務状況を確認。HMRC OAuth認証情報が必要。 |
| HMRCガイダンス文書のGOV.UK検索。 |
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各モジュールは、名前空間プレフィックス(case_law_, legislation_ など)を付けてゲートウェイにマウントされたスタンドアロンの FastMCP インスタンスです。すべてのモジュールは、ゲートウェイのライフサイクルコンテキストを通じて単一の 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 -v35個の引用テストはすべて、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