mcpField
D
Docket Lens

Docket Lens

ローカル
blackswancausallabs.comその他01 日前に更新

Docket Lens について

Docket Lens は、規制関連の調査者が意見やガイダンスを確認するための FDA ドケット検索サーバーと分析ワークフローです。資料をキャッシュし、添付ファイルを抽出して、サーバー内でモデルを呼び出さずに草案と最終版を決定論的なテキスト処理で比較します。

主な機能

  1. 01ドケット記録の検索と取得
  2. 02コメントの取得と添付テキストの抽出
  3. 03再開可能なローカルコーパスの構築
  4. 04草案と最終版をセクション単位で比較
  5. 05コーパスデータの JSONL 出力

活用シーン

  1. 01FDA ドケットのコメントと提出者情報を確認する
  2. 02分析用にコメントと添付資料を収集する
  3. 03草案と最終版の段落変更を追跡する

MCP 対応

MCP サーバーは、ドケットの検索、文書やコメントの取得、コーパス構築、ガイダンス比較のツールを公開します。ツールはローカルの SQLite キャッシュを使い、キャッシュミス時または更新指定時にネットワークへアクセスします。

設定

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

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
mcpbdocket-lens-0.1.0.mcpb

ツール

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

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

詳細

regintel-mcp

FDA regulations.gov の規制関連情報:コメントを寄せた人、求めた内容、ガイダンスの草案から最終版までに変更された点。

Black Swan Causal Labs · blackswancausallabs.com

検索は MCP サーバーが担い、判断はスキルが担います。人間はチェックポイントで確認します。

レイヤーコンポーネントステータス
データregintel-mcp サーバー(このリポジトリ、MIT)フェーズ 1 を構築済み。 取得、キャッシュ、抽出、差分比較を行います。解釈は行いません。
手法スキル:submitter-taxonomy、comment-theming、draft-final-concordance構築済み
オーケストレーション4 つの人間によるチェックポイントを設けた /docket-analysis <docketId>構築済み。FDA-2020-D-2307 で初回実行
出力Docket Lens エクスプローラー(1 つの analysis.json を読み込み、PolyForm Noncommercial)FDA-2020-D-2307 向けに構築済み

インストール

Python 3.11 以降が必要です。

git clone https://github.com/Black-Swan-Causal-Labs/regintel-mcp.git
cd regintel-mcp
python3 -m venv .venv && .venv/bin/pip install -e .
cp .env.example .env    # then paste your key into .env

API キー: https://open.gsa.gov/api/regulationsgov/ で無料のキーを取得し、.env に REGULATIONS_GOV_API_KEY=... として設定します。.env は gitignore されています。キーは X-Api-Key ヘッダーとしてのみ送信され、ログ、キャッシュ、出力には一切表示されません。1 件の検索であれば DEMO_KEY でも問題ありませんが、コーパス全体の取得にはレート制限が厳しすぎます。個人用キーでは 1 時間あたり 1,000 リクエストが可能です。

MCP クライアントに登録します。 MCP はオープンスタンダードなので、このサーバーは互換性のあるあらゆるアシスタント(Claude、OpenAI Codex など)で動作します。Claude Code の場合は、リポジトリのディレクトリから次を実行します。

claude mcp add regintel-mcp -- "$(pwd)/.venv/bin/python" -m regintel_mcp

Claude プラグインとしてインストールすると、.mcp.json はプラグインのルートからサーバーを起動します。

ツール

すべてのツールは、まずローカルの SQLite キャッシュ(data/cache.sqlite)を読み込みます。ネットワークにアクセスするのは、キャッシュにない場合、または refresh=true を指定して呼び出した場合のみです。

ツール機能
search_dockets(query, agency="FDA", docket_type?, limit=25)ドケットをキーワード検索します
get_docket(docket_id)ドケットのメタデータとコメントの総数を取得します
list_documents(docket_id)通知、ガイダンスの草案と最終版、会議資料を、すべてのファイル URL とともに一覧表示します
list_comments(docket_id, include_withdrawn=false)すべてのコメントを内部でページ分割して取得します。is_stub、duplicate_of、agency_duplicate_count のフラグを付与します(フラグを付けるだけで、何も除外しません)
get_comment(comment_id)本文、提出者のフィールド、添付ファイル、および抽出した添付ファイルのテキストを取得します
build_corpus(docket_id, with_attachments=true)すべてのコメントと添付ファイルをキャッシュに取り込みます。再開可能です。スタブ、重複、OCR の必要性、失敗を報告します
get_guidance_text(ref)ガイダンス文書(ドキュメント ID または URL)を番号付きのセクションに分割して取得します
diff_guidance(draft_ref, final_ref)セクションを対応付けた草案と最終版の差分を作成します。段落の変更と、移動した段落を検出します
export_corpus(docket_id)スキルとサブエージェント向けに output/<docket>/corpus.jsonl を書き出します

