mcpField
Q
questlaw-library

questlaw-library

ローカル
github.com/questlaw法務・行政02 日前に更新

questlaw-library について

questlaw-libraryは、対応するAIクライアントからQuestLawのリサーチライブラリを検索・閲覧する実験的な読み取り専用MCPサーバーです。暗号化されたエクスポートをローカルのメモリ上で復号して検索インデックスを作成し、ネットワーク接続は行いません。

主な機能

  1. 01レコード全体を横断検索
  2. 02保存済み判例の絞り込みとページ表示
  3. 03判例、メモ、引用の閲覧
  4. 04取得済みソーステキストの参照
  5. 05草稿内の引用箇所の検索
  6. 06最新のエクスポートの再読み込み

活用シーン

  1. 01保存済みの法律資料の検索
  2. 02引用やソース文書の確認
  3. 03ライブラリ内の資料が草稿で引用されているか確認

MCP 対応

stdio経由で、MCPクライアントに読み取り専用の検索・取得ツールを提供します。暗号化された`.qlvault`エクスポートを読み込み、ローカルのメモリ上で復号します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"questlaw-questlaw-library": {
"command": "npx",
"args": [
"-y",
"questlaw-mcp"
],
"env": {
"QUESTLAW_VAULT_FILE": "<QUESTLAW_VAULT_FILE>",
"QUESTLAW_DISCLOSURE_ACK": "<QUESTLAW_DISCLOSURE_ACK>",
"QUESTLAW_KEY_ACCOUNT": "<QUESTLAW_KEY_ACCOUNT>"
}
}
}
}
起動コマンドnpx -y questlaw-mcp
設定が必要な環境変数
QUESTLAW_VAULT_FILEA .qlvault export, or a folder to take the newest one from. Defaults to ~/Downloads.
QUESTLAW_DISCLOSURE_ACKSet to 'i-understand' to confirm you accept that this connector shares your decrypted library, including captured opinion text, with your AI client and its provider. Without it the server serves nothing.
QUESTLAW_KEY_ACCOUNTシークレットWhich account in the OS secret store holds the QuestLaw account key. Defaults to 'default'. Run `questlaw-library-mcp setup` to store one.

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

パッケージ
npmquestlaw-mcp0.5.1

ツール

10

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

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

詳細

QuestLaw Library MCP

CI License: GPL-3.0-or-later Node Dependencies

概要

AI クライアントから QuestLaw のリサーチライブラリを検索・閲覧できる、読み取り専用の MCP サーバーです。

プロジェクトのステータス

QuestLaw MCP は、QuestLaw ライブラリを AI ツールに接続するための実験的なオープンソースプロジェクトです。

サーバーは、拡張機能からエクスポートした .qlvault ファイルを使って、お使いのマシン上でライブラリを復号します。読み取り専用で、ネットワーク接続は行いません。

免責事項

このプロジェクトは、QuestLaw の公式サポート対象製品群には含まれていません。

これを使用すると、お使いのコンピューター上でライブラリが復号され、接続先の AI クライアントに読み取り可能な内容が渡されます。クライアントは読み取った内容をプロバイダーに送信します。サーバー自体はどこにも何も送信しませんが、クライアントやプロバイダーが受け取った内容をどう扱うかを制御することはできません。その点を踏まえて使用し、機密情報を含むライブラリを接続する前に SECURITY.md をお読みください。

仕組み
  1. QuestLaw で Export ツールを使い、ライブラリの暗号化ファイル(questlaw-backup-<date>.qlvault)を作成します。
  2. サーバーは、選択したフォルダー内で最も新しいエクスポートファイルを探します。
  3. アカウントキーを使って、ファイルを メモリ上で 復号します。ライブラリが暗号化されていない状態でディスクに書き込まれることはありません。
  4. 検索インデックスを作成し、ツール呼び出しに応答します。
QuestLaw extension          your machine                         AI client
+--------------+            +---------------------------+        +----------+
| encrypted    |  export    | questlaw-library-mcp      | stdio  | Claude,  |
| library      |----------->|                           |<------>| ChatGPT, |
| (IndexedDB)  | .qlvault   | 1. reads the export       |  MCP   | ...      |
+--------------+   file     | 2. unwrap with your key   |        +----------+
                            | 3. decrypt in memory      |
      account key --------->| 4. build a search index   |
   (OS secret store)        | 5. answer tool calls      |
                            +---------------------------+
                            no network connections, no writes

クイックスタート

