GroundRules - US Law Text
Server Details
The original text of US federal and state law, with official sources; never a summary or advice.
- Status
- Healthy
- Uptime
- 100.0% over 20 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 4 tools
The four tools have mostly distinct purposes: coverage reporting, jurisdiction resolution, full-text retrieval, and search. There is some overlap because law_search can also resolve an address and because exact citations can appear in both search and section retrieval, but the descriptions clarify the intended differences.
All tools share the law_ prefix, which helps grouping, but the action pattern is mixed: law_coverage and law_for_location are noun/prepositional, while law_get_section uses verb_noun and law_search is a bare verb. It remains readable but does not follow a consistent verb_noun convention.
Four tools is a well-scoped set for a legal text retrieval server: coverage, location resolution, section retrieval, and search cover the core workflows without redundancy. Each tool has a clear role and none appears extraneous.
The surface covers the stated domain well: law_coverage explains what is hosted, law_for_location resolves jurisdiction stacks, law_get_section fetches full text with provenance, and law_search supports topical and citation search. No obvious lifecycle or retrieval gaps remain for this read-only legal-text use case.
Available Tools
4 toolslaw_coverageList the law sources we hostARead-onlyIdempotentInspect
Per-source coverage: what we host, section counts, current-through or vintage, last_verified, and a stale flag for any source the recurring verify has proven behind its upstream. Machine-generated from the build manifest; never hand-typed. Absence from this list means we do not host that jurisdiction's text, not that no law exists there.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnlyHint, idempotentHint, non-destructive), so the description earns credit for adding provenance and trust context: it is machine-generated from the build manifest and never hand-typed, and the stale flag reflects a recurring upstream verification. That tells the agent how to weight the data, which no annotation conveys. It doesn't state result size or whether the list can be empty in a fully-hosted environment.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each carrying distinct payload: field inventory, provenance, and absence semantics. The lead phrase 'Per-source coverage' front-loads the purpose efficiently. 'Current-through or vintage' is slightly jargon-heavy but is offset by the immediately following last_verified and stale-flag explanation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must carry the return-value burden, and it does: it names every meaningful field and explains the interpretation of the stale flag and of a missing source. For a zero-parameter, read-only listing tool with closed-world scope, nothing an agent needs in order to call it or read it correctly is absent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters and the schema is trivially complete, so there is nothing to disambiguate. The description correctly spends no words on inputs and instead describes the shape of the returned rows, which is the more useful information here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description plus title clearly state this is a per-source inventory list, and it enumerates what each row contains (section counts, current-through/vintage, last_verified, stale flag). It implicitly separates itself from retrieval siblings by framing the result as coverage metadata rather than legal text, though it never names law_search or law_get_section as the tools to use once coverage is confirmed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Strong negative-result guidance: 'Absence from this list means we do not host that jurisdiction's text, not that no law exists there' tells the agent exactly how to interpret an empty match before falling back to other tools. What's missing is an explicit positive routing statement such as 'call this first to confirm coverage before law_for_location or law_search.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
law_for_locationFind the law that applies at a locationARead-onlyIdempotentInspect
Resolve an address or lat/lon to its full jurisdiction stack: federal, state, county, place, each with its code sources (name, publisher, official URL, current-through, whether we host its text). Unincorporated areas get the county code with no city code; about half of US municipalities publish no code online, and the answer says so and points at where the code lives if anywhere.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | ||
| lon | No | ||
| address | No | One-line street address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, openWorld), and the description adds real behavioral context beyond them: unincorporated areas return county code with no city code, roughly half of municipalities publish no online code, and the response flags that gap. That discloses outcome variability an agent would otherwise misread as failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The verb and the return contents are front-loaded in the first clause, and the second sentence carries a genuinely useful caveat rather than filler. Slightly dense in the parenthetical enumeration of code-source fields, but no wasted sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description fully enumerates the returned fields (name, publisher, official URL, current-through, whether we host text) and preempts the most likely misreading of a missing city code. Missing only edge behavior such as ambiguous-address handling or what happens with zero inputs (0 required parameters).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (lat/lon undocumented), so the description compensates partially by framing 'address or lat/lon' as alternative input modes. It does not clarify precedence when both are supplied, whether lat and lon must be paired, or the address format beyond 'one-line street address' in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Resolve') and resource ('full jurisdiction stack: federal, state, county, place') and enumerates what each layer carries. A reader knows exactly what the tool produces, though it never names a sibling to distinguish itself from law_coverage or law_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The input forms ('an address or lat/lon') imply the use case of turning a location into its governing codes, but there is no explicit when-to-use, when-not, or pointer to law_coverage/law_search as alternatives. Usage is inferable rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
law_get_sectionGet the full text of a law sectionARead-onlyIdempotentInspect
Fetch full verbatim text by id or citation, or pass references for a batch of up to 10. Each batch item has its own result/error. Includes provenance (official source URL, current-through or vintage label, retrieval time), parent path, and prev/next siblings. The text is reproduced exactly as published by the official source; nothing is added or removed except publisher editorial matter, which we never carry.
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Section id returned by search | |
| citation | No | Full citation, e.g. California Civil Code 1950.5 | |
| references | No | Batch of section ids or complete citations |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, so the description's added value is in return-shape disclosure: per-item result/error for batches, provenance fields (source URL, current-through/vintage, retrieval time), parent path and prev/next siblings. It also makes a strong fidelity promise that publisher editorial matter is never carried, which is meaningful behavioral context. It stops short of describing failure behavior for nonexistent ids or truncation of very long sections.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the retrieval modes, then the batch semantics, then the return contents. The final sentence about editorial matter is slightly editorial in tone but earns its place as a fidelity guarantee; overall there is little waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does good work describing what comes back. But for a zero-required-parameter tool with three mutually exclusive-looking inputs, it never states that at least one must be supplied, nor how missing sections or oversized sections are handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter is already documented, so the baseline is 3. The description reinforces that references accepts ids or complete citations and is capped at 10, but adds no exclusivity rule or precedence for when id and citation are both supplied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Fetch full verbatim text by id or citation' plus batch mode. It is clearly a retrieval-by-identifier tool, distinguishable in spirit from law_search, but it never names the sibling tools so the contrast is only implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'by id or citation, or pass references for a batch of up to 10' lays out the three invocation modes, which implies lookup-after-search usage. However, there is no explicit when-to-use vs law_search/law_for_location guidance, no statement of mutual exclusivity between id, citation and references, and no note on which mode to prefer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
law_searchSearch the text of the lawARead-onlyIdempotentInspect
Search original law by topic, question, or citation. Exact citations resolve directly. Scoped by jurisdiction or source ids (e.g. us, us-tx; us-cfr scopes to the CFR alone, us covers both the US Code and the CFR) or by an address (the address is resolved first, then the search covers exactly its stack's hosted sources). Results are verbatim snippets with citation, official source URL, retrieval time, and a current-through or vintage label adjacent to every snippet; a hit whose source has fallen behind its upstream carries stale:true. Vintage-labeled text is a dated snapshot, not current law. meaning_only:true means no section matched a word of the query, so every hit is only the nearest in meaning and may be unrelated. Requested ids we do not host are named in the response note; law_coverage lists what is hosted.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Topic, question, or citation | |
| mode | No | auto combines word and semantic retrieval when available; keyword avoids model inference. | |
| limit | No | ||
| offset | No | ||
| address | No | One-line street address to auto-scope the search; pass this or jurisdictions, not both | |
| sources | No | Exact comma-separated source IDs; us = US Code only here. Use instead of jurisdictions/address. | |
| include_text | No | Include full text for up to this many top results (0 by default; sections over 64KB require get). | |
| jurisdictions | No | Comma-separated jurisdiction or source ids from law_coverage, e.g. us,us-tx (us-cfr = CFR only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover safety (readOnly/true, idempotent, non-destructive, open-world), and the description layers substantial extra behavior on top: every snippet carries citation, source URL, retrieval time, and a current-through or vintage label; stale:true marks hits whose source lags upstream; vintage text is a dated snapshot, not current law. It also discloses the meaning_only fallback and that unhosted requested ids surface in a response note.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Purpose is front-loaded in the first two sentences, followed by scoping, then response semantics. It is dense and the parenthetical jurisdiction example and the stale/vintage sentences both carry weight, but the parenthetical '(e.g. us, us-tx; us-cfr scopes to the CFR alone...)' is partially duplicated by the jurisdictions and sources schema descriptions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 8 parameters and no output schema, the description has to explain the return shape, and it does thoroughly: snippet fields, source URL, retrieval time, current-through vs vintage labels, stale flags, meaning_only semantics, and the note listing unhosted ids. Pagination behavior is only implied by limit/offset, which the schema covers, so an agent has what it needs to call and interpret this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
At 75% schema coverage the schema already documents most parameters, but the description adds real semantics the schema lacks: it explains the difference between us-cfr (CFR alone) and us (US Code plus CFR) for the jurisdiction/source ids, and clarifies that an address is resolved first and then scopes to its stack's hosted sources. Mode and limit/offset get no extra treatment, but they are documented in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific verb+resource ('Search original law') and immediately adds the query surface (topic, question, or citation) plus the fact that exact citations resolve directly. It carves out territory against law_get_section by noting sections over 64KB require get, though law_get_section and law_for_location are never named directly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to pass address or jurisdictions, not both, and that sources should be used instead of jurisdictions/address. It also gives a clear escape hatch for oversized sections ('sections over 64KB require get'). What's missing is a direct statement of when to call law_for_location or law_coverage instead of using the address/id parameters here.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- Changed
law_coverage1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
law_for_location1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
law_get_section1 field changed- added
Input schema / additionalPropertiesAdded value: +false
- Changed
law_search1 field changed- added
Input schema / additionalPropertiesAdded value: +false
4 tool updates
- First observed
law_coverage - First observed
law_for_location - First observed
law_get_section - First observed
law_search
Related MCP Connectors
U.S. law library for AI: court decisions, statutes, court rules and citation checks. Read-only.
Verbatim U.S. mortgage regulatory text with citations and effective dates. Read-only, no sign-in.
US Code — the text of federal statutes, by citation.
Find, compare and price licensed U.S. lawyers from official licensing records. Not legal advice.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides access to 529,000+ US statute sections across all 50 states and federal codes for comprehensive legal research. Supports semantic search, citation graph traversal, jurisdictional comparisons, and regulatory risk analysis through natural language queries.40 npm2MIT
- AlicenseAqualityBmaintenanceStatute & article text (mevzuat.gov.tr) and court decisions (UYAP Emsal, Council of State, Constitutional Court), with their citation, source, live. It works as long as the official sources remain reachable.2172 PyPI19MIT
- AlicenseAqualityCmaintenanceStatute & article text (mevzuat.gov.tr) and court decisions (UYAP Emsal, Council of State, Constitutional Court), with their citation, source, live. It works as long as the official sources remain reachable.4164 PyPI6MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to retrieve the full current text of any state statute section by citation, along with its amendment history, repealed/transferred status, neighboring sections, and any pending future-effective version. It also performs live full-text keyword search across actual section body text to find statutes by topic.270 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.