mcpField
F
Fedlex Connector

Fedlex Connector

リモート
fedlex-connector.ch法務・行政7今日更新
リポジトリ公式サイト

Fedlex Connector について

Fedlex Connectorは、法律調査や分析向けのMCPサーバーで、連邦法令集に収録されたスイス連邦法にアクセスできます。SPARQLによるメタデータ検索と公式HTML本文の取得を組み合わせ、ドイツ語、フランス語、イタリア語に対応します。

主な機能

  1. 01現行法令のタイトル検索
  2. 02条文と法令全文の取得
  3. 03条文の基準日指定
  4. 04改正履歴の一覧
  5. 05長文のページ分割

活用シーン

  1. 01タイトルから法令のRS番号を特定
  2. 02指定言語で条文を確認
  3. 03法令の最近の改正を確認

MCP 対応

法令検索、条文や法令全文の取得、改正一覧のツールをMCPクライアントに提供します。メタデータはFedlex SPARQLから、本文はHTMLファイルストアから取得します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://mcp.fedlex-connector.ch/
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

4
パラメーター型必須説明
querystringはい法令タイトルとの照合に使用するキーワード(例:'code civil'、'protection des données')
languageenumいいえ結果の言語(デフォルト:de)fr | de | it

詳細

Fedlex Connector

Claude からスイス連邦法にアクセス

Model Context Protocol(MCP)を基盤として構築されたコネクターです。Claude が Fedlex に掲載されたスイス連邦法の公式テキストに直接アクセスできます。分類法令集(SR、RS)に収録されたすべての法律を、ドイツ語、フランス語、イタリア語で利用できます。


開発の背景

スイス連邦法は Fedlex でのみ公開されていますが、そのフロントエンドは JavaScript のシングルページアプリケーションであるため、Claude に組み込まれたウェブツールでは表示できません。一方、Fedlex には JavaScript を使わずに利用できる、機械可読なインターフェースが 2 つあります。

  • メタデータのクエリに使える SPARQL エンドポイント(fedlex.data.admin.ch/sparqlendpoint)
  • 統合された法令を配信する 静的 HTML ファイルストア(fedlex.admin.ch/filestore/...)

この MCP サーバーが両者の間をつなぎます。メタデータ(RS 番号、統合日、改正履歴)を SPARQL でクエリし、HTML を取得して解析して実際の法令テキストを抽出し、構造化された形式で Claude に返します。独自のデータベースもキャッシュも使わず、Fedlex のオープンデータ基盤につなぐステートレスなブリッジです。


セットアップ

このサーバーは、ローカルでの利用(Claude Code、Claude Desktop)向けの stdio と、リモートでの利用(claude.ai)向けの HTTP の 2 つのトランスポートに対応しています。どちらか一方、または両方を利用できます。

サーバーは次の場所でホストされています。

https://mcp.fedlex-connector.ch

claude.ai / Claude Desktop:

  1. claude.ai にアクセスします
  2. サイドバーの Customize(Anpassen / Personnaliser / Personalizza)をクリックします
  3. Connectors をクリックします
  4. + → Add connector をクリックします
  5. Add custom connector をクリックし、URL https://mcp.fedlex-connector.ch を貼り付けます

「Fedlex Connector」という名前を付けることをおすすめします。

Claude Code:

claude mcp add --transport http fedlex https://mcp.fedlex-connector.ch

接続すると、Claude は Fedlex からテキストを直接取得して、「スイス民法典第 1 条には何と書かれていますか?」 といった質問に回答できます。

独自のインスタンスをデプロイする

このサーバーには、Docker コンテナに対応する任意のクラウドプラットフォーム(Railway、Fly.io、Render など)にデプロイするための Dockerfile が含まれています。PORT 環境変数を設定すると、サーバーは HTTP モードで起動します。PORT を設定しない場合は、ローカル利用向けの stdio モードで起動します。

MCP エンドポイントは https://your-domain になります。次のコマンドで確認してください。

curl https://your-domain/health

ツール

search_by_title

分類法令集(RS/SR)からスイス連邦法のタイトルを検索します。現在有効な法律のみを返します。

パラメーター型必須説明
querystringはい法律のタイトルに一致させるキーワード
languagefr de itいいえ結果の言語(デフォルト:de)

例: データ保護法の RS 番号を検索します。

search_by_title(query="protection des données")
→ RS 235.1 — Loi fédérale sur la protection des données (LPD)
get_article

特定の条文の公式な統合テキストを取得します。

パラメーター型必須説明
rs_numberstringはいRS 番号(例:CC は "210"、CO は "220")
articlestringはい条文番号(例:"3"、"28a"、"260bis")
languagefr de itいいえ言語(デフォルト:de)
datestringいいえ統合日(YYYY-MM-DD)。デフォルトは最新の日付です

例: ドイツ語で CC 第 1 条を取得します。

get_article(rs_number="210", article="1", language="de")
→ Art. 1: Das Gesetz findet auf alle Rechtsfragen Anwendung...
get_law_text

法律または特定のタイトル/章の全文を取得します。これは、原典から法律を読み、分析するための主要なツールです。

パラメーター型必須説明
rs_numberstringはいRS 番号
sectionstringいいえタイトル/章で絞り込みます(例:"Titre huitième")
languagefr de itいいえ言語(デフォルト:de)
pagenumberいいえページ分割された結果のページ(デフォルト:1)