npx -y [email protected] setup

setup は開示事項を表示して同意を求め、アカウントキーを OS のシークレットストアに保存し、最新のエクスポートを見つけてテスト復号を行い、クライアントの設定を表示します。インストール後に確認するには、次を実行します。

npx -y [email protected] doctor

クローンした場合は、node bin/questlaw-library-mcp.js setup と node bin/questlaw-library-mcp.js doctor と同じコマンドを実行します。doctor が正常に完了したら、以下からインストール方法を選んでください。

セットアップとインストール

要件
  • Node.js 20 以降。 バージョン 24 以降を推奨します。
  • QuestLaw ライブラリのエクスポート。 QuestLaw からライブラリを取り出すをご覧ください。
  • 43 文字のアカウントキー。 アカウントキーをご覧ください。
  • MCP クライアント。 たとえば、Claude Desktop、Claude Code、Codex、または stdio 経由の MCP に対応する任意のクライアントです。ChatGPT にはセキュア MCP トンネルが必要です。
QuestLaw からライブラリを取り出す

拡張機能で export a backup を選択します。暗号化されたライブラリから、questlaw-backup-<date>.qlvault という名前のファイルが生成されます。拡張機能の設定で日次バックアップを有効にすると、毎日新しいファイルが作成されるため、作業をしなくても AI クライアントから最新のリサーチを参照できます。

既定では、サーバーは ~/Downloads 内の最新の .qlvault を読み込みます。変更するには、QUESTLAW_VAULT_FILE に特定のファイルまたは別のフォルダーを設定してください。

サーバーが読み込むのは、ライブライブラリではなく、エクスポート時点のライブラリのコピーです。エクスポート後にリサーチを追加した場合、再度エクスポートするまでモデルからは参照できません。

Word アドインのユーザーへ: このサーバーが読み込むのは .qlvault エクスポートのみです。Word ドキュメントにはアクセスできません。また、Microsoft Copilot で使用しても、その点は変わりません。

アカウントキー

エクスポートのボールトキーは43文字のアカウントキーでラップされているため、エクスポートを開くにはサーバーがそのキーを必要とします。拡張機能の Settings, Encrypted library, Show account key からキーを取得し、保存します。

npx -y [email protected] setup
キーの保存場所
プラットフォーム保存先
macOSログインキーチェーン
Windows%APPDATA% 内の DPAPI blob
Linuxsecret-tool 経由の libsecret

macOS と Linux では、キーは標準入力経由で保存先に渡されます。Windows では、子プロセスの環境変数経由で渡されます。コマンドラインに表示されることはありません。

アカウントキーを使うとライブラリ内のすべてのエクスポートを開けるため、パスワードと同様に扱ってください。 代わりに QUESTLAW_RECOVERY_CODE で指定することもできますが、QUESTLAW_ALLOW_ENV_KEY=1 も設定しない限り、サーバーはこの変数を無視します。

インストール
Claude Code プラグイン

このプラグインには、サーバーと検索の仕組みをモデルに説明するスキルが含まれています。Releases から questlaw-mcp-claude-plugin-<version>.zip をダウンロードするか、npm run plugin でビルドします。

Claude の Plugins, Upload plugin コントロール(クライアントに応じて Customize または Settings 内)から ZIP をアップロードします。同じ ZIP は Claude Desktop のプラグインアップロード、Cowork、Claude Code で使えます。ローカルの MCP サーバーは Cowork と Claude Code で実行され、プラグインのスキルはチャットでも機能します。Anthropic のプラグインガイドをご覧ください。

プラグインに設定は不要です。~/Downloads 内の最新の .qlvault、シークレットストアの default アカウントにあるキー、setup で記録した同意情報を読み込みます。アップロードする前に setup を実行してください。

インストール済みのコピーを置き換える場合は、新しいアーカイブをアップロードする前にアンインストールしてください。

claude plugin uninstall questlaw-library
Claude Desktop
  • プラグインのアップロード: 上記の説明に従って questlaw-mcp-claude-plugin-<version>.zip を使用します。
  • デスクトップ拡張機能: Releases から questlaw-mcp-claude-desktop-<version>.mcpb を使用するか、npm run bundle でビルドします。Desktop の拡張機能インストーラーからインストールし、必須の開示フィールドに i-understand と入力します。

どちらの場合も、まず setup でキーを保存してください。

プラグインを使わない Claude Code
claude mcp add questlaw-library -- npx -y [email protected]
Codex
codex mcp add questlaw-library -- npx -y [email protected]

