This page covers the US mount,
https://mcp.vaquill.ai/s/_. A separate mount exists for another corpus, described under India mount.GitHub
Source code and issues
PyPI
uvx vaquill-mcpHosted endpoint
https://mcp.vaquill.aiQuickstart
On Claude, the fastest path is the connector. Paste
https://mcp.vaquill.ai/mcp, click Connect, and skip the key entirely. It is also the only path that works in Cowork. Everything below is the API-key setup, which Cursor, VS Code, Windsurf and other non-Claude clients need.Install Vaquill MCP in Claude Code with one paste. Replaces a manual config edit.
1
Get an API key
Generate a
vq_key_... token from your dashboard settings. See Authentication.2
Open Claude.ai Customize > Connectors
Click Add custom connector.
3
Paste the URL
Use either the path-token form:Or keep the key out of the URL by opening Request headers in the same dialog and adding it 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_....4
Look up a statute
Try: “What does 17 CFR 240.10b-5 say about insider trading?” Claude calls
search_us_statutes and pulls the section text.Remote MCP connectors are 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 holds at most four. If you do not see it, use the path-token URL, or connect from Claude Code, Cursor, VS Code, or Windsurf, which all carry the header as written. On Team and Enterprise an owner adds the connector under Organization settings first.
Client setup
Pick your client below. The remote endpoint needs no install. The localuvx package reads the variables listed under Self-hosting.
Tools
Tools are generated from the OpenAPI document at startup, so the catalogue follows the API, not the package version. There is one tool per API operation plus thesearch and fetch pair. Every tool is read-only: none creates, changes or deletes anything.
Federal session laws are on the statute tools. Law change alerts are not MCP tools. Manage them in the console or over the REST API: see Law Change Alerts.
Prefer the typed tools to the
search and fetch aliases: they take filters these two cannot express. The aliases exist for clients whose retrieval interface is matched by name and shape, and ChatGPT and Codex explains when to use them.
Search and retrieval details
Search and retrieval details
list_statutes_coverage: call it before treating an empty result as an absence.search_us_statutesfilters bycorpusType,state,code,source, status, year and Federal Register facets.get_us_statute_sectionreturns citation, hierarchy, breadcrumb, status and every format link.get_us_statute_section_textsupportsformat=content(operative text only, USC),structured=truefor a subsection tree, andasOffor point-in-time.get_sections_batchadds a diagnosis for each miss.resolve_statute_citationconfirms the section against the corpus.extract_statute_citationstakes a pasted brief, memo or model answer and resolves each citation in it. Case citations are not extracted.resolve=falselists them for free.
Refunds and empty results
Refunds and empty results
list_statute_divisionsis refunded on an empty level.- Each section intelligence tool refunds a call it cannot answer, and returns a
noteexplaining why. An empty result with a note is an explanation; without one it is a real answer. - An empty page from
list_session_lawsis charged, and so is an empty result fromsearch_session_laws.
Reading session-law bodies
Reading session-law bodies
list_session_lawsfilters by session, approval date or effective date, andjurisdictionis required.get_session_lawreturns citation, session, dates, code sections affected, official sources andtextStatus. It takes asessionLawIdor a citation, and a citation adds the resolve price.get_session_law_bodyreturns the text exactly as printed. ChecktextReliabilityandnotice, andamendatoryMarkup: iflost, struck language may read as law.search_session_lawsaccepts plain words, a quoted phrase, a citation, a code section or a bill number. It ranks by keyword, so a question has to share vocabulary with the act. Only enacted text is searched.get_session_laws_batchwithincludeBodyadds each law’s first page of text.get_section_enactmentscovers CA, DC, HI, KY, MO, MS, NE, UT and WA.
Resources and prompts
Beyond tools, the server publishes MCP resources and prompts. Clients that support them get the guidance without spending a tool call. Resources
Prompts:
good_law_check, fifty_state_survey, whats_changed, cite_check.
India mount
India is a separate mount with its own tools, resource and prompts. A US connection never exposes India tools, and an India connection never exposes US ones. Connect only the mount you need, because every connected server keeps its tool definitions in context for the whole conversation.India mount: URL, tools, prompts and resource
India mount: URL, tools, prompts and resource
https://mcp.vaquill.ai/in/s/_ publishes the Indian legislation surface. It shares nothing with the US tools but the credential: the same vq_key_ works on both mounts, and each is built from its own OpenAPI document. The main tools:Plus the
search and fetch aliases.Resource: vaquill://in/filters lists the available act filters.Prompts: old_code_citation, indian_provision_check.Authentication
On the US endpointhttps://mcp.vaquill.ai/mcp, the default is OAuth 2.1: the client opens a browser, you sign in with your Vaquill AI account and approve access, and there is no key to paste.
OAuth details
OAuth details
It is the authorization code flow with PKCE (S256), discovered from
/.well-known/oauth-protected-resource/mcp, with dynamic client registration and client ID metadata documents both supported. The access token lasts about an hour and is refreshed automatically.- Bearer header (remote):
Authorization: Bearer vq_key_... - Path token (remote):
https://mcp.vaquill.ai/s/vq_key_.... Use this when your client cannot send custom headers. - Environment variable (local):
VAQUILL_API_KEY=vq_key_...foruvx/ stdio launches.
Self-hosting
The MCP server is a thin wrapper around the public Vaquill API, so most users do not need to self-host.Run from source
Run from source
Run from source if you want to pin a version, add custom telemetry or change tool descriptions.The package fetches the OpenAPI spec from
https://api.vaquill.ai at startup and auto-generates MCP tools with FastMCP. New API endpoints appear as tools automatically without a package upgrade.Environment variables:VAQUILL_API_KEY(required): your API key (vq_key_...) from app.vaquill.ai/settings.VAQUILL_BASE_URL(optional, defaulthttps://api.vaquill.ai): API base URL. Override for staging or self-hosted API instances.VAQUILL_TIMEOUT(optional, default120): per-request timeout in seconds. Increase for large section-text fetches.
Usage examples
Type these directly to Claude, Cursor, or any connected assistant. Look up federal law“What does 17 CFR 240.10b-5 say about insider trading?” “What are the federal penalties for wire fraud under 18 USC 1343?” “Pull the operative text of 26 USC 501(c)(3), without the amendment notes.”Verify citations
“Check every statutory citation in this brief against the official text, and flag any that are no longer good law.”
“Does Cal. Civ. Code 1950.5 resolve, and what is its current status?”
Compare across states
“How do other states word California’s security-deposit return deadline?” “Find the data-breach notification statute in New York, Texas and Illinois.”Read law as it stood on a date
“What did 15 USC 1681c say on 2019-03-01, and how confident are we in that reconstruction?”Find what changed
“What has changed in the CFR since last Tuesday?” “Which Texas acts take effect on September 1, 2025?”
Ready-to-run research prompt
Map a federal statute across USC and CFR. Paste into any Vaquill-connected assistant. Replace the citation.
Related
MCP overview
All Vaquill MCP servers at a glance
Integrations
Chatbots, widgets, browser extensions, and automation
Authentication
API key setup and rotation
Search US statutes (API)
The underlying REST endpoint

