mcpField
L
legal-text-mcp-de

legal-text-mcp-de

ローカル
klein-business.github.io法務・行政22 週間前に更新

legal-text-mcp-de について

legal-text-mcp-deは、ドイツ連邦・州およびEUの法令を、構造化メタデータと出典情報付きで提供します。法令を検索・取得するMCPクライアントや開発者向けで、法律文書を提供しますが、法的助言は行いません。

主な機能

  1. 01法令一覧と個別条文の取得
  2. 02法令検索と引用の解決
  3. 03読み取り専用 legal:// リソース
  4. 04出典URL、取得日時、ハッシュの記録
  5. 05HTTP APIとCLIの提供

活用シーン

  1. 01引用から条文を検索
  2. 02テーマや語句で法令を検索
  3. 03MCPクライアントに法令文書を読み込み
  4. 04出典情報とコーパス範囲の確認

MCP 対応

MCPクライアント向けにツール、読み取り専用の legal:// リソース、定義済みプロンプトを提供します。設定済みデータセットを使い、streamable HTTPに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"klein-business-legal-text-mcp-de": {
"command": "uvx",
"args": [
"legal-text-mcp-de"
],
"env": {
"DATASET_PATH": "<DATASET_PATH>",
"STRICT_DATASET": "<STRICT_DATASET>",
"ANTHROPIC_API_KEY": "<ANTHROPIC_API_KEY>"
}
}
}
}
起動コマンドuvx legal-text-mcp-de
設定が必要な環境変数
DATASET_PATHPath to a normalised corpus directory or a corpus archive (legal-texts-de-*.tar.zst). Defaults to the bundled fixture; production deployments should mount /data/corpus/latest.tar.zst.
STRICT_DATASETSet to 'true' to refuse to start if the dataset cannot be loaded (recommended for hosted deployments).
ANTHROPIC_API_KEYシークレットOptional. Required only for the smart `research_topic` tool which uses LLM-assisted synthesis. Without it, the tool degrades gracefully to a ranked-search fallback.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypilegal-text-mcp-de2.1.3
ocighcr.io/klein-business/legal-text-mcp-de:2.1.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

legal-text-mcp-de: German legal text MCP server banner

PyPI version Python 3.12 / 3.13 License: Apache 2.0 GitHub release Container image Docs

CI CodeQL OpenSSF Scorecard OpenSSF Best Practices SLSA Level 3 Signed by cosign MCP Registry

legal-text-mcp-de

LLM エージェント向けの、引用に適したドイツ法令テキスト基盤です。 MCP、HTTP API、typer シェル CLI を通じて、連邦・州・EU の約 8 500 件の法律を提供します。すべて同じランタイム上で動作し、gesetze-im-internet.de および EUR-Lex / Cellar に由来する暗号学的な来歴情報を備えています。

これはローカルまたはサーバー側の基盤です。SaaS、課金、アカウント、テナントモデルはなく、法的助言も提供しません。ランタイムは、高速な CI で使用するコミット済みのフィクスチャパッケージか、Git の外部で構築した生成済みの本番コーパスパッケージのいずれかを読み込みます。ドイツ連邦法の公式テキストは gesetze-im-internet.de から、GDPR などの EU 法令は EUR-Lex / Cellar から取得します。

法的助言は提供しません。 このソフトウェアはテキストと構造化メタデータを返します。法律を解釈したり、法律について助言したり、法的結論を出したりすることはありません。メンテナーは、法的な意思決定の場面での使用について、一切の責任を負いません。

以前の内部ドキュメントは docs-legacy/summary.md にアーカイブされています。

ステータス

ライフサイクル安定版 v2.1.3(typer-CLI マイナー版 v2.1.0 の最新パッチ)— MCP ネイティブのドメインサーバーと typer CLI
バージョニングSemVer 2.0.0(安定性に関する契約は v1.0.0 から開始)
ライセンスApache License 2.0 — LICENSE と NOTICE を参照
上流floleuerer/deutsche-gesetze-mcp をベースにしています(MIT、維持)

