mcpField
P
prawo-pl-mcp

prawo-pl-mcp

ローカル
github.com/matematicsolutions法務・行政52 週間前に更新

prawo-pl-mcp について

prawo-pl-mcp は、ポーランドおよび一部 EU の法律データコネクターを、少数の統一ツールにまとめる MCP サーバーです。複数のデータベースを横断して調べるユーザー向けに、パラメーターを統一し、コネクターを必要時に起動して長文書をページ分割します。

主な機能

  1. 01法律データソース横断検索
  2. 02ページ分割された文書取得
  3. 03ソース固有のネイティブツール呼び出し
  4. 04ソースと対応範囲の一覧
  5. 05コネクターパラメーターの統一
  6. 06初回利用時のコネクター起動

活用シーン

  1. 01ポーランドの判例や法令の検索
  2. 02企業登記や税務解釈の取得
  3. 03公共調達やデータ保護の決定確認
  4. 04一部 EU 法令や規則の検索

MCP 対応

MCP サーバーとして stdio 経由で独立したコネクターサーバーに MCP 呼び出しを中継し、必要に応じて起動します。統一された検索、文書、ソース一覧、対応範囲、ネイティブ呼び出しのツールを公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"matematicsolutions-prawo-pl": {
"command": "uvx",
"args": [
"prawo-pl-mcp"
]
}
}
}
起動コマンドuvx prawo-pl-mcp

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

パッケージ
pypiprawo-pl-mcp0.2.4

ツール

5

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

prawo-pl-mcp

ポーランドの法律データを扱う単一の MCP サーバーです。

判例法、法律、企業登記簿、税務裁定、公的調達、データ保護に関する決定に加え、EU の追加データも含む、10 個の独立したコネクターを5つのツールから利用できます。各コネクターは独自のリポジトリを持つ個別のパッケージのままで、このサーバーは必要に応じてコネクターを起動し、それぞれの規約の違いを吸収します。

「Prawo」はポーランド語で「法律」を意味します。この名前は、国別サーバーをその国の言語で命名するという yargi-mcp の方針にならっています。

アグリゲーターを採用する理由

コネクターはポーランドの法律データを幅広くカバーしていますが、データベースごとに個別の MCP サーバーとして利用する場合、最初の質問をする前に10個のインストールと10個の設定項目が必要です。yargi-mcp は、トルコの法律に対する解決策を示しました。16の機関を1つのサーバーにまとめています。prawo-pl-mcp もポーランドで同じことを実現します。

  • ツールは42個ではなく5個です。pl_list_sources、pl_search、pl_get_document、pl_call、pl_coverageを使います。ツールスキーマが少ないほど、LLM が作業を始める前に消費するコンテキストが少なくなります。
  • 規約を統一しています。コネクターは個別に発展してきたため、あるものではdateFrom、別のものではdate_fromが使われ、リポジトリによってページ番号も0始まりまたは1始まりです。ここではpageは常に1始まりで、日付は常にdate_from/date_to(YYYY-MM-DD)です。内部で変換します。概念ごとに名前を1つに統一する方針は、アグリゲーター独自のツールにも適用されます。pageはpl_searchとpl_get_documentの両方でページを指定するパラメーターです(非推奨の別名page_numberも引き続き動作します)。また、pl_callではargumentsまたはその別名argsを指定します。
  • ネイティブ名を一覧で確認できます。カタログの各エントリーにはnative_paramsが含まれ、統一された各パラメーターがそのソースでどのネイティブパラメーターに対応するかを示します。そのため、コネクターを起動したり上流からのエラーを読んだりしなくても、article_number(eu-compliance)を確認できます。pl_callは、指定された名前をコネクター独自のスキーマと照合し、どの名前を意図していたのかを伝えます。
  • 事前インストールは不要です。コネクターはnpx -y/uvxを介してサブプロセスとして実行され、特定のソースへの初回呼び出し時にダウンロードされ、その後は起動したままになります。起動できないソースがあっても、わかりやすいエラーが報告され、ほかのソースは引き続き動作します。
  • ドキュメントはページ分割されます。判決文や法律の全文は、1ページあたり約5000文字の単位に分割されます(yargi-mcp の方式)。そのため、200ページの裁定でもコンテキストウィンドウを埋め尽くしません。サーバー側でページ分割するソース(isap)では、pageがネイティブに渡され、pagination: "native"として報告されます。アグリゲーターは、すでに分割されたページを再分割せず、把握できないtotal_pagesを捏造することもありません。

対応範囲

ソース ID内容機関/データベースコネクターランタイム
saos判例法:一般裁判所、最高裁判所、憲法裁判所+判例引用情報SAOSmcp-saosnpx
nsa判例法:行政裁判所(NSA+16 WSA)CBOSAmcp-nsanpx
isap法令:Dziennik Ustaw+Monitor Polski、96,000件以上の法令Sejm ELI APImcp-isapnpx
krs会社登記:抄本、履歴、取締役会の構成KRS API (Ministry of Justice)mcp-krsnpx
eureka税務裁定:55万件以上の個別解釈EUREKA (Ministry of Finance)mcp-eurekanpx
kio公共調達:国家不服申立審査会の裁定orzeczenia.uzp.gov.plkio-orzeczenia-mcpuvx
uodoGDPR の執行:ポーランドのデータ保護機関の決定、罰金、統計orzeczenia.uodo.gov.pluodo-orzeczenia-mcpuvx
eu-sparqlEU 法:CELEX による EUR-Lex、ECLI による CJEU、GDPRhubCellar SPARQLmcp-eu-sparqlnpx
eu-compliance14 件の EU 規則をオフラインで利用(GDPR、AI Act、DORA、NIS2 など)ローカル SQLite コーパスmcp-eu-compliancenpx
legalizeGit による法令管理:32 の法域、コミットごとにバージョン管理legalize-devlegalize-mcpuvx