チャット外で長時間の取得を行う場合は、次を実行します:.venv/bin/python -m regintel_mcp build-corpus FDA-2020-D-2307。

差分の仕組み: テキストレイヤーは pdfplumber で抽出します。ランニングヘッダー、草案の行番号、脚注、目次を取り除きます。セクションはガイダンス独自のローマ数字、文字、数字の見出しで分割し、まず見出し(親見出しを含むもの)で草案から最終版へ対応付け、次に見出しとテキストの類似度で対応付けます。対応付けられた各セクション内で段落を比較し、別のセクションへ移動した段落にはラベルを付けます。処理はすべて決定論的で、サーバー内でモデル呼び出しは行いません。

稼働中のサービスで検証した API の動作は docs/api-notes.md に記録されています。

Docket Lens(エクスプローラー)

Docket Lens(explorer/template.html)は、1 つの analysis.json を読み込み、3 つの連動したビューを表示する単一ページです。誰が発言したか、何を求めたか(テーマ × 提出者タイプのヒートマップで、開くと逐語的な要望を表示)、何が変わったか(セクションごとのドラフトと最終版の比較、および各要望への判定)を確認できます。ドケットのコピーを作成するには、次を実行します。

.venv/bin/python scripts/build_analysis.py FDA-2020-D-2307
.venv/bin/python scripts/build_explorer.py FDA-2020-D-2307

次に、静的サーバーを使って explorer/FDA-2020-D-2307/index.html を開きます。たとえば、python3 -m http.server --directory explorer/FDA-2020-D-2307 を実行します。エクスプローラーは PolyForm Noncommercial 1.0.0(explorer/LICENSE、explorer/NOTICE)に基づき、別途ライセンスされています。

Docket Lens のデモをホスティングする(Cloudflare Pages、パスワード保護)
sh scripts/build_site.sh FDA-2020-D-2307
cd site && npx wrangler pages deploy public --project-name docket-lens

site/functions/_middleware.js は、analysis.json を含むすべてのリクエストの前に HTTP Basic Auth を設定します。認証情報は Pages のシークレットであり、ファイルには保存されません。npx wrangler pages secret put DEMO_USER --project-name docket-lens を実行し、DEMO_PASS についても同様に設定してください。いずれかのシークレットが設定されていない場合、サイトは何も提供しません(フェイルクローズします)。これはデモ用のゲートであり、機密データのアクセス制御ではありません。

ステータス(2026 年 10 月 3 日)

  • 初回の全工程実行:FDA-2020-D-2307(コメント 60 件、要望 1,211 件、チェックポイント 4 件、判定 55 件に対する人手によるスポットチェックの一致率 91%)。出力は output/FDA-2020-D-2307/、判定は decisions/ にあります。
  • 2 番目のドケットでのスモークテスト:FDA-2021-D-0548。検索とドラフト/最終版の比較は変更なしで合格しました。docs/smoke-test-FDA-2021-D-0548.md を参照してください。

一致度に関する注意点

このツールが測定するのは、影響ではなく一致度です。 ドラフトから最終版へのガイダンスの変更は、FDA の内部レビュー、ICH M14、その他のガイダンス、および進化する科学的知見によっても生じます。最終版の文面がコメント投稿者の要望した方向に変わっていても、その変更がコメントによって引き起こされたことを示すものではありません。 このプロジェクトのすべての出力には、この注意書きが付されています。

ライセンス

サーバー:MIT(LICENSE を参照)。エクスプローラーのテンプレートは PolyForm Noncommercial 1.0.0 に基づき、別途ライセンスされています。

© 2026 Black Swan Causal Labs · https://blackswancausallabs.com

公式 MCP Registry のパッケージ化

Docket Lens の検索サーバーには、Registry で配布するための MCP バンドルがあります。 Registry のインストールとリリース手順を参照してください。 バンドルには uv、Regulations.gov API キー、および書き込み可能な作業フォルダーが必要です。

コメント

MCP は初めてですか?

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

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