機能

  • 法律の一覧表示、条文の取得、引用の解決、全文検索、ソースの来歴確認を行う MCP ツール。
  • 同じランタイム上で動作する HTTP API(FastAPI)。構造化された /health、/ready、/laws、/search、OpenAPI エンドポイントを備えています。
  • 来歴を最優先する設計:すべての法律と条文に、ソース URL、取得日時、コンテンツハッシュ、通過したパーサーの経路が記録されます。
  • 2 種類のコーパスモード:決定論的なテストと CI 向けのコミット済みフィクスチャパッケージ、または公式ソースからランタイムで構築する生成済みの本番パッケージ。
  • 編集済みコンテンツの同梱なし:このリポジトリで提供するのはツールであり、法令テキストではありません。テキストはランタイムで公式ソースから読み込まれます。

インストール

明示的なデータセットを指定した pip または uvx
pip install legal-text-mcp-de==2.1.3
DATASET_PATH=/path/to/dataset legal-text-mcp-de serve
# Or:
DATASET_PATH=/path/to/dataset uvx legal-text-mcp-de==2.1.3 serve
  • パッケージと標準 Docker イメージには、ランタイムのみが含まれます。
  • DATASET_PATH は、laws.json、norms.json、search-index.json を含む正規化済みデータセットディレクトリを指す必要があります。
  • 公開コーパスの OCI リファレンスと -full イメージは現在 DENIED を返します。検証済みの公開コーパスダウンロードはありません。
  • CLI と HTTP ランタイムは、使用可能なデータセットを自動で準備しません。.tar.zst バンドルは、ランタイムへの直接指定には対応していません。
  • 連邦コーパスガイドに従って、公式ソースから登録済みの連邦法 9 件を構築してください。これには現在のソースチェックアウトが必要で、v2.1.3 より後に追加された修正が含まれます。
  • prepare_data.build_corpus --sources bund は実装されていません。そのアーカイブ出力は、配信用データセット形式とは別のものです。
データセットをマウントして Docker を使用する
docker run -p 8001:8001 \
  -v /absolute/path/to/dataset:/data/legal-texts:ro \
  ghcr.io/klein-business/legal-text-mcp-de:2.1.3 \
  uv run --frozen --no-sync legal-text-mcp-de http
  • 選択したランタイムバージョンと互換性のあるデータセットを使用してください。
  • /health はプロセスを確認し、/ready は HTTP API がデータセットを提供できるかを確認します。
  • 新たに構築した連邦データについては、ガイドのソースイメージ構築手順に従ってください。
モード 5 — 公開ホストサービス
// claude_desktop_config.json
{
  "mcpServers": {
    "legal-de": {
      "url": "https://mcp.klein.business/legal/de",
      "transport": "streamable-http"
    }
  }
}

CLI

legal-text-mcp-de には、すべてのサブコマンドを備えた CLI が同梱されています。引数なしで実行すると --help が表示されます。よく使うコマンド:

legal-text-mcp-de serve              # start the MCP server (replaces the v2.0 bare invocation)
legal-text-mcp-de http               # start the FastAPI HTTP API
legal-text-mcp-de laws --query DSGVO # list laws
legal-text-mcp-de norm BGB "§ 433"   # fetch a single norm
legal-text-mcp-de search Werbung     # full-text search
legal-text-mcp-de corpus info        # inspect locally cached bundle metadata
legal-text-mcp-de version            # version + Python + platform

機械可読な出力を得るには、サブコマンドの前に --json または --output yaml を指定してください。data フィールドには HTTP レスポンスの形式でデータが含まれます。サブコマンドの全一覧は CLI リファレンス を参照してください。

v2.1.0 での破壊的変更: 引数なしで legal-text-mcp-de を実行すると、--help が表示されるようになりました。v2.0 の動作(MCP サーバーの起動)を維持するには、serve を追加してください。

クイックスタート

MCP クライアントの互換性
  • テスト済みには、記録されたクライアントのバージョンとトランスポート、成功した tools/list、および成功したツール呼び出しが1回必要です。
  • 設定例だけではテストの証拠になりません。以下のクライアント実行は引き続き [UNVERIFIED] です。プロトコルレベルの CI では、デスクトップクライアントとの互換性は確認できません。