法律の分量が多い場合は、自動的にページ分割されます(条文の境界で分割)。各レスポンスには総ページ数が含まれます。

例: スイスの賃貸借法(CO、第8編)を取得します。

get_law_text(rs_number="220", section="Titre huitième", language="fr")
→ [Full text of tenancy provisions, art. 253 onwards]
list_amendments

指定した法律の最近の改正(統合版)を一覧表示します。

パラメーター型必須説明
rs_numberstringはいRS 番号
sincestringいいえ開始日、YYYY-MM-DD(デフォルト:1年前)
languagefr de itいいえタイトルの言語(デフォルト:de)

例: CO の最近の変更を確認します。

list_amendments(rs_number="220", since="2024-01-01")
→ 2026-01-01 — Version in force from 2026-01-01 (current)
  2025-10-01 — Version in force from 2025-10-01 to 2025-12-31
  ...

仕組み

Claude  ──MCP──>  Fedlex Connector  ──SPARQL──>  fedlex.data.admin.ch
                                      ──HTTP───>   fedlex.admin.ch/filestore/...

メタデータの経路(SPARQL): サーバーは Fedlex の SPARQL エンドポイント(JOLux オントロジー)にクエリを送信し、RS 番号を内部 URI に対応付け、最新の統合日を特定し、HTML ファイルの URL を検出して、改正履歴を一覧表示します。

テキストの経路(HTML ファイルストア): 取得する HTML ファイルが特定されると、サーバーは静的ファイルストアからファイルを取得し、Cheerio で DOM を解析して、指定された条文、節、または全文を抽出します。CO のように1,100条を超える大規模な法律は複数の HTML ファイルに分割されており、サーバーがそれらを自動的に検出して結合します。

一般的なリクエストのデータフロー:

  1. Claude が get_article(rs_number="210", article="3") を呼び出します
  2. サーバーが SPARQL にクエリを送信します:RS 210 → ConsolidationAbstract URI
  3. サーバーが SPARQL にクエリを送信し、その URI の最新の統合日を取得します
  4. サーバーが SPARQL にクエリを送信し、その統合版の HTML ファイルストア URL を取得します
  5. サーバーが HTML を取得して解析し、第3条を抽出します
  6. サーバーが統合日と法的な注意事項を添えて、条文のテキストを Claude に返します

すべてのレスポンスには、法的な効力を持つのは連邦官房が公開する公式法令集(RO/AS)のみであることを示すフッターが含まれます。


開発

プロジェクト構成
src/
  index.ts       # Entry point: picks stdio or HTTP transport based on PORT env var
  server.ts      # MCP server factory: tool definitions and request handlers
  types.ts       # TypeScript interfaces, error types, constants
  sparql.ts      # SPARQL endpoint queries (metadata, RS resolution, amendments)
  filestore.ts   # HTML fetching, parsing, article/section extraction, pagination
build/           # Compiled JavaScript (generated by tsc)
Dockerfile       # Container build for cloud deployment
スクリプト
コマンド説明
npm run buildTypeScript を ./build にコンパイルします
npm startMCP サーバーを実行します(stdio モード)
npm run start:httpHTTP モードでローカル実行します(ポート3000)
npm run dev監視モードで実行します(変更時に自動再コンパイル)
依存関係
パッケージ用途
@modelcontextprotocol/sdkMCP サーバー SDK(ツールの登録、stdio トランスポート)
cheerio法令テキスト抽出のための HTML 解析
エラーコード

サーバーは、コードと実行可能な対処方法を含む構造化エラーを返します。

コード意味
RS_NOT_FOUNDSPARQL グラフに RS 番号が見つかりません
ARTICLE_NOT_FOUND法令内に条文が存在しません(近接する ID の一覧を含みます)
SPARQL_UNAVAILABLESPARQL エンドポイントが停止しているか、エラーを返しました
FILESTORE_ERRORHTML ファイルが見つからないか、取得に失敗しました
INVALID_INPUTパラメーターが不足しているか、形式が正しくありません
PARSE_ERRORHTML の解析に失敗しました

既知の制限事項

  • 法令全体の過去のバージョン: get_law_text は現行法令全体のみを取得し、過去のバージョンは返しません。過去の条文を取得するには、date パラメーターに対応した get_article を使用してください。

  • HTML の提供状況: Fedlex では通常、2021 年以降の統合版のみ HTML が提供されています。それ以前のバージョンは、Fedlex プラットフォームで PDF または DOC としてのみ利用できます。指定した日付の HTML が利用できない場合、サーバーは案内を含む明確なエラーを返します。

  • レート制限: SPARQL エンドポイントとファイルストアは、スイス政府が運営する公開サービスです。責任あるクライアントとして利用するため、サーバーはエンドポイントごとに毎秒 10 件までにリクエストを制限します。

  • セクションのフィルタリング: get_law_text の section パラメーターは見出しテキストとの照合を使用します。標準的なセクション名には適切に機能しますが、通常と異なる見出しには一致しない場合があります。フィルタリングに失敗すると、注記とともに法令全体のテキストが返されます。

  • 対応言語: フランス語(FR)、ドイツ語(DE)、イタリア語(IT)に対応しています。ロマンシュ語には対応していません。

  • 対象範囲: 対象は、連邦法の分類集に収録されたものに限ります。州法、連邦官報、裁判所の判決は対象外です。


ライセンス

MIT

コメント

MCP は初めてですか?

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

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