または、~/.codex/config.toml に直接追加します。

[mcp_servers.questlaw-library]
command = "npx"
args = ["-y", "[email protected]"]

[mcp_servers.questlaw-library.env]
QUESTLAW_VAULT_FILE = "/absolute/path/to/export_folder"

Codex は env の値をプレーンテキストで config.toml に保存します。エクスポートのパスをそこに記載してもかまいませんが、アカウントキーは OS のシークレットストアに保管してください。QUESTLAW_ALLOW_ENV_KEY 設定は、このようなファイルにキーが保存されるのを防ぐためのものです。

ChatGPT デスクトップアプリには Codex エンジンが含まれており、同じ ~/.codex/config.toml を読み込みます。Codex 経由でサーバーを追加すると、デスクトップアプリの Codex 部分では機能しますが、通常の ChatGPT チャットでは機能しません。そちらについては、次のセクションをご覧ください。

ChatGPT

ChatGPT はローカルサーバーを自ら起動できません。代わりに、Secure MCP Tunnel を介して接続します。接続はお使いのマシンから外向きにのみ行われます。ChatGPT の開発者モードと OpenAI の開発者プラットフォームへのアクセスが必要です。

初回のみのセットアップ:

  1. platform.openai.com でトンネル(ID は tunnel_ で始まります)とランタイム API キーを作成します。
  2. tunnel-client を、ページから直接、または brew install tunnel-client を実行してインストールします。
  3. プロファイルを作成します。トンネル ID と 2 つのパスを、ご自身の値に置き換えてください。
export CONTROL_PLANE_API_KEY="sk-..."

tunnel-client init \
  --sample sample_mcp_stdio_local \
  --profile questlaw \
  --tunnel-id tunnel_YOUR_TUNNEL_ID \
  --mcp-command "/path/to/node /absolute/path/to/questlaw-mcp/bin/questlaw-library-mcp.js"

tunnel-client doctor --profile questlaw --explain
  1. ChatGPT で Settings, Security and Login, Developer mode をオンにします。
  2. ChatGPT のウェブ版で開発者モードのアプリを作成し、接続方法として Tunnel を選択して、作成したトンネルを選びます。執筆時点では、このオプションはウェブ版で利用できますが、デスクトップアプリでは利用できません。

使用するたびに、トンネルを起動し、実行したままにします。

tunnel-client run --profile questlaw

トンネルクライアントが MCP サーバーを起動します。両方が実行中であることを確認するには、次のコマンドを実行します。

pgrep -fl "tunnel-client|questlaw-library-mcp"
その他の stdio MCP クライアント
{
  "mcpServers": {
    "questlaw-library": {
      "command": "npx",
      "args": ["-y", "[email protected]"]
    }
  }
}

デフォルトを変更する場合にのみ、env ブロックを追加します。

{
  "mcpServers": {
    "questlaw-library": {
      "command": "npx",
      "args": ["-y", "[email protected]"],
      "env": {
        "QUESTLAW_VAULT_FILE": "/absolute/path/to/export_folder"
      }
    }
  }
}

バージョンは固定されているため、インストール時には確認済みのリリースが正確に実行されます。アップグレードするには、クライアント設定のバージョンを変更してください。

デフォルトのファイルの場所:

クライアントパス
Claude Desktop(macOS)~/Library/Application Support/Claude/claude_desktop_config.json
Claude Desktop(Windows)%APPDATA%\Claude\claude_desktop_config.json
Claude Code~/.claude.json
Codex~/.codex/config.toml
ChatGPT設定ファイルはありません。ChatGPT を参照してください

setup コマンドを実行すると、お使いのマシンに合わせた正確な設定が表示されます。

インストールの確認
npx -y [email protected] doctor
  ok   vendored modules: 4 verified, from questlaw-extension @ 58d523c9 (synced 2026-10-07)
  ok   disclosure: accepted 2026-09-14T22:09:34.603Z
  ok   account key: found in login keychain as "default"
  ok   library export: questlaw-backup-2026-09-09.qlvault, 2.01 MiB, exported 11 days ago
  ok   decrypt: 341 records in 354ms -- 32 cases, 4 projects, 6 relationships, ...

5 passed, 0 warnings, 0 failing

サーバーの使用方法