クライアントテスト状況stdiostreamable-HTTPセットアップ/証拠の報告依頼
Claude Desktop保留中[UNVERIFIED][UNVERIFIED]クイックスタート
Cursor保留中[UNVERIFIED][UNVERIFIED]クイックスタート
Continue保留中[UNVERIFIED][UNVERIFIED]クライアントテストを報告
Cline保留中[UNVERIFIED][UNVERIFIED]クライアントテストを報告
Zed保留中[UNVERIFIED][UNVERIFIED]クライアントテストを報告
コミット済みのフィクスチャコーパスで MCP サーバーを実行する
uv sync --all-groups

DATASET_PATH=tests/fixtures/normalized \
STRICT_STARTUP=true \
uv run legal-text-mcp-de serve

デフォルトのトランスポートは、http://localhost:8001/mcp の ストリーミング可能な HTTP です。CLI では stdio を利用できません。詳しくは stdio トランスポートの状況を参照してください。

開発用ショートカット。 Justfile では、一般的な uv の呼び出し(just install、just test、just lint、just run、 just api、just docs)をラップしています。brew install just で インストールしてください。Justfile は任意です。CI では uv を直接使用します。

HTTP API を実行する

v2.1 以降は、新しい CLI を使うのが最も簡単です。

DATASET_PATH=tests/fixtures/normalized \
STRICT_STARTUP=true \
uv run legal-text-mcp-de http

デフォルトのポートは 8001 です(settings.port/PORT 環境変数から取得)。変更するには --port <N> を使用してください。

または、uvicorn から直接実行することもできます(同等の方法で、同じ FastAPI アプリを使用します)。

DATASET_PATH=tests/fixtures/normalized \
STRICT_STARTUP=true \
uv run uvicorn legal_text_mcp_de.http_api:app --host 127.0.0.1 --port 8001

HTTP レイヤーでは、多層防御として MAX_REQUEST_BODY_BYTES(デフォルトは 1048576、つまり 1 MiB)による リクエスト本文サイズの上限を適用します。上限を超えるリクエストには 413 Payload Too Large が返されます。これに加えて、運用担当者がリバースプロキシ側でも 上限を適用することが想定されています。

Docker

Docker イメージには法令テキストデータが含まれていません。検証済みの パッケージを /data/legal-texts にマウントしてください。

docker run --rm -p 8001:8001 \
  -v /path/to/legal-text-package:/data/legal-texts:ro \
  ghcr.io/klein-business/legal-text-mcp-de:2.1.3 serve
  • 最小限の HTTP モード Compose の例については、examples/docker-compose/http/を参照してください。
  • コミット済みで CI テスト済みの本番スタック(Caddy の背後で動作する MCP + HTTP。Compose プロファイルで切り替え可能)については、examples/docker-compose/production/を参照してください。

MCP リソース

v2.0 以降、コーパスは読み取り専用の legal:// URI として公開され、任意の MCP クライアントが LLM のコンテキストに直接読み込めます。例:

  • legal://laws — ページ分割されたインデックス
  • legal://laws/bgb — BGB のヘッダーと条文インデックス
  • legal://laws/bgb/norms/par:433 — § 433 BGB の Markdown
  • legal://corpus/coverage — コーパスの収録内容

URI の一覧は docs/concepts/mcp-native.md を参照してください。

MCP プロンプト(スラッシュコマンド)

厳選された5つのワークフローが、MCP クライアントでスラッシュコマンドとして表示されます。

スラッシュコマンド引数目的
/rechtsfragefrage、rechtsgebiet?正確な条文引用を付けて、ドイツ法に関する質問に回答します
/zitation-checkencitation引用(例:§ 433 Abs. 1 BGB)と Stand-Datum を確認します
/norm-erklaerencode、norm相互参照を引用しながら、平易な言葉で説明します
/recherchetopicスマートツール research_topic を使って複数ステップの調査を行います
/dsgvo-checkaktivitaet処理活動について、GDPR 第5条、第6条、第7条、第9条、第13条、第14条を順に確認します

スマートツール

research_topic は、呼び出しごとに2回の LLM サンプリング呼び出しを実行する複数ステップの調査ツールです。

  1. 候補となる条文をコーパスから検索します
  2. LLM が関連性に基づいて候補を順位付けします
  3. 関連条文のグラフを読み込みます
  4. LLM が構造化された調査レポートを作成します

