Vaquill について
Vaquillは、法律研究者やAIツール向けに米国とインドの制定法を検索できるMCPサーバーです。引用の解決、条文の周辺情報、公式資料へのリンクを提供し、管轄ごとに別のエンドポイントを使います。
主な機能
- 01制定法と規則の検索
- 02法令引用の解決
- 03法令階層の閲覧
- 04条文の文脈と変更の取得
- 05米国とインドの法令に対応
活用シーン
- 01法律上の疑問に関係する法令の検索
- 02引用された条文の確認と取得
- 03米国各州の関連条文の比較
- 04インド法令と改正履歴の確認
MCP 対応
MCPクライアントに読み取り専用の法律調査ツール、リソース、ワークフロープロンプトを提供します。米国とインドの法令は管轄別のエンドポイントで提供されます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.vaquill.ai/mcpclaude mcp add --transport http vaquill-ai-vaquill https://mcp.vaquill.ai/mcp{"mcpServers":{"vaquill-ai-vaquill":{"type":"http","url":"https://mcp.vaquill.ai/mcp"}}}Cursor で開く{"servers":{"vaquill-ai-vaquill":{"type":"http","url":"https://mcp.vaquill.ai/mcp"}}}VS Code で開く{"mcpServers":{"vaquill-ai-vaquill":{"type":"http","url":"https://mcp.vaquill.ai/mcp"}}}{"mcpServers":{"vaquill-ai-vaquill":{"serverUrl":"https://mcp.vaquill.ai/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.vaquill.ai/mcp認証が必要https://mcp.vaquill.ai/in/mcp認証が必要ツール
詳細
vaquill-mcp
Vaquill の法律調査 API 用 MCP サーバーです。米国連邦法および50州の一次法を網羅しています。対象は、合衆国法典、連邦規則集、州法および州規則、州憲法および合衆国憲法、裁判所規則、連邦官報、大統領令、各省庁のガイダンスです。AI ツールから一次法を検索し、法令の引用を解決し、法体系を参照して、公式資料に基づいた回答を得られます。
クイックスタート
前提条件
vaquill.ai に登録して API キーを取得します。
Claude.ai(ウェブ)
インストールは不要です。Customize > Connectors > Add custom connector からリモート MCP サーバーとして追加します。
オプション A:ベアラートークン(推奨)
同じダイアログの Request headers セクションを開き、そこに認証情報を追加します。
URL: https://mcp.vaquill.ai/mcp
Header name: Authorization
Header value: Bearer vq_key_your_key_here
Claude は入力した値をそのまま送信し、独自のスキームは追加しません。そのため、値
フィールドには Bearer vq_key_... を入力し、Authorization: Bearer vq_key_... は入力しないでください。
オプション B:URL に API キーを指定(互換性のため)
https://mcp.vaquill.ai/s/vq_key_your_key_here
現在も利用可能で、クライアントがヘッダーを送信できない場合に機能する唯一の形式です。 それ以外ではオプション A を使用してください。URL に認証情報を含めると、 サーバーログ、プロキシ、閲覧履歴に記録されます。そのため、Anthropic の コネクターガイダンスでは使用が推奨されておらず、MCP 仕様でも禁止されています。
Claude Pro、Max、Team、Enterprise の各プランで利用できます。Request headers セクションはベータ版で、アカウントごとに有効化されます。受け付けるヘッダー名は短い許可リストに限られ、最大4つまで設定できます。Team および Enterprise では、まずオーナーが Organization settings からコネクターを追加する必要があります。
Claude Desktop
Settings > Developer > Edit Config から設定ファイルを開きます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"vaquill": {
"command": "uvx",
"args": ["vaquill-mcp"],
"env": {
"VAQUILL_API_KEY": "vq_key_your_key_here"
}
}
}
}
インドの法令を対象にするには、--jurisdiction IN を追加します。1つのプロセスで提供できる法体系は1つなので、両方を使う場合は2つのエントリーを実行します。
{
"mcpServers": {
"vaquill": {
"command": "uvx",
"args": ["vaquill-mcp"],
"env": { "VAQUILL_API_KEY": "vq_key_your_key_here" }
},
"vaquill-india": {
"command": "uvx",
"args": ["vaquill-mcp", "--jurisdiction", "IN"],
"env": { "VAQUILL_API_KEY": "vq_key_your_key_here" }
}
}
}
Claude を完全に終了してから、再度開きます。設定ファイルは自動で再読み込みされません。
Claude Code
リモート(インストール不要):
claude mcp add --transport http --scope user vaquill \
https://mcp.vaquill.ai/mcp \
--header "Authorization: Bearer vq_key_your_key_here"
ローカル(uvx 経由):
claude mcp add --scope user vaquill -e VAQUILL_API_KEY=vq_key_your_key_here \
-- uvx vaquill-mcp
--scope user を指定すると、すべてのプロジェクトでサーバーが登録されます。デフォルトでは現在のディレクトリのみが対象です。-e は登録時にキーを保存するため、シェルのプロファイルで export する場合と異なり、Claude Code を IDE から起動してもキーが保持されます。--header と -e はどちらも可変長引数なので、サーバー名の後に指定する必要があります。
Cursor
すべてのプロジェクトに適用する場合は ~/.cursor/mcp.json を、1つのプロジェクトに適用する場合は .cursor/mcp.json を編集します。
リモート:
{
"mcpServers": {
"vaquill": {
"url": "https://mcp.vaquill.ai/mcp",
"headers": {
"Authorization": "Bearer vq_key_your_key_here"
}
}
}
}
ローカル(uvx 経由):
{
"mcpServers": {
"vaquill": {
"command": "uvx",
"args": ["vaquill-mcp"],
"env": {
"VAQUILL_API_KEY": "vq_key_your_key_here"
}
}
}
}
VS Code(Copilot)
.vscode/mcp.json に追加します。1つのプロジェクトではなく、すべてのプロジェクトに適用する場合は、MCP: Open User Configuration コマンドを実行し、同じ形式で追加します。
リモート:
{
"inputs": [
{
"type": "promptString",
"id": "vaquill-authorization",
"description": "Authorization header value",
"password": true
}
],
"servers": {
"vaquill": {
"type": "http",
"url": "https://mcp.vaquill.ai/mcp",
"headers": {
"Authorization": "${input:vaquill-authorization}"
}
}
}
}
認証情報はファイルではなくプロンプトに入力するため、ファイルを安全にコミットできます。VS Code は初回起動時に認証情報を求め、記憶します。保存後にサーバーを再起動してください。再起動しないとツールが表示されません。
ローカル(uvx 経由):
{
"servers": {
"vaquill": {
"type": "stdio",
"command": "uvx",
"args": ["vaquill-mcp"],
"env": {
"VAQUILL_API_KEY": "vq_key_your_key_here"
}
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json に追加します。
リモート:
{
"mcpServers": {
"vaquill": {
"serverUrl": "https://mcp.vaquill.ai/mcp",
"headers": {
"Authorization": "Bearer vq_key_your_key_here"
}
}
}
}
Windsurf ではリモートサーバーに url ではなく serverUrl を使用します。また、環境変数から認証情報を読み込みたい場合は、${env:VAR} が展開されます。
ローカル(uvx 経由):
{
"mcpServers": {
"vaquill": {
"command": "uvx",
"args": ["vaquill-mcp"],
"env": {
"VAQUILL_API_KEY": "vq_key_your_key_here"
}
}
}
}
利用可能なツール
ツールは起動時に Vaquill API の最新の OpenAPI 仕様から生成されるため、常に現在の API に対応しています。最新の正式な一覧と呼び出しごとのクレジット費用を確認するには、無料の get_pricing ツールを実行するか、MCP クライアントのツール一覧を確認してください。
米国サーバーでは search と fetch を含む 26 個のツール、インドサーバーでは 22 個のツールが公開されています。すべて読み取り専用です。法律改正アラート(ボードとウォッチ)は意図的に MCP ツールにはしていません。API では引き続き利用できるため、Vaquill コンソールまたは REST API から直接アラートを作成・管理してください。
主なグループは次のとおりです(代表的なツールを掲載)。
米国の制定法・規則
米国法典、連邦規則集、全 50 州の法典、憲法、州裁判所規則、連邦官報、各機関のガイダンス。
| ツール | 説明 |
|---|---|
search_us_statutes | セマンティック検索とキーワード検索を組み合わせた検索です。corpusType、state、titleNumber、chapter、年などで絞り込めます。 |
get_us_statute_section | actId で条項のメタデータを取得します(引用、階層、公式情報源へのリンク)。 |
get_us_statute_section_text | 条項の HTML 全文とプレーンテキストを取得します。 |
get_sections_batch | 1 回の呼び出しで最大 50 条項のメタデータを取得します。 |
resolve_statute_citation | Bluebook 形式の引用(例:42 U.S.C. § 1983)を該当する条項に直接解決します。省略可能な state(2 文字の州コードまたは federal)と corpusType は制約として機能し、実在する引用がその制約に該当しない場合は citationOutsideFilters が返されます。 |
list_statute_divisions | 法令の階層を 1 レベルずつ参照します。 |
list_statutes_coverage | どの管轄区域にどのコーパスが存在するかを示す、自己記述型のカバレッジマトリクスです。 |
条項を文脈の中で読む
| ツール | 説明 |
|---|---|
get_section_neighbors | 法令上の順序で、直前と直後にある条項を取得します。 |
get_section_definitions | 条項に適用される定義語を、その章の定義条項から取得します。 |
get_section_cited_by | この条項を相互参照している米国法典・連邦規則集の条項を取得します(crossReferences の逆方向です)。 |
get_section_cross_state | 同じ主題を扱う他州の規定を、類似度順に取得します。 |
get_section_changes | 更新時に、この条項で経時的に確認された変更を取得します。 |
ユーティリティ
| ツール | 説明 |
|---|---|
get_pricing | API の最新クレジット料金です(無料、認証不要)。 |
search | 1 つの文字列で検索する汎用コーパス検索で、{id, title, url} を返します。 |
fetch | 1 つの文字列で取得する汎用検索で、{id, title, text, url, metadata} を返します。 |
ChatGPT のディープリサーチと企業ナレッジコネクタは、コーパスサーバーを特定の名前と単一文字列のシグネチャで照合し、それがないと動作しないため、search と fetch を用意しています。これらは上記の型付きツールを薄くラップしたものです。呼び出しに対応しているクライアントは、型付きツールを優先してください。型付きツールでは管轄区域、コーパス、日付、ステータスで絞り込めますが、こちらの 2 つのツールでは絞り込めません。fetch は id を柔軟に受け付け、act_id、引用 URL、パスのみの値、42 U.S.C. 1983 のような Bluebook 形式の引用を指定できます。
リソースとプロンプト
このサーバーが提供するのはツールだけではありません。OpenAPI ドキュメントから生成された MCP サーバーは、エンドポイントごとに 1 つのツールを公開するだけです。この 2 つのプリミティブによって、API に含まれない知識を利用できます。また、どちらもターンごとのツール予算を消費しません。
リソース(読み取り専用。呼び出しません):
| リソース | 内容 |
|---|---|
vaquill://guide | コーパスを正しく使う方法です。識別子のルール、「現行法」の実際の意味、変更リストが空の場合に分かることと分からないこと、コストが発生する箇所を説明します。どのエンドポイントにも依存しません。 |
vaquill://us/coverage | カバレッジマトリックスです。各 corpusType と管轄区域ごとの件数を示します。無料です。 |
vaquill://in/filters | インドのコーパスに実際に含まれるフィルターの種類です。無料です。 |
vaquill://pricing | 最新のクレジット料金です。無料です。 |
プロンプト(落とし穴を組み込んだワークフロー):
| プロンプト | 含まれる内容 |
|---|---|
good_law_check(citation) | actStatus、goodLawStatus、amendmentHistory の違いと、unknown が現行であることを意味するのではなく、未確認を意味する理由です。 |
fifty_state_survey(topic, states) | まずカバレッジを確認し、「そのような法律はない」と「コーパスに含まれていない」を混同しないようにします。 |
whats_changed(since, corpus, state) | 変更の記録は観察であり、効力ではありません。結果が空でも「何も改正されなかった」という意味ではありません。 |
cite_check(text) | 個別に繰り返すのではなく一括で解決し、各条文と照らし合わせて記述の正確性を確認します。 |
old_code_citation(citation) | インド:回答する前に、IPC/CrPC を 2024 年 7 月 1 日から施行されている BNS/BNSS の規定に対応付けます。 |
indian_provision_check(question) | インド:まずフィルターの種類を確認し、改正に関する注意点を正しく説明します。 |
インドの法律
同じホスト上の別のエンドポイントです。中央法、州法、および主要規制当局(SEBI、RBI、MCA、IRDAI、TRAI、DGFT)の法令を収録しています。制定法は 22,265 件、個別に参照可能な条文は 1,098,577 件です。
https://mcp.vaquill.ai/in/mcp with Authorization: Bearer vq_key_your_key_here
https://mcp.vaquill.ai/in/s/vq_key_your_key_here key in the path, as above
米国のエンドポイントと同じ API キー、同じクレジット残高を使用します。
| ツール | 説明 |
|---|---|
search_acts | インドの法律を条文単位まで検索します。 |
list_acts | 管轄区域、規制当局、年、ステータスで制定法を参照・絞り込みます。 |
list_act_filters | コーパスに実際に含まれるフィルターの種類と件数を確認します。 |
get_act_text | 1 つの制定法の原文リンク(テキスト、PDF、HTML)を取得します。 |
get_act_amendments | 改正履歴を確認します。何が、どの法律によって、いつ施行されたかを示します。 |
search / fetch | 上記と同じ汎用のツールペアを、インドの法律に対して使用します。 |
get_corresponding_provisions | 廃止された刑法典を 2023 年の後継法に対応付けます(IPC から BNS、CrPC から BNSS)。 |
意図的に、1 つのエンドポイントで扱う管轄区域は 1 つだけです。 米国とインドの OpenAPI ドキュメントは互いに独立しており、各アプリはそのうちの 1 つだけからツールセット全体を生成します。そのため、/mcp や /s/ 配下でインドのツールが公開されることはなく、/in/ 配下で米国のツールが公開されることもありません。マウントパスはアプリを選択するものであり、アプリをフィルタリングするものではないため、リクエストごとに誤ったチェックを行う余地はありません。これにより、インテグレーターのコンテキストウィンドウを、実際に業務で扱う管轄区域だけに絞れます。
環境変数
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
VAQUILL_API_KEY | はい | - | vaquill.ai で取得する API キー(vq_key_...) |
VAQUILL_BASE_URL | いいえ | https://api.vaquill.ai | API のベース URL |
VAQUILL_TIMEOUT | いいえ | 120 | リクエストのタイムアウト(秒) |
VAQUILL_JURISDICTION | いいえ | US | stdio サーバーのみ。 US または IN を指定します。OpenAPI ドキュメント、ひいてはツールセット全体を選択します。ホスト型サーバーはこの変数を無視し、別々のパスで両方の管轄区域を提供します。 |
ホステッドサーバーのみ
以下の変数は vaquill-mcp-remote(mcp.vaquill.ai の背後で動作するデプロイメント)に適用され、stdio サーバーでは無視されます。
VAQUILL_OAUTH_* グループ全体が設定されていない限り、OAuth は OFF であり、サーバーは OAuth が存在しなかった頃とまったく同じように動作します。グループが一部だけ設定されている場合、起動時にエラーになります。不完全なディスカバリードキュメントを配信することはありません。これは、Claude がディスカバリー情報をすべてのユーザー間で URL ごとにグローバルに約5分間キャッシュするためです。誤った情報は、それを生んだ設定ミスが解消された後も残ってしまいます。
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
HOST | いいえ | 0.0.0.0 | リッスンアドレス |
PORT | いいえ | 8000 | リッスンポート |
VAQUILL_PUBLIC_URL | OAuth 使用時 | - | このサーバーの公開 URL(https://mcp.vaquill.ai)。OAuth 発行者および保護されたリソースのドキュメント内の resource になります。Claude は、パスも含めて、ユーザーが入力した URL と一致することを要求します。 |
VAQUILL_INTERNAL_SECRET | OAuth 使用時 | - | OAuth ユーザーを vq_key_ に解決するための共有シークレット。API 上の MCP_INTERNAL_SECRET と一致する必要があります。設定しない場合、OAuth 呼び出し元は認証後、最初のツール呼び出しで失敗します。 |
VAQUILL_OAUTH_UPSTREAM_JWKS_URI | OAuth 使用時 | - | https://<project-ref>.supabase.co/auth/v1/.well-known/jwks.json。keys が空の場合、プロジェクトはまだ対称鍵の HS256 を使用しており、トークンは検証されません。 |
VAQUILL_OAUTH_UPSTREAM_ISSUER | OAuth 使用時 | - | https://<project-ref>.supabase.co/auth/v1 |
VAQUILL_OAUTH_AUTHORIZE_URL | OAuth 使用時 | - | https://<project-ref>.supabase.co/auth/v1/oauth/authorize |
VAQUILL_OAUTH_TOKEN_URL | OAuth 使用時 | - | https://<project-ref>.supabase.co/auth/v1/oauth/token |
VAQUILL_OAUTH_CLIENT_ID | OAuth 使用時 | - | 上流に登録された STATIC クライアント。動的クライアント登録は無効のままです。このサーバー自体が DCR/CIMD ファサードです。 |
VAQUILL_OAUTH_CLIENT_SECRET | OAuth 使用時 | - | このクライアントのシークレット |
VAQUILL_OAUTH_ALGORITHM | いいえ | ES256 | 上流の署名鍵と一致させる必要があります。プロジェクトが RSA に移行済みの場合は RS256 です。 |
VAQUILL_OAUTH_AUDIENCE | いいえ | authenticated | 上流トークンに期待される aud |
上流に登録するリダイレクト URI は https://mcp.vaquill.ai/auth/callback のみです。
Claude の URI(https://claude.ai/api/mcp/auth_callback)や Claude
Code のループバック URI も登録しないでください。このサーバーがフローをプロキシするため、上流にはこれらの URI は渡されません。また、RFC 8252 が要求するエフェメラルポートの照合は、ここで処理されます。
使用例
設定が完了したら、AI アシスタントに次のような質問をできます。
- 「インサイダー取引について、17 CFR 240.10b-5 には何と書かれていますか?」
- 「42 U.S.C. § 1983 を該当する条項に解決し、全文を表示してください」
- 「借主の修繕義務に関するカリフォルニア州の法令を探してください」
- 「テキサス州の法典を閲覧してから、刑法を詳しく見てください」
開発
# Clone and install
git clone https://github.com/Vaquill-AI/vaquill-mcp.git
cd vaquill-mcp
uv sync --all-extras
# Run locally
VAQUILL_API_KEY=vq_key_... uv run vaquill-mcp
テスト
このテストスイートに API キーやネットワークアクセスは必要ありません。すべてのテストはチェックイン済みの OpenAPI フィクスチャ tests/fixtures/ を使って実行され、tests/conftest.py によってモックされていない HTTP 呼び出しはすべて例外になります。そのため、リポジトリをクローンして uv sync を実行するだけで準備は完了します。
uv sync --extra dev --extra remote
uv run pytest # 407 tests
uv run pytest -W error::DeprecationWarning # what CI runs
CI(.github/workflows/test.yml)では2つのジョブが実行されます。意図的に重複しない内容になっています。test は、Python 3.10-3.13 の ロック済み 環境でテストスイートを実行します。wheel はパッケージをビルドし、ロックファイルなしで 新しい venv にインストールしてから、同じテストスイートを実行します。2つ目のジョブは、ユーザーが uvx vaquill-mcp で利用する環境を再現します。ロックファイルは公開済みの wheel をインストールするユーザーには依存関係の制約を課さないため、依存関係に互換性を破るメジャーバージョンが含まれていれば、このジョブでのみ検出されます。
# Test with FastMCP inspector
uv run fastmcp dev src/vaquill_mcp/server.py
セキュリティ
脆弱性は [email protected] までご報告ください(SECURITY.md および https://www.vaquill.ai/security/vulnerability-disclosure をご覧ください)。
ほかのツールを保持するエージェントに接続する前に、知っておくべきことが2つあります。
- このサーバーは読み取り専用です。 すべてのツールには
readOnlyHint: trueとdestructiveHint: falseが設定されており、書き込み、送信、削除を行うものはありません。ヒントはツールで可能な操作を示すものであり、セキュリティ対策ではありません。サーバーを信頼していない限り、クライアントはどのサーバーからの注釈も信頼できないものとして扱う必要があります。 - 返されるテキストはサードパーティのコンテンツです。 法令、通知、政府機関の決定、会期法は政府機関の発行元(また、一部のコーパスでは、ベンダーによる収集およびOCR)に由来します。マークアップをサニタイズし、ソースリンクを政府機関のホストに制限していますが、指示を含む文言はフィルタリングしていません。また、
openWorldHint: falseが示すのは到達範囲であり、出所ではありません。このサーバーはその旨を示すinstructionsの注記を送信します。それを無視するクライアントも、ツールの出力を信頼できないものとして扱う必要があります。
仕組み
このパッケージは、Vaquill Developer API を薄くラップした MCP ラッパーです。起動時に稼働中の API から OpenAPI 仕様を取得し、FastMCP を使って MCP ツールを自動生成します。ツール名は各エンドポイントの OpenAPI operation id から自動的に生成されるため、新しい API エンドポイントはパッケージの更新なしで、すぐに使えるツールとして追加されます。主要な説明は、LLM のパフォーマンスを最適化するよう調整されています。例外は server.py の短い除外リスト(_ROUTE_MAPS)で、SSE ストリーミングルートと法改正のアラートルートが含まれます。これは技術的な制約ではなく、製品上の判断によるものです。
仕様はパッケージに含めず、起動時に取得するため、ツールにはパッケージの更新なしで API の変更が自動的に反映されます。
クレジットと料金
API の呼び出しにはクレジットを消費します。上記の表に記載されたクレジット料金は執筆時点のものです。get_pricing ツールと各ツールの説明には常に最新の料金が反映されるため、異なる場合はそちらを正式な情報としてお使いください。
1クレジット = 0.01米ドル
ライセンス
MIT
コミュニティ
ご質問やアイデアがある方、または貢献をご希望の方は、Discord で Vaquill コミュニティにご参加ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。