# Vaquill

> Search US and Indian statutes, regulations, constitutions, and court rules.

- name: io.github.Vaquill-AI/vaquill-mcp
- version: 0.4.1
- connection class: R1 (autonomous)
- trust: 94/100
- quality: 76/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.Vaquill-AI%2Fvaquill-mcp
- tools: https://api.protogrid.dev/v1/servers/io.github.Vaquill-AI%2Fvaquill-mcp/tools

**An agent can connect on its own if it already holds `VAQUILL_MCP_TOKEN`.** Remote endpoint behind a static API key or header. The registry never sees the value; the agent fills the placeholder.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "vaquill-mcp": {
      "type": "http",
      "url": "https://mcp.vaquill.ai/in/mcp",
      "headers": {
        "Authorization": "Bearer ${VAQUILL_MCP_TOKEN}"
      }
    }
  }
}
```

Placeholders to fill: `${VAQUILL_MCP_TOKEN}`.

## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 80
- drivers: +repository +namespace-matches-repo +reachable +uptime-100% +updated-18d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 76/100 (good)

### protocol: 88 (weight 25)

- pass `protocol.modern`: supports 2026-07-28 (server/discover)
- pass `protocol.stateless`: answers without a session
- pass `protocol.transport`: streamable HTTP
- warn `protocol.list_ttl`: tools/list declares ttlMs 0, so clients re-fetch it on every use

### authorization: 100 (weight 15)

- pass `auth.prm`: Protected Resource Metadata (RFC 9728) published
- pass `auth.as_metadata`: authorization server metadata reachable
- pass `auth.cimd`: Client ID Metadata Documents supported
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 38 of 38 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: get_act_status (idempotentHint); get_act_structure (idempotentHint); get_act_text (idempotentHint); …
- warn `tools.token_cost`: about 17,816 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 25 (weight 15)

- warn `stability.changes`: 78 tool changes in 30 days
- fail `stability.rug_pull`: 14 tools kept their name but changed most of their description in 30 days; review before trusting them

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 38, about 17,816 tokens to load them all
- tool set hash: 0de3727014d39d858d7472f233c72047
- tools last changed: 2026-10-10T21:50:40.797Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.Vaquill-AI/vaquill-mcp.svg)](https://protogrid.dev/servers/io.github.Vaquill-AI/vaquill-mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-10 `search_acts` changed (inputSchema)
- 2026-10-10 `resolve_india_citations_batch` changed (inputSchema)
- 2026-10-10 `resolve_india_citation` changed (inputSchema)
- 2026-10-10 `list_acts` changed (inputSchema)
- 2026-10-10 `get_act_amendments` changed (inputSchema)
- 2026-10-02 `search_us_statutes` changed (description, inputSchema)
  - before: Semantic + keyword search across US primary law: the United States Code (USC), the Code of Federal Regulations (CFR), and all 50 states' statutes, regulations, constitutions and court rules. Use for any 'what does the law say' question. Filter by corpusType and titleNumber. Returns sections with citation, hierarchy and official source links. The returned act_id (e.g. 'USC_T42_C21_S1983') feeds every other statute tool -- do not hand-build one, they usually 404. Cost: 4 credits.
  - after: Semantic + keyword search across US primary law: USC, CFR, and all 50 states' statutes, regulations, constitutions and court rules. Use for any 'what does the law say' question. Returns sections with citation, hierarchy and source links. The returned act_id feeds every other statute tool; never hand-build one. To look up a citation the user gave, prefer resolve_statute_citation. `citationOutsideFilters` means the cited section exists but your filters exclude it. Cost: 4 credits.
- 2026-10-02 `resolve_statute_citations_batch` changed (inputSchema)
- 2026-10-02 `resolve_statute_citation` changed (inputSchema)
- 2026-10-02 `list_statute_divisions` changed (inputSchema)
- 2026-10-02 `get_us_statute_section_text` changed (inputSchema)

Full history: https://api.protogrid.dev/v1/servers/io.github.Vaquill-AI%2Fvaquill-mcp/changes

## Remotes

- https://mcp.vaquill.ai/mcp (streamable-http, auth oauth2, reachable true, uptime30d 1)
- https://mcp.vaquill.ai/in/mcp (streamable-http, auth api_key ${VAQUILL_MCP_TOKEN}, reachable true, uptime30d 1)

## Packages

_none_

## Tools (38)

- `count_statute_sections`: Exact section count for a jurisdiction, corpus, code, title, chapter or part. Use when sizing a job before walking divisions and fetching sections. This counts a scope, not search matches. There is no query parameter, because search ranks within a bounded window and cannot give an exact total of matching sections. A zero count may indicate a wrong filter.  Cost: 1 credit.
- `fetch`: Fetch one Indian enactment by the `id` from a `search` result, returning `{id, title, text, url, metadata}`. Also accepts a source URL or a bare path. NOTE: the India corpus serves an enactment as publisher links rather than inline text, so `text` carries the title and `metadata` carries the PDF, HTML and plain-text URLs to read. Prefer `get_act_text` if you can call it.
- `get_act_amendments`: The amendment history recorded against one enactment: substitutions, insertions and omissions, each with the amending Act and its effective date (e.g. 'Subs. by Act 22 of 2023, s. 44 (w.e.f. 13-11-2025)'). Use to check whether a provision still reads as enacted before relying on its text. An empty list means no amendment was recorded, NOT that the Act was never amended. Cost: 5 credits.
- `get_act_section`: Metadata for one provision, including its citation, position in the act, structural features and references. Use when identifying or inspecting a provision without fetching its wording. Text is not included. Use get_act_section_body to read it. wordCount covers all passages, and actsReferenced normalizes whitespace before deduplication so publisher line breaks do not create duplicate acts.  Cost: 2 credits.
- `get_act_section_body`: The publisher's full text for one provision, taken directly from the act document without synthesized search headers. Use when reading, quoting or citing the provision's wording rather than its metadata. Amendments are not applied to this text. Check get_section_history for recorded changes before treating the wording as current law.  Cost: 3 credits.
- `get_act_status`: An act's standing in three separate fields, publisherStatus for India Code's label, servedStatus for API availability and repealClaim for the publisher's sourced repeal record. Use when assessing whether an act remains law or why it is unavailable. These are not one verdict. A repealClaim does not verify that the repealing instrument was brought into force.  Cost: 1 credit.
- `get_act_structure`: An act's table of contents, with chapters and parts where the publisher supplies them and provisions listed beneath. Use when locating a section or planning a traversal of the act. hasHierarchy is false for most acts, where nodes is a flat section list rather than an error. Section numbers sort numerically with alphabetic suffixes attached.  Cost: 2 credits.
- `get_act_text`: Source links for one enactment: the plain-text, PDF and HTML renderings, plus how many sections it holds. Use when the user wants to read or cite the Act itself rather than a matched section. Cost: 3 credits.
- `get_corresponding_provisions`: Map a repealed Indian criminal code to the 2023 code that replaced it, section by section: IPC to BNS and CrPC to BNSS, in force from 1 July 2024. Pass either side ('ipc' or 'bns' both work). Use whenever a source, a pleading or the user cites an old section number, so you answer under the provision actually in force rather than the repealed one. 'iea'/'bsa' return 404 until that mapping lands. Cost: 1 credit.
- `get_coverage`: India corpus counts for acts and provisions, broken down by jurisdiction, regulator and status, plus coverage depth. Use when checking whether the corpus supports a question before searching or interpreting an empty result. The depth block distinguishes text coverage from much thinner parsed amendment coverage. actsClaimingAmendmentsWithoutEvents marks missing records, not an absence of amendments.  Free.
- `get_credit_balance`: The credits this API key can spend now, calculated from live credit buckets under the same expiry rules used for billing. Use for pre-flight checks or low-balance alerts. creditsRemaining is a spendable balance, not a cached estimate. Any valid API key works without a particular scope, and normal rate limits still apply.  Free.
- `get_india_credit_balance`: The account-wide spendable credit balance shared by the India and United States APIs. Use for pre-flight checks or low-balance alerts from an India workflow. This returns the same balance as get_credit_balance, not a separate India allowance. Check bySource before assuming credits will last. Subscription credits expire at the period end.  Free.
- `get_pricing`: Current API credit pricing: per-endpoint credit costs and the credit-to-currency conversion rate (1 credit = $0.01 USD). Free, and no authentication required. Use to check what a call will cost before making it.
- `get_pricing_in`: Credit-to-price conversion and per-endpoint costs for the India legislation API, billed in US dollars. Use when estimating a workflow or comparing endpoint charges. Set region to US for United States primary-law pricing instead. Both surfaces use the same API key and account-wide credit balance. No authentication is required. 
- `get_section_changes`: What our refreshes have observed changing on one section over time: when it was added, amended or removed, newest first. This is our capture history, not the publisher's -- an empty list means we recorded no change, never that the section was never amended. For the publisher's own history, read amendmentHistory on the section. Cost: 1 credit.
- `get_section_cited_by`: The USC and CFR sections whose text cross-references a given section: the inverse of the crossReferences already returned on a section lookup. Use to find where a definition or requirement is actually invoked, or to gauge how load-bearing a provision is across the code. Cost: 2 credits.
- `get_section_cross_state`: Provisions in OTHER states that address the same subject as a given state statute section, ranked by similarity. State statutes only. Use for fifty-state surveys, multi-jurisdiction compliance, or to check whether a client's home-state rule is typical or an outlier. Cost: 6 credits.
- `get_section_definitions`: The term definitions that govern a section, parsed from its chapter's definitions section. Use whenever a provision turns on a term of art ('covered entity', 'security', 'employer') and you need the statute's own definition rather than the ordinary meaning. Cost: 4 credits.
- `get_section_history`: Recorded amendments to one provision, including the changing Act and section, effective dates and replaced wording where published. Use when tracing changes or checking whether published text reflects later amendments. An empty history can mean no changes or no parsed records, as coverage explains. Read appliedStatus on every event. Amendments are not applied to served text.  Cost: 2 credits.
- `get_section_neighbors`: The sections immediately before and after a given section within its own chapter or code, in statutory order. Use to read a provision in context, to find a definitions or penalties sibling, or to check whether the operative language continues into the next section. Cost: 2 credits.
- `get_sections_batch`: Metadata for up to 50 sections in one call, by a list of act_ids. Same fields as get_us_statute_section. Use instead of looping that tool when you already hold several act_ids, for example every result of one search. Sections that are not found are skipped and not charged. Cost: 2 credits.
- `get_us_statute_section`: Metadata for one US statute, regulation or rule section by act_id: citation, title hierarchy, breadcrumb, amendment history, and links to HTML, PDF and XML. Does NOT include the section text -- use get_us_statute_section_text for that. Good for confirming you have the right section before paying for its full body. Cost: 2 credits.
- `get_us_statute_section_text`: The full text of a US statute, regulation or rule section by act_id. Returns styled HTML (with cross-references and paragraph numbering as officially published) and plain text. Use when you need the actual statutory language to quote, draft against, or analyze rather than just cite. Cost: 6 credits.
- `india_act_cited_by`: Paged inbound citations from provisions elsewhere in the corpus that name an act. Use when finding provisions that mention the act, rather than following its outbound references. Matching uses the act's title, not its identifier, so title variants and line breaks can be missed. Read matchBasis and treat results as a floor. total counts distinct citing provisions across all pages.  Cost: 2 credits.
- `india_act_definitions`: Extracted defined terms and their defining provisions, plus a separate definitionSections list. Use when a question turns on an act's own meaning of a term. Extraction covers only a minority of acts, so an empty result does not mean the act defines nothing. definitionSections identifies provisions to read even without extracted terms. terms is paged, but definitionSections is not.  Cost: 2 credits.
- `india_act_subordinate`: Paged rules, regulations, notifications and orders the publisher records as made under an act. Use when looking beyond the parent statute to its subordinate instruments. Matching uses the parent's title, not parent_act_id, which is an India Code identifier that does not address this corpus. Check matchBasis. total counts distinct instruments across all pages, while returned counts rows on this page.  Cost: 2 credits.
- `india_section_references`: Outbound citations from a provision to other enactments and sections of its own act. Use when following references outwards, not finding citations to the act. actId identifies served targets, while resolved false marks coverage gaps rather than parse failures. Results are not paged. totalActs and totalSections give full counts, so check truncated before treating returned references as complete.  Cost: 2 credits.
- `list_act_filters`: Self-describing filter vocabulary: every category, state, department and status the acts corpus actually holds, with counts. Call this before filtering, so a query uses a value that exists instead of returning empty because the spelling was wrong.
- `list_acts`: Browse and filter enactments rather than searching their text: by jurisdiction (central or a state), issuing regulator, year and status. Use when the user wants to know WHAT exists in an area before asking what it says, or to confirm an Act's exact title before citing it. Cost: 1 credit.
- `list_statute_divisions`: Walk the statutory hierarchy: list the child divisions (titles, chapters, parts, or sections) under any level, in statutory order. Use to browse a code structurally when you do not yet know the section number, or to enumerate everything under a chapter. Cost: 1 credit.
- `list_statutes_coverage`: Self-describing coverage matrix: every corpusType we hold and its per-jurisdiction section counts. Use before answering a jurisdiction question to check whether we actually cover that state and that body of law, so you can say so instead of searching a corpus that does not exist. Free.
- `resolve_india_citation`: The provision named by an Indian legal citation, accepting common abbreviations and flexible element order. Use when a user provides a citation rather than a research topic, such as s.302 IPC, O. 39 R. 1 CPC or Art. 21 of the Constitution. Subsection and clause references are supported. Malformed citations are rejected rather than reported as not found.  Cost: 2 credits.
- `resolve_india_citations_batch`: Provision resolutions for a list of Indian legal citations, using the same resolver as resolve_india_citation. Use when several citations need resolving without individual calls. Accepts up to 50 distinct citations and 500 entries before deduplication. One citation failing does not invalidate the others. Unknown request fields are rejected rather than ignored.  Cost: 2 credits.
- `resolve_statute_citation`: Resolve a Bluebook citation string ('42 U.S.C. 1983', '16 C.F.R. 444.1', 'Cal. Code Regs. tit. 22, 76227') to the exact section, confirmed, with an official source link and the act_id. Use this whenever the user gives you a citation rather than a question -- it is far more reliable than searching for the citation text. Cost: 2 credits.
- `resolve_statute_citations_batch`: Resolve up to 50 Bluebook citations in one call, returning the same confirmed section, official source link and act_id as the single-citation tool. Use when a document or answer cites several provisions: one call is far cheaper in both credits and latency than looping the single-citation tool. Cost: 2 credits.
- `search`: Generic corpus search over Indian Central and State legislation, returning `{id, title, url}` records for citation. Present so this server works in clients that require the standard search/fetch pair. Prefer `search_acts` if you can call it: it filters by category, state, year and status. Pair with `fetch` to read a result.
- `search_acts`: Search Indian legislation down to the individual section: Central and State Acts plus the instruments of the principal regulators (SEBI, RBI, MCA, IRDAI, TRAI, DGFT). Use for any 'what does Indian law say' question. Supports boolean and phrase queries; filters by category, state, year and status. Returns sections with title, chapter and a sourceUrl pointing at the publisher's own document. The returned actId (e.g. 'IND_central_2065') feeds every acts tool. Cost: 2 credits.
- `search_us_statutes`: Semantic + keyword search across US primary law: USC, CFR, and all 50 states' statutes, regulations, constitutions and court rules. Use for any 'what does the law say' question. Returns sections with citation, hierarchy and source links. The returned act_id feeds every other statute tool; never hand-build one. To look up a citation the user gave, prefer resolve_statute_citation. `citationOutsideFilters` means the cited section exists but your filters exclude it. Cost: 4 credits.
