Legal research: US primary law, Indian case law (31M+ judgments), and citation graph traversal.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent — or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag — we're steadily working through the catalog.
💡 Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Vaquill.
search_us_statutesHybrid semantic + keyword search; filter by `corpusType`, `state`, `titleNumber`, `chapter`, year, and more.
get_us_statute_sectionSection metadata by `actId` (citation, hierarchy, official-source links).
get_us_statute_section_textFull HTML + plain text of a section.
get_sections_batchMetadata for up to 50 sections in one call.
resolve_statute_citationResolve a Bluebook citation (e.g. `42 U.S.C. § 1983`) straight to its section.
list_statute_divisionsBrowse the statutory hierarchy one level at a time.
MCP server for Vaquill legal research API. Covers US federal and 50-state primary law: USC, CFR, state statutes and regulations, state and US constitutions, court rules, the Federal Register, executive orders, and agency guidance. Search primary law, resolve statutory citations, browse the hierarchy, and ground answers in official sources, all from your AI tools.
Sign up at vaquill.ai to get your API key.
No installation needed. Add as a remote MCP server from Customize > Connectors > Add custom connector:
Option A: Bearer token (recommended)
Open the Request headers section of the same dialog and add the credential there:
Claude sends the value exactly as you type it and adds no scheme of its own, so the value
field holds Bearer vq_key_... and not Authorization: Bearer vq_key_....
Option B: API key in the URL (compatibility)
Still live, and still the only form that works where a client cannot send a header at all. Prefer Option A everywhere else: a credential in a URL is recorded in server logs, proxies and browsing history, which is why Anthropic's connector guidance advises against it and the MCP specification prohibits it.
Available on Claude Pro, Max, Team, and Enterprise plans. The Request headers section is in beta and is enabled per account, it accepts a short allowlist of header names, and it holds at most four. On Team and Enterprise an owner adds the connector under Organization settings first.
Open the config file from Settings > Developer > Edit Config:
~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json~/.config/Claude/claude_desktop_config.jsonFor Indian legislation, add --jurisdiction IN. One process serves one
corpus, so run two entries if you want both:
Quit Claude completely and reopen it. It does not reload the file.
Remote (no install):
Local (via uvx):
--scope user registers the server for every project; the default is the current directory
only. -e stores the key with the registration, so it survives Claude Code being launched
from an IDE, which an export in your shell profile does not. Both --header and -e are
variadic, so they have to come after the server name.
Edit ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one.
Remote:
Local (via uvx):
Add to .vscode/mcp.json. For every project instead of one, run the
MCP: Open User Configuration command and use the same shape there.
Remote:
The credential goes in a prompt rather than in the file, so the file is safe to commit. VS Code asks for it on first start and remembers it. Restart the server after saving, or the tools will not appear.
Local (via uvx):
Add to ~/.codeium/windsurf/mcp_config.json.
Remote:
Windsurf uses serverUrl for a remote server, not url, and interpolates ${env:VAR} if you
would rather read the credential from the environment.
Local (via uvx):
Tools are generated from the live Vaquill API's OpenAPI spec at startup, so the
set always matches the current API. For the authoritative, up-to-date list and
per-call credit costs, run the free get_pricing tool or inspect your MCP
client's tool list. The main groups (representative tools shown):
USC, CFR, all 50 state codes, constitutions, state court rules, the Federal Register, and agency guidance.
| Tool | Description |
|---|---|
search_us_statutes | Hybrid semantic + keyword search; filter by corpusType, state, titleNumber, chapter, year, and more. |
get_us_statute_section | Section metadata by actId (citation, hierarchy, official-source links). |
get_us_statute_section_text | Full HTML + plain text of a section. |
get_sections_batch | Metadata for up to 50 sections in one call. |
resolve_statute_citation | Resolve a Bluebook citation (e.g. 42 U.S.C. § 1983) straight to its section. |
list_statute_divisions | Browse the statutory hierarchy one level at a time. |
list_statutes_coverage | Self-describing coverage matrix: which corpora exist in which jurisdiction. |
| Tool | Description |
|---|---|
get_section_neighbors | The sections immediately before and after, in statutory order. |
get_section_definitions | The defined terms that govern a section, from its chapter's definitions section. |
get_section_cited_by | Which USC/CFR sections cross-reference this one (the inverse of crossReferences). |
get_section_cross_state | Provisions in other states addressing the same subject, ranked by similarity. |
get_section_changes | What our refreshes observed changing on this section over time. |
Subscribe to a corpus source and get a webhook or email when it changes.
Subscribing, polling and inspecting deliveries are all free; only
get_watch_change_diff is metered, because it is the only one that returns
section text.
| Tool | Description |
|---|---|
list_boards | The watchable sources (Federal Register, CFR, a state's statutes, ...). |
create_watch | Subscribe to a board via webhook (HMAC-SHA256 signed) or email. |
list_watches, update_watch, delete_watch | Manage your subscriptions. |
test_watch | Send a synthetic delivery to verify signing, auth and reachability. |
list_watch_changes | What changed on a watched source. Metadata only, and safe to poll. |
get_watch_change_diff | Before/after text for one change, as whole documents. |
list_watch_deliveries | Per-attempt webhook delivery log (90 days). |
| Tool | Description |
|---|---|
get_pricing | Live API credit pricing (free, no auth). |
search | Generic one-string corpus search returning {id, title, url}. |
fetch | Generic one-string retrieval returning {id, title, text, url, metadata}. |
search and fetch exist because ChatGPT's deep research and company-knowledge
connectors match a corpus server by those exact names and their single-string
signature, and refuse to work without them. They are thin wrappers over the
typed tools above, which any client that can call them should prefer: the typed
ones filter by jurisdiction, corpus, date and status, and these two do not.
fetch is deliberately lenient about its id, accepting an act_id, a citation
URL, a bare path, or a Bluebook citation such as 42 U.S.C. 1983.
This server is not only tools. An MCP server generated from an OpenAPI document publishes one tool per endpoint and nothing else; these two primitives are where the knowledge that is not in the API lives, and neither costs anything in the per-turn tool budget.
Resources (read, don't call):
Factual signals from GitHub, npm, and our automated checks — not a rating.
No reviews yet — be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/vaquill)<a href="https://allmcps.com/mcp/vaquill"><img src="https://allmcps.com/api/badge/vaquill?style=directory" alt="Vaquill on AllMCPs" /></a>