利用可能なツール
ツール引数用途
library_overviewなしライブラリに収録されている内容、プロジェクト、裁判所、タグ、およびエクスポート日
list_casesproject、court、tag、sort、limit、offsetすべての法的根拠、またはフィルターで絞り込んだ一覧をページ単位で表示
search_libraryquery、types、limit、offset全項目を対象とした、順位付きの一括検索
search_casesquery、project、court、tag、limit、offset条件に一致する保存済みの法的根拠
get_caseguid*注記、引用、関連する事件を含む、法的根拠の全情報
search_quotesquery、limit、offset条件に一致する保存済みの引用
list_project_casesprojectId*、sort、limit、offset1 つのプロジェクトに登録されたすべての項目
get_source_textdocumentId*、outline、query、maxChars、offset、limit法令、規則、ルール、または意見書の取得済みテキスト
find_citation_mentionstext*、limit、offsetライブラリ内にすでにある法的根拠を草稿で引用している箇所すべて
reload_snapshotなしディスクから最新のエクスポートを再度読み込む

アスタリスクは必須の引数を示します。types 引数には case、quote、source のいずれかを指定できます。tag フィルターは大文字と小文字を区別せず、タグ全体に一致します。court フィルターは、裁判所名の一部に一致します。

一般的なセッションは、ライブラリについて説明する library_overview から始まります。次に、モデルが search_library を呼び出して項目を探し、get_case または get_source_text で全文を読みます。検索ではなくライブラリの一覧を表示するには、モデルは引数を指定せずに list_cases を呼び出し、プロジェクトに登録されていないものも含め、すべての法的根拠をページ単位で取得できます。

検索には、クエリの指定方法に影響する制限がいくつかあります。

  • 検索で一致するのは意味ではなく単語です。そのため、ユーザーが入力したであろう単語をクエリに含める必要があります。
  • 裁判所名は検索テキストではなく、フィルター引数です。ほとんどの裁判所名には「United States」、「Court」、「District」が含まれているため、これらの単語で検索するとほぼすべてに一致します。
  • ワイルドカードはありません。有効な単語を含まないクエリでは、一致する項目がないと報告する代わりに、ライブラリを一覧表示する旨を伝えます。

ツールの結果には、取得した意見書など、作成したものではないテキストが自身の注記とともに含まれます。こうしたテキストは、従うべき指示ではなく、読むための資料として扱ってください。その理由については、SECURITY.md を参照してください。

設定

設定はすべて環境変数を通じて行います。デフォルトのインストールでは、環境変数は必要ありません。

変数デフォルト説明
QUESTLAW_VAULT_FILE~/Downloads.qlvault エクスポート、または最新のファイルを取得するフォルダー
QUESTLAW_KEY_ACCOUNTdefaultキーを保持するシークレットストアのアカウント:英字、数字、., _, -
QUESTLAW_MAX_RESPONSE_BYTES65536結果ごとのバイト数上限。8 KiB から 1 MiB の範囲で保持されます
QUESTLAW_DISCLOSURE_ACK未設定i-understand を設定すると、環境から同意したものとみなされます
QUESTLAW_ALLOW_ENV_KEY未設定1 を設定すると、QUESTLAW_RECOVERY_CODE からキーを指定できます
QUESTLAW_RECOVERY_CODE未設定キーそのもの。上記の設定が 1 でない限り無視されます
QUESTLAW_CONFIG_DIR~/.questlaw-library-mcp同意を記録する場所
コマンドライン
questlaw-library-mcp              serve over stdio
questlaw-library-mcp setup        disclosure, key custody, and client config
questlaw-library-mcp doctor       diagnose an install
questlaw-library-mcp consent      read the disclosure; --accept, --revoke, --status
questlaw-library-mcp verify       check the vendored modules against their digests
questlaw-library-mcp --version

setup コマンドでは、確認なしでデフォルトを受け入れる --yes と、保存済みのキーを置き換える --key を指定できます。verify コマンドでは --json を指定できます。

トラブルシューティング

まず、doctorを実行してください。以下の表は、サーバーが返すエラーコードを示しています。

