LexAPI について
LexAPI は、法律実務家や EU 法研究者向けの MCP サーバーです。EUR-Lex の法令や EU 判例を検索し、条文単位の本文、引用関係、セマンティック検索を提供します。過去の日付で有効だった法令を取得でき、出典には CELEX 引用を示します。
主な機能
- 01EUR-Lex の構造化検索と最近の文書
- 02法令・判例のセマンティック検索
- 03CELEX または URL による文書取得
- 04条文単位の本文と過去のバージョン
- 05引用グラフと引用経路の検索
- 06文書とメタデータの一括取得
活用シーン
- 01EU 法令の特定条文の検索
- 02CJEU 判決と関連法令の調査
- 03過去の日付で有効な法令本文の確認
- 04引用や改正関係の追跡
MCP 対応
EU 法令、判例、文書、引用グラフを検索・取得するツールを提供します。ローカルの stdio とホスト型 Streamable HTTP 接続に対応し、LexAPI API キーが必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.lex-api.com/v1claude mcp add --transport http lexapi https://mcp.lex-api.com/v1{"mcpServers":{"lexapi":{"type":"http","url":"https://mcp.lex-api.com/v1"}}}Cursor で開く{"servers":{"lexapi":{"type":"http","url":"https://mcp.lex-api.com/v1"}}}VS Code で開く{"mcpServers":{"lexapi":{"type":"http","url":"https://mcp.lex-api.com/v1"}}}{"mcpServers":{"lexapi":{"serverUrl":"https://mcp.lex-api.com/v1"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.lex-api.com/v1認証が必要ツール
10| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| year | any | いいえ | |
| query | string | いいえ | フリーテキスト検索。 |
| author | any | いいえ | |
| dateTo | string | いいえ | |
| dateFrom | string | いいえ | |
| language | enum | いいえ | en | fr | de | es | it | pl | nl | pt | ro | bg | cs | da | el | et | fi | ga | hr | hu | lt | lv | mt | sk | sl | sv |
| maxPages | integer | いいえ | 取得する結果ページ数(サブスクリプションのプランによって上限があります)。 |
| textScope | enum | いいえ | クエリ文字列を適用する対象。title | text | title-text | any |
| documentType | any | いいえ |
詳細
LexAPI MCP
LexAPI 用の Model Context Protocol サーバーです。AI アシスタント向けの EU 法令を提供します。EUR-Lex の法令を条文レベルまで解析したデータ、CJEU の判例法、型付きの引用関係グラフ、セマンティック検索(過去の日付時点で有効だった法令を含む)を利用できます。Claude、Cursor、VS Code、その他のあらゆる MCP クライアントで動作します。
アシスタントに 「GDPR 第 17 条では何が求められますか?」、「REACH を改正した法令はどれですか?」、あるいは 「2019 年 6 月時点で、銀行に求められていた自己資本要件は何でしたか?」 と質問すると、モデルが LexAPI を呼び出し、CELEX の引用を付けて原文に基づく回答を返します。
LexAPI の API キーが必要です。lex-api.com/dashboard で無料で作成できます。FREE プランには月 500 クレジットが含まれ、カードの登録は不要です。読み取りツールを試すには十分な量です。
インストール
Claude Desktop
claude_desktop_config.json に追加します(macOS の場合:~/Library/Application Support/Claude/claude_desktop_config.json)。
{
"mcpServers": {
"lexapi": {
"command": "npx",
"args": ["-y", "@lexapi/mcp"],
"env": { "LEXAPI_API_KEY": "lex_..." }
}
}
}
Claude Desktop を再起動します。
Claude Code
claude mcp add lexapi --env LEXAPI_API_KEY=lex_... -- npx -y @lexapi/mcp
Cursor、VS Code、その他の stdio クライアント
環境変数に LEXAPI_API_KEY を設定して npx -y @lexapi/mcp を実行します(Cursor:~/.cursor/mcp.json、VS Code:.vscode/mcp.json。上記と同じ command/args/env の形式です)。
ホスト型サーバー(ローカルへのインストール不要)
同じツールが https://mcp.lex-api.com/v1 で Streamable HTTP 経由で提供されます。キーは Authorization: Bearer lex_...(または x-api-key: lex_...)として認証します。
claude mcp add --transport http lexapi https://mcp.lex-api.com/v1 --header "Authorization: Bearer lex_..."
npm パッケージには Node.js 20 以降が必要です。
ツール
各呼び出しの料金は、ラップしている REST エンドポイントと同様に LexAPI クレジットプールから差し引かれます。各ツールの説明には、モデルが確認できるよう料金が記載されています。
| ツール | 機能 | クレジット |
|---|---|---|
lex_semantic_legislation | 意味に基づいて法令の条文を検索します。asOf を指定すると、指定日の施行中の条文を返します。統合版の検索結果にはラベルが付き、引用すべき原法令も示されます。 | 5(asOf による現行版の取得ごとに最大 5 追加) |
lex_semantic_case_law | 意味に基づいて判決、命令、法務官意見を検索します。簡潔なクエリには hyde を指定できます。裁判所、日付、事件番号で絞り込めます。 | 5(hyde を指定すると 15) |
lex_search | EUR-Lex を構造化検索します。テキスト、日付、種別、作成者、手続き、コレクションで検索できます。 | 1 ページあたり 3 |
lex_recent_documents | 過去 N 日間に公開された文書を検索します。 | 10 件あたり 3 |
lex_resolve | URL/ELI/ECLI → CELEX に変換します。 | 1 |
lex_get_document | CELEX で文書を取得します。大型法令では最初に概要を返し、その後 articleId または include で各部分を取得します。言語と代替言語を指定できます。 | コーパス 1 · Cellar 4 · 現行版 5 |
lex_get_documents_batch | 一度に最大 50 件の文書を取得します(プランの上限が適用されます)。 | 上記と同じく文書ごと |
lex_get_metadata | メタデータのみを取得します。 | 1 · 4 · 5 |
lex_get_document_by_url | 貼り付けた EUR-Lex URL から文書を取得します。 | 1 · 4 · 5 |
lex_document_versions | LexAPI が確認した文書のバージョン履歴を取得します。 | 1 |
lex_get_document_version | バージョン番号または日付を指定して、確認済みのスナップショットを取得します。 | 1 |
lex_cited_by | 法令を引用、改正、訂正、廃止している文書を取得します。 | 1 |
lex_cites | 文書が引用しているものを取得します。 | 1 |
lex_citation_network | 1 回の呼び出しで両方向を取得します。 | 20 |
lex_citation_path | 2 つの文書間の最短引用経路を取得します。 | 20 |
lex_related | 同じ法令を引用している文書を取得します(書誌的結合)。 | 20 |
lex_citation_stats | 引用グラフの合計と、最も多く引用されている文書を取得します。 | 20 |
lex_extract_citations | 文書からの引用をグラフに追加します。 | 5(すでに追加済みの場合は 1) |
lex_export | 種別(正確なラベル、大文字・小文字は不問)または種別ファミリー(documentTypeCode)、作成者、コレクション、言語、文書の日付(dateFrom/dateTo)、changedSince、fetchedSince(BUSINESS プラン以上)でコーパスの行を取得します。 | 返された行ごとに 1、呼び出しごとに最低 1(1 クレジットで受付。limit までの行数分を予約し、返されなかった行の分は返金。予約分をプールでまかなえない場合は 402) |
lex_info | ご利用のプラン、クレジット残高、上限を確認します。 | 無料 |
lex_list_webhooks · lex_get_webhook | ご利用の Webhook とその配信状況を確認します。 | 無料 |
lex_create_webhook · lex_update_webhook · lex_delete_webhook · lex_test_webhook | 新しい文書や、監視対象の法令の変更を通知する Webhook を管理します(有料プラン)。URL は公開された https URL(ポート 443/8443。内部ホストやプライベートアドレスは不可)である必要があります。API と同様、ここでも検証されます。 | 無料 |
モデル向けの結果形式
- コンパクトな出力。 レスポンスからエンベロープと重複するレガシーフィールドが取り除かれます。文書にはメタデータ、
textAvailability(テキストがない理由、利用できる言語、最新の統合版への参照)、言語フォールバックのラベルが保持されます。 - 大型文書。
lex_get_documentはmaxChars(デフォルトは 40,000 文字)に収まる場合は本文全体を返し、収まらない場合は概要(条文 ID、セクションツリー、件数)を返します。articleIdで条文を取得するか、includeで各部分を取得できます。長い部分はoffsetを使って続きを取得できます。 - 統合テキストは真正なものではありません。 統合版には
consolidated: true、consolidatedAsOf、baseCelexと注記が付与されます。統合版を参照することはできますが、引用する際は官報に掲載された法令を指定してください。 asOf。 各法令の検索結果には、その日付に施行中のバージョンが含まれているかどうか(asOfResolved、asOfVersion)が示されます。解決できなかった検索結果では、現行のテキストとasOfReasonが保持され、レスポンスに警告が表示されます。- エラーには対処方法が示されます。 402 では必要なクレジット数、残高、リセット日が示され、429 では待機時間が示されます。
設定
| 環境変数 | デフォルト | 用途 |
|---|---|---|
LEXAPI_API_KEY | (必須) | lex-api.com/dashboard で取得した API キーです。 |
LEXAPI_BASE_URL | https://lex-api.com/api/v1 | ステージング環境またはセルフホスト環境で使用する場合に上書きします。 |
LEXAPI_MCP_READ_ONLY | オフ | true にすると、読み取り専用ではないすべてのツール(webhook の作成/更新/削除/テスト、および lex_extract_citations。共有の引用グラフに書き込み、クレジットを消費します)が非表示になり、実行も拒否されます。 |
LEXAPI_TIMEOUT_MS | 55000 | リトライを含む、LexAPI に対する 1 回のツール呼び出しの制限時間です。MCP クライアント側のツールタイムアウトも同時に延長する場合に限り、値を大きくしてください。 |
LEXAPI_MCP_ALLOWED_ORIGINS | (なし) | ホスト型 HTTP サーバーのみ:アクセスを許可するブラウザーの Origin(カンマ区切り、任意のオリジンを許可する場合は *)。Origin ヘッダーのないリクエスト(すべての非ブラウザークライアント)は常に許可されます。 |
キーは x-api-key ヘッダーを通じて LexAPI にのみ送信され、ログに記録されたり、ツールの出力に含まれたりすることはありません。空白文字や制御文字を含むキー(複数行で貼り付けた場合など)は、起動時に拒否されます。
タイムアウト。 MCP クライアントは、独自のタイムアウト(公式 SDK ではデフォルト 60 秒、Claude Code では MCP_TOOL_TIMEOUT)を過ぎると、ツール呼び出しを終了します。EUR-Lex への初回のライブ取得には、それ以上かかることがあります。サーバーはリトライとレート制限による待機を含め、各ツール呼び出しに 55 秒の制限時間を設け、その後はクライアントの一般的なタイムアウトエラーではなく、モデルが対応できるメッセージを返します。クライアントが進行状況トークンを送信すると、サーバーは 10 秒ごとに進行状況通知も送信します。この通知によって呼び出しが継続されるかどうかはクライアント次第です(呼び出し側が resetTimeoutOnProgress を有効にした場合にのみ、公式 SDK は進行状況に応じてタイムアウトを延長します。また、サーバーはこの設定を検出できません)。そのため、制限時間は 55 秒のままです。クライアントのタイムアウトを延長する場合は、LEXAPI_TIMEOUT_MS も同じ値にしてください。呼び出しをキャンセルすると、LexAPI へのリクエストは中止されます。
トラブルシューティング
LEXAPI_API_KEY is not set— 変数が起動したプロセスに渡されていません。MCP クライアント設定のenvブロックを確認してください。LexAPI error 401— キーが間違っているか、取り消されています。ダッシュボードで新しいキーを作成してください。LexAPI error 402 (CREDITS_EXHAUSTED)— 月間クレジットを使い切っています。メッセージにリセット日が表示されます。クレジットの追加購入やプランのアップグレードは、ダッシュボードから行えます。LexAPI error 429— キーに設定された 1 分あたりのレート制限に達しています(FREE:1 分あたり 15 回)。短時間の待機は自動的に 1 回リトライされます。それ以外の場合は、待機時間がメッセージに表示されます。LexAPI error 403— プランにその機能が含まれていません(たとえば、BUSINESS 未満のエクスポート、またはクレジット制導入前の旧 FREE プランでのセマンティック検索)。- webhook の作成時の
LexAPI error 400— 詳細に問題が示されます(未対応の条件、プラン上限を超えた監視リスト、またはプランの webhook 上限。FREE には webhook がありません)。
開発
git clone https://github.com/Lex-API/lexapi-mcp.git
cd lexapi-mcp
npm install
npm test # build + unit and transport tests (mocked API, no network)
npm run typecheck && npm run lint
node scripts/smoke-stdio.mjs # stdio smoke test against a local mock API
LEXAPI_API_KEY=lex_... node scripts/smoke-stdio.mjs --live # against the real API (spends roughly 6–25 credits)
npm run start:http は、ホスト型の Streamable HTTP トランスポート(POST /v1、GET /health、ポートは PORT から取得し、デフォルトは 3000)を実行します。Dockerfile でビルドできます。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。