ポーランドのソースには group: pl、EU の追加ソースには group: eu のタグが付いています。pl_list_sources(group="pl") で絞り込めます。

ツール

ツール機能
pl_list_sourcesソースのカタログ(サブプロセスは起動しません)。source_id を指定すると、コネクター 1 つ分のツールスキーマをリアルタイムで取得します。
pl_search正規化されたパラメーターで任意のソースを検索します。ソース固有のフィルターは extra で指定します。
pl_get_document識別子(判決 ID、ELI、KRS 番号、署名など)で文書全体をページネーション形式で取得します。
pl_call任意のコネクターのネイティブツールを呼び出します。判例引用情報、データ保護機関の統計、取締役会の構成、規則の比較などに対応します。
pl_coverageこのコネクターの対応範囲、各種別のデータ取得時期、そして明示的に非対応の範囲を宣言します。各ギャップには代替手段が示されています。

LLM がたどる一般的なフローは(サーバーの instructions に明記されています)、 pl_list_sources → pl_search → pl_get_document で、各コネクターが提供する 専門ツールには pl_call を使用します。

インストール

Python ≥ 3.11 と、使用するソースのランタイムが必要です。npx ソースには Node.js ≥ 18、 uvx ソースには uv が必要です。ランタイムが不足している場合、 該当するソースは source_unavailable を返し、ほかのソースは引き続き動作します。

Claude Code
claude mcp add pl-legal -- uvx prawo-pl-mcp
Claude Desktop/任意の MCP クライアント(stdio)
{
  "mcpServers": {
    "pl-legal": {
      "command": "uvx",
      "args": ["prawo-pl-mcp"]
    }
  }
}
リモート(Streamable HTTP)
uvicorn prawo_pl_mcp.asgi:app --host 0.0.0.0 --port 8000

デフォルトでは公開されています(公開、読み取り専用データ)。すべてのリクエストで X-API-Key: <key> または Authorization: Bearer <key> を必須にするには、 PRAWO_PL_MCP_API_KEY を設定してください。

設定

環境変数デフォルト意味
PRAWO_PL_MCP_CMD_<ID>-ソースの起動コマンドを上書きします。たとえば、ローカルのチェックアウトでは PRAWO_PL_MCP_CMD_SAOS="node C:/dev/mcp-saos/dist/index.js" のように指定します。<ID> = ソース ID。大文字にし、- → _ にします。
PRAWO_PL_MCP_INIT_TIMEOUT180コネクターの初回起動に許可される秒数です(パッケージのダウンロードを含みます)。
PRAWO_PL_MCP_TIMEOUT90起動後、ツール呼び出しごとに許可される秒数です。
PRAWO_PL_MCP_AUDIT_DIR~/.matematic/auditJSONL 監査ログの出力先です。
PRAWO_PL_MCP_API_KEY-ASGI モードのみ:この API キーを必須にします(デュアルチャネル)。

アーキテクチャ

アグリゲーターは薄いプロキシです (ADR 0001)。コネクターはインポート、 同梱、フォークされません。アグリゲーターは他のクライアントと同様に、 stdio 経由でコネクターと MCP で通信します。このレイヤーは、ソースレジストリ (コネクターごとに 1 つの dataclass エントリー)、遅延サブプロセスプール、 パラメーター変換器、ページネーターで構成されています。ソースを追加するには、 レジストリーにエントリーを追加します。

LLM client ──MCP──▶ prawo-pl-mcp ──MCP/stdio──▶ npx @matematicsolutions/mcp-saos
                        │         ──MCP/stdio──▶ uvx kio-orzeczenia-mcp
                        │         ──MCP/stdio──▶ ... (spawned on first use)
                        └─ registry + param mapping + 5000-char pagination

すべての呼び出しは JSONL 監査ログに記録されます(タイムスタンプ、ツール、ソース、パラメーターのハッシュ、 レイテンシ。ドキュメントの内容は記録されません)。

開発

git clone https://github.com/matematicsolutions/prawo-pl-mcp && cd prawo-pl-mcp
uv sync --extra dev
uv run pytest          # offline tests: registry, dispatch mapping, pagination, drift
uv run prawo-pl-mcp    # stdio server

ライセンス

Apache-2.0。各コネクターには独自のライセンス(MIT または Apache-2.0)、 独自のレート制限、上流データベースに対する独自の利用規約があります。アグリゲーターは ページネーション以外のキャッシュや変換を行わないため、各コネクターの制約が そのまま適用されます。

コメント

MCP は初めてですか?

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

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