コード意味対処方法
disclosure_not_accepted同意が得られていませんquestlaw-library-mcp consent
account_key_unavailableシークレットストアにキーがありませんquestlaw-library-mcp setup
invalid_key_accountQUESTLAW_KEY_ACCOUNTに使用できない文字が含まれています1~64文字の英字、数字、.、_、または-を使用してください
recovery_unwrap_failedキーでこのエクスポートを開けませんでしたキーを確認してください。キーをローテーションした後は、現在のキーを使用してください
recovery_code_malformed43文字のbase64url形式ではありません空白や改行を入れずに、もう一度コピーしてください
vault_file_missingサーバーが探した場所に.qlvaultがありませんバックアップをエクスポートするか、QUESTLAW_VAULT_FILEを設定してください
vault_file_unreadableファイルシステムがファイルを開けませんでしたパスとアクセス権限を確認してください
invalid_export_file読み取り可能なエクスポートではありません編集されていないquestlaw-backup-*.qlvaultを使用してください
vault_integrity_failedエクスポートの整合性チェックに失敗しました新しいバックアップをエクスポートしてください
vendor_integrity_failedベンダー提供のモジュールがダイジェストと一致しません信頼できるソースから再インストールしてください。このインストールは実行しないでください
case_not_found、document_not_foundそのIDのレコードがありませんまず検索し、結果に表示されたIDをそのまま渡してください
invalid_argument、input_too_largeツールの引数が正しくありませんメッセージに引数名が示されています

デスクトップクライアントでクローンからサーバーを実行する場合は、nodeの絶対パスを指定してください。Claude DesktopとChatGPTのデスクトップアプリは、シェルのプロファイルを読み込まずにサーバーを起動するため、バージョンマネージャー経由のnodeを見つけられません。シークレットストアのコマンドは、macOSでは絶対パス(/usr/bin/security)、Windowsでは%SystemRoot%配下のpowershell.exeから呼び出されます。Linuxでは、secret-toolがデフォルトのPATH上にある必要があります。

開発とリリース

git clone https://github.com/questlaw/questlaw-mcp.git
cd questlaw-mcp
npm test

このサーバーには実行時依存関係がなく、ビルド手順もありません。npm installを実行するとeslintが追加されます。eslintを使用するのはnpm run lintのみです。

コマンド内容
npm testコミット済みのフィクスチャを使ってテストスイートを実行します
npm run linteslintを実行します(npm installの実行後)
npm run checkverify、ベンダー差分チェック、テストを実行します。公開前に必須です
npm run eval記録済みのベースラインに対する検索の関連性を測定します
npm run benchメンテナー専用:2,000件のケースを含むライブラリを構築して測定します
npm run bundleClaude Desktop用のdist/questlaw-mcp-claude-desktop-<version>.mcpbを構築します
npm run pluginClaudeプラグインのアップロード、Cowork、Claude Code用のdist/questlaw-mcp-claude-plugin-<version>.zipを構築します
npm run vendor:syncメンテナー専用:チェックアウトから4つのコアモジュールを再度コピーします
npm run vendor:checkベンダーコピーとチェックアウトの内容が一致しなくなった場合に失敗します
npm run fixture:regenメンテナー専用:コミット済みのテストフィクスチャを再構築します

変更を加える際のワークフローについてはCONTRIBUTING.mdをご覧ください。 REFERENCE.mdでは、エクスポート形式、復号手順、レコードのスキーマ、ベンダーモジュール、プロジェクトの構成、テストで適用されるルールについて説明しています。src/またはvendor/以下を変更する前にお読みください。

npmではなく、クローンを参照するようにクライアントを設定するには、次のようにします。

{
  "mcpServers": {
    "questlaw-library": {
      "command": "/absolute/path/to/node",
      "args": ["/absolute/path/to/questlaw-mcp/bin/questlaw-library-mcp.js"]
    }
  }
}

npm run bundleは、package.jsonのfilesに記載されたファイルのみをパッケージ化し、マニフェストのバージョンが一致することを確認して、エントリーポイントとすべてのベンダーモジュールが含まれていることを確認したうえで、.mcpbを作成します。システムのzipコマンドが必要です。Windowsでは、代わりにnpx @anthropic-ai/mcpb packを使用してください。

npm run pluginは、ZIPのルートに.claude-plugin/plugin.json、.mcp.json、skills/を配置し、npmで公開されるファイルをruntime/の下に格納します。Claudeはトップレベルにbin/ディレクトリがあるプラグインのアップロードを拒否するためです。プラグインの.mcp.jsonに${user_config.*}を決して含めないでください。その理由はREFERENCE.mdの「Traps」で説明しています。

ライセンス

GPL-3.0-or-laterです。LICENSEをご覧ください。

このライセンスは、vendor/questlaw/内の4つのファイルにも適用されます。これらはQuestLawブラウザー拡張機能のソースからコピーされ、このパッケージとともに公開することを意図したものです。

コメント

MCP は初めてですか?

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

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