クライアントがサンプリングに対応していない場合、順位付けされた候補だけを含む簡易版レポートを返します。

データソース

ソース対象範囲再利用に関する位置付け
gesetze-im-internet.deドイツ連邦法§5 (1) UrhG に基づき、パブリックドメイン相当
EUR-Lex / Cellar (publications.europa.eu)EU 法令(GDPR、AI Act、Data Act、…)欧州委員会決定 2011/833/EU に基づき、出典を明記すれば再利用可能

これらのソースのテキストは、このリポジトリにコミットされていません。 生成コーパスのパイプラインがビルド時にデータを取得し、出典情報をマニフェストに保存します。

MCP ツール

機能の全容については、MCP ツールのリファレンスを参照してください。主な機能は次のとおりです。

  • list_laws(query?) — 読み込み済みの法律を、任意のメタデータフィルターを指定して一覧表示します。
  • get_law(code) — 法律のメタデータと、正規化された条文の概要を返します。
  • get_norm(code, norm) — 構造化された条文を 1 件返します。
  • search_laws(query, codes?) — 正規化されたテキストを検索します。
  • resolve_citation(...) — 法的解釈を行わず、構造化された引用を解決します。
  • get_source_metadata(code?)、get_source_limitations(...)、 get_corpus_coverage()、get_related_norms(code, norm)。

MCP ツールは JSON 互換のオブジェクトを返します。JSON 文字列を二重にシリアライズして返すことはありません。

HTTP API

メソッドパス用途
GET/health稼働状況
GET/ready準備状況
GET/laws法律の一覧
GET/laws/{code}法律の詳細
GET/laws/{code}/norms/{norm}条文の詳細
GET/laws/{code}/norms/{norm}/relationships関係メタデータ
GET/corpus/coverageコーパスの対象範囲の概要
GET/corpus/source-limitationsソースの制限に関するクエリ
GET/search検索
GET/openapi.jsonOpenAPI ドキュメント

条文と項を組み合わせたパスは、URL エンコードする必要があります。

/laws/egbgb/norms/art%3A246a%2Fpar%3A1

ドキュメント

ドキュメントの全文は klein-business.github.io/legal-text-mcp-deで公開されています。

クイックリンク:

信頼できる一次資料はリポジトリにあります:README.md、 CHANGELOG.md、SECURITY.md、 CONTRIBUTING.md、GOVERNANCE.md、 NOTICE、LICENSE。

開発

uv sync --all-groups
uv run --group dev pytest

フィクスチャに基づくリリースゲートの全体:

uv run --group dev python scripts/verify_release.py

公開切り替えの準備状況を確認するゲート:

uv run --group dev python scripts/verify_pre_flip.py

Justfile は、よく使うターゲット(just test、 just lint、just docs、just run、just api)をラップして、簡単に実行できるようにします。

コントリビューション

ガイドライン、行動規範、セキュリティポリシーについては、CONTRIBUTING.mdを参照してください。 すべてのコントリビューションは開発者原産地証明書に準拠する必要があります (git commit -sで署名してください)。

検証

v1.0.0 以降のすべてのリリースには署名が付与され、SBOM と SLSA-3 の来歴情報が含まれています。以下の例ではv2.1.3を使用しています。実際に取得したタグに置き換えてください。

Cosign イメージ署名
cosign verify ghcr.io/klein-business/legal-text-mcp-de:2.1.3 \
  --certificate-identity-regexp 'https://github.com/klein-business/.*' \
  --certificate-oidc-issuer https://token.actions.githubusercontent.com

SBOM および SLSA アテステーションの検証については、cosign による検証を参照してください。

ライセンスと謝辞

このプロジェクトはApache License 2.0のライセンスに基づいています。 必要な帰属表示については、NOTICEをご覧ください。

floleuerer/deutsche-gesetze-mcp から派生しています(Copyright (c) 2025 Florian Leuerer、MIT)。上流のライセンス条件は licenses/MIT-floleuerer.txtに保持されています。


MCP Registry:io.github.klein-business/legal-text-mcp-de · registry.modelcontextprotocol.io

mcp-name: io.github.klein-business/legal-text-mcp-de

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。