Skip to main content
Glama
kheidkamp

legal-research-mcp

by kheidkamp

Legal Research MCP MVP 0.2-dev - Render Free

Render対応の読み取り専用リサーチMCP。計画中のlegal-tax-advisor-de v2.3.0リサーチレイヤー向け。

0.2-devで追加された機能

0.2-devは、保守的な0.1改正履歴契約を維持しつつ、1つのターゲットを絞った取得機能を追加します:

  • get_official_document_text: 厳格なHTTPSホスト許可リストから、特定済みの公式ドイツ語PDF/HTML文書を開き、ロケーター/クエリを検索し、コンテンツハッシュ付きのページ対応エビデンスを返します。

これにより、Copilot Studioで観察されたD1ギャップが解消されます: エージェントはBundesrat-Drucksache 5/26を特定できたものの、Art. 30 Nr. 1を開いて具体的な改正命令を検証することができませんでした。

Related MCP server: de-eli-mcp

ツール

search_primary_sources

検証済みの小規模な法令レジストリ(KStG、EStG、AO、GewStG)に対する制御された検索。検索のみ。

get_norm

gesetze-im-internet.deから現在の公式統合版規定を取得し、構造/エビデンスのメタデータを返します。

trace_norm_amendments

安全な改正履歴接続実装。法令全体の改正ヘッダーを検索リードとして公開することはありますが、規定固有のチェーンリゾルバーが実装されるまでは意図的にpartial/unknownのままです。

get_official_document_text

特定済みの公式文書を開き、正確な箇所を取得します。

受け入れ可能な入力:

  • urlまたはdocument_idのいずれか;

  • locatorおよび/またはquery;

  • 任意のmax_passagesとcontext_chars。

サポートされているドキュメントIDショートカット:

  • BR-Drs. 5/26 -> Bundesrat文書サーバーPDF;

  • BT-Drs. 21/3343 -> Bundestag文書サーバーPDF;

  • BGBl. 2026 I Nr. 33 -> 公式recht.bund.de公布ページ。

改正検証のターゲット例:

get_official_document_text(
  document_id="BR-Drs. 5/26",
  locator="Artikel 30",
  query="§ 8b Absatz 6 Satz 2"
)

正規化されたクエリ一致が成功すると、coverage_status=completeとfull_checkedパッセージエビデンスが返されます。ロケーターのみの結果はナビゲーションエビデンスであり、要求された改正フレーズの証明として扱ってはなりません。

SSRF / ダウンロード安全性

get_official_document_textは意図的に制約されています:

  • HTTPSのみ;

  • 公式ホストの正確な許可リスト;

  • すべてのリダイレクトホップは再検証されます;

  • 認証情報と非標準ポートは拒否されます;

  • ダウンロードサイズは20 MBに制限;

  • PDFテキスト抽出のみ、JavaScript/ブラウザ実行なし;

  • 読み取り専用リクエストのみ。

現在の許可リスト対象ファミリーには、公式Bundestag/Bundesrat文書サーバー、recht.bund.de、gesetze-im-internet.de、Bundestag/Bundesratウェブホスト、連邦財務省ウェブサイトが含まれます。

Renderデプロイ

同梱のrender.yaml Blueprintを使用してください。サービスは以下のように設定されたままです:

  • Web Service;

  • Dockerランタイム;

  • Freeプラン;

  • Frankfurtリージョン;

  • /healthヘルスチェック;

  • RenderのPORTへの動的バインド;

  • /mcpのMCPエンドポイント;

  • RENDER_EXTERNAL_HOSTNAMEからの明示的なHost許可リスト。

詳細な手順: docs/render-free-deploy.md。

ローカルセットアップ

python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txt
python -m pytest -q
uvicorn app:app --reload --port 8080

ローカルエンドポイント:

  • ヘルス: http://localhost:8080/health

  • MCP: http://localhost:8080/mcp

まだ実装されていないもの

  • 歴史的な法定バージョンのリゾルバー;

  • 完全な規定固有の改正チェーンリゾルバー;

  • すべてのBundesgesetzblatt/Bundestag/Bundesrat文書の自動検出;

  • 判例法の取得;

  • 包括的なBMFガイダンスの取得;

  • 本番認証。

DEVセキュリティ境界

Render Freeデプロイは、DEVテスト用に意図的に認証なしのままです。Copilotエージェントを公開せず、機密のクライアント/案件情報をエンドポイント経由で送信しないでください。

Free Render Web Servicesは非アクティブ後にスピンダウンする可能性があり、本番ターゲットではありません。

0.1 -> 0.2アップグレード

  1. リポジトリのファイルをこのパッケージに置き換え、Renderがデプロイするブランチにコミット/プッシュします。

  2. RenderのデプロイがLiveになるまで待ちます。

  3. /healthがバージョン0.2.0-devを返すことを確認します。

  4. Copilot Studioで、既存のLegal Research DE MCPサーバー設定を開き、get_official_document_textが公開/有効化されていることを確認します。

  5. D1改正取得テストを実行し、Activity Traceを検査します。

詳細なアップグレード/テスト手順については、docs/render-free-deploy.mdを参照してください。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    MCP server for accessing and searching German federal law documents from gesetze-im-internet.de. Provides tools to retrieve specific paragraphs, perform full-text searches, and list available laws.
    10
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Searches and retrieves German federal legislation from NeuRIS, the official legal information portal, providing verifiable ELI identifiers and German citations.
    15
    248 PyPI
    4
    Apache 2.0
  • A
    license
    Not graded
    quality
    F
    maintenance
    Provides LLM-friendly access to German federal legislation via the NeuRIS API, enabling tool-based retrieval of laws, norms, and statutory text.
    18 npm
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only access to current German federal law, supporting legislation search, provision retrieval, and citation handling.
    Apache 2.0