Skip to main content
Glama
matematicsolutions

us-eli-mcp

us-eli-mcp

MCP server for US law with verifiable citations. Five sources behind ten read-only tools:

  • Congress.gov API - the federal legislative process: bills as they move through committees and floor votes.

  • GovInfo API - enacted law text as published packages: US Code, Statutes at Large, CFR annual editions, Federal Register issues.

  • Federal Register API - full-text search over 1,003,504 FR documents (1994-2026, live-verified 2026-07-07), including 8,513 presidential documents (1,550 executive orders). Keyless.

  • CourtListener search API - full-text search over 8,294,123 court opinions (live-verified 2026-07-07). The headline value is STATE case law (California, New York, Texas, ...), which no federal source covers. Keyless, ~5 requests/min anonymous.

  • eCFR API - the CURRENT Code of Federal Regulations: section-level full-text search over 412,846 sections plus per-section amendment history. Keyless.

What this is not

  • State legislation (all 50 states) - see LegiScan, a free-tier aggregator (30,000 queries/month) not wrapped here.

  • A federal case-law workhorse - for heavy federal case-law research the mature MIT-licensed wrappers (blakeox/courtlistener-mcp, john-walkoe/courtlistener_citations_mcp) remain the recommendation; the case-law tools here exist primarily for state courts. See SOURCES.md.

Related MCP server: CongressMCP-full

Tools

Tool

Purpose

us_search_bills

List bills by congress (e.g. 118) and type (hr, s, hres, ...)

us_get_bill

Full detail + latest action for one bill

us_list_code_packages

List GovInfo packages in a collection (USCODE, CFR, FR, STATUTE)

us_get_code_package

Metadata + download links (PDF/XML/TXT) for one package

us_search_federal_register

Full-text search over FR documents; filter rules, notices, executive orders

us_get_federal_register_doc

One FR document with its official citation (e.g. 91 FR 41591)

us_search_case_law

Full-text search over 8M+ opinions; court filter (e.g. cal, ny, scotus)

us_get_case

One opinion cluster by cluster_id

us_search_cfr_sections

Full-text search over the current CFR (eCFR)

us_get_cfr_section_history

Amendment history of one CFR section (e.g. 15 CFR 744.3)

us_coverage

Declare what this connector covers, when each family was captured, and - explicitly - what it does NOT cover. Every gap carries a fallback.

Every response carries lex_uri (a resolvable API URL), human_readable_citation (the official convention: "H.R. 1, 118th Congress", "91 FR 41591", "People v. Miranda-Guerrero, 519 P.3d 1004 (California Supreme Court 2022)", "15 CFR § 744.3") and source_url (the public page). Reporter citations are taken verbatim from the source and never fabricated; when none exists the docket number is used instead.

Install

pip install us-eli-mcp

Windows 11 with Smart App Control

Smart App Control blocks unsigned executables, which covers uvx.exe, pip.exe and the us-eli-mcp.exe launcher that pip writes at install time. The python.exe and py.exe from the python.org installer are signed by the Python Software Foundation, so running the module through the interpreter works:

python -m pip install us-eli-mcp
python -m us_eli_mcp

pip.exe is blocked for the same reason, so install with python -m pip, not pip install. If python is not on PATH, use the Windows launcher: py -3 -m us_eli_mcp.

{ "mcpServers": { "us-eli-mcp": { "command": "python", "args": ["-m", "us_eli_mcp"] } } }

Do not turn Smart App Control off to work around this - it cannot be re-enabled without reinstalling Windows.

Configuration

Env var

Default

US_ELI_API_KEY

DEMO_KEY (shared, low rate limit - get your own free key at api.congress.gov/sign-up)

US_ELI_GOVINFO_API_KEY

reuses US_ELI_API_KEY (same api.data.gov key family)

US_ELI_CACHE_DIR

~/.matematic/cache/us-eli

US_ELI_AUDIT_DIR

~/.matematic/audit

US_ELI_BASE_URL

https://api.congress.gov/v3

US_ELI_GOVINFO_BASE_URL

https://api.govinfo.gov

US_ELI_FR_BASE_URL

https://www.federalregister.gov/api/v1 (keyless)

US_ELI_COURTLISTENER_BASE_URL

https://www.courtlistener.com/api/rest/v4 (keyless)

US_ELI_ECFR_BASE_URL

https://www.ecfr.gov/api (keyless)

The Federal Register, CourtListener and eCFR tools need no key at all.

License

Apache-2.0 (code). Congress.gov, GovInfo, Federal Register and eCFR data are US government works (public domain). CourtListener data is provided by the Free Law Project.

Available Tools

11 tools
us_coverageA
Read-onlyIdempotent

Declare what this connector covers, how it is sourced, and what it does NOT cover.

Call this before telling a user that the law "does not contain" something, and whenever a search comes back empty: the absence may be a gap in this connector rather than in the law. Every gap carries a fallback saying where to look instead.

Returns: Coverage with families, an as-of note, and a non-empty list of known gaps.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNo
familiesNo
as_of_noteYesStates what the dates mean, and what they do not promise.
known_gapsNoNever empty. An empty list would mean 'not checked', not 'no gaps'.

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, but the description adds valuable context by explaining the 'open world' nuance and detailing the return structure (families, as-of note, non-empty list of gaps). It also reveals each gap carries a fallback, which is behavioral insight beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and economical. The first line states the core purpose, the following lines give precise invocation triggers, and the Returns clause summarizes the output structure. Every sentence earns its place without any fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with full annotation coverage and an output schema, the description is complete. It explains the why, when, and what to expect, and even includes the critical gap/fallback behavior. Nothing essential is missing for an agent to use it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so by the established baseline, the description deserves a 4. Since there are no parameters to document, the description appropriately focuses on return semantics and usage context without unnecessary parameter detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Declare') and clearly defines the resource: what this connector covers, how it is sourced, and what it does NOT cover. It distinctly positions this tool against the sibling search/get tools by focusing on coverage and gaps, leaving no ambiguity about its unique role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to call the tool: before telling a user the law 'does not contain' something, and whenever a search comes back empty. It explains the reasoning (absence may be a connector gap rather than a legal gap) and provides a crucial fallback instruction. This is exemplary usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

us_get_billA
Read-onlyIdempotent

Fetch full detail (including latest action/status) for one bill.

ParametersJSON Schema
NameRequiredDescriptionDefault
numberYesbill number, e.g. ``1``.
congressYese.g. ``118``.
bill_typeYese.g. ``"hr"``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds the specific detail that the tool returns 'latest action/status', providing valuable behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with key information, no wasted words. Perfectly concise for this simple retrieval tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present and annotations covering safety, the description sufficiently explains purpose and contents (full detail including latest action/status). Complete for a fetch tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has 3 parameters with clear descriptions, covering 100% of parameters. The tool description adds no additional parameter information beyond the schema, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb 'Fetch' targeting 'full detail' for a single bill, including the latest action/status. This clearly distinguishes it from sibling search tools like us_search_bills.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you need complete details for a known bill (required congress, bill_type, number). It doesn't explicitly exclude alternatives, but the context with sibling tools provides implicit guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

us_get_caseA
Read-onlyIdempotent

Fetch one opinion cluster by its CourtListener cluster_id.

Uses the keyless search endpoint with a cluster_id:{id} field query (the authenticated /clusters/{id}/ endpoint is deliberately not used).

ParametersJSON Schema
NameRequiredDescriptionDefault
cluster_idYese.g. ``8512159`` - take it from `us_search_case_law`.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnly, idempotent, and non-destructive hints. The description adds that the tool uses a keyless search endpoint and avoids the authenticated endpoint, which is useful context but not critical behavioral disclosure beyond what annotations convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no unnecessary words. Each sentence conveys essential information: purpose and implementation detail. Efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with annotations and an output schema, the description is mostly complete. It could mention response format or error conditions, but the existence of output schema mitigates this. The guidance on parameter sourcing adds value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents the parameter with example and source. The description reaffirms that cluster_id is the identifier, but does not add new semantic details beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches one opinion cluster by its CourtListener cluster_id, using a specific verb and resource, and distinguishes it from siblings like us_search_case_law by specifying it is a fetch operation based on an ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the parameter source (from us_search_case_law) and notes the deliberate choice of keyless endpoint over authenticated, but does not explicitly state when to use or not use this tool versus alternatives beyond the endpoint choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

us_get_cfr_section_historyA
Read-onlyIdempotent

Fetch the amendment history (point-in-time versions) of one CFR section.

ParametersJSON Schema
NameRequiredDescriptionDefault
partYespart identifier, e.g. ``"744"``.
titleYesCFR title number, e.g. ``15``.
sectionYessection identifier, e.g. ``"744.3"`` - take title/part/section from `us_search_cfr_sections`.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, signaling a safe, read-only operation. The description adds 'point-in-time versions' but does not disclose additional behavioral traits beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the key information: 'Fetch the amendment history (point-in-time versions) of one CFR section.' No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has an output schema and the annotations cover safety and idempotency, the description is complete for its simplicity. It clarifies the result is version history, which is essential for understanding the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for all three parameters. The description adds a hint about sourcing values from us_search_cfr_sections but does not add semantic meaning beyond what the schema provides, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches amendment history of a specific CFR section, using a specific verb ('Fetch') and resource ('amendment history of one CFR section'). This distinguishes it from sibling tools like us_search_cfr_sections, which search for sections, and others that retrieve different document types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no explicit guidance on when to use this tool versus alternatives. It mentions taking parameters from us_search_cfr_sections, but does not specify scenarios where this tool is preferred or excluded, such as when full text vs history is needed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

us_get_code_packageA
Read-onlyIdempotent

Fetch metadata and content-format download links for one GovInfo package.

ParametersJSON Schema
NameRequiredDescriptionDefault
package_idYesa GovInfo package id, e.g. ``"USCODE-2023-title50"`` or a Federal Register document id - take these from `us_list_code_packages`.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds that it fetches metadata and download links, which is consistent and provides minimal extra context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence of 10 words, efficient and front-loaded with key action and object. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (so return values are documented elsewhere), the description is adequate for a single-parameter fetch tool. However, more context about what exactly constitutes 'content-format download links' could be helpful but not essential.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%. The description does not add additional meaning beyond what the schema's `description` field already provides for `package_id`.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Fetch', the resource 'metadata and content-format download links', and scope 'for one GovInfo package'. It distinguishes from sibling tools like `us_list_code_packages` which lists packages.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives are stated in the description. However, the parameter description for `package_id` implies usage by referencing `us_list_code_packages` as source, providing indirect guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

us_get_federal_register_docA
Read-onlyIdempotent

Fetch full metadata for one Federal Register document.

ParametersJSON Schema
NameRequiredDescriptionDefault
document_numberYesan FR document number, e.g. ``"2026-13726"`` - take it from `us_search_federal_register`.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false. The description adds no extra behavioral context beyond what annotations provide, such as rate limits or return format details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the verb and resource, containing no extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with one parameter and an output schema, the description is adequate. It could mention the type of metadata returned, but that is likely covered by the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents the parameter. The description does not add additional parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Fetch full metadata for one Federal Register document' uses a specific verb ('Fetch') and resource ('full metadata for one Federal Register document'), clearly distinguishing this tool from siblings like search and list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context by stating it fetches one document, and the parameter description hints at prior use of us_search_federal_register. However, no explicit when-to-use or when-not-to-use guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

us_list_code_packagesA
Read-onlyIdempotent

List enacted-law packages in a GovInfo collection modified since a given date.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNomax results (default 20).
collectionYesa GovInfo collection code, e.g. ``"USCODE"`` (United States Code), ``"CFR"`` (Code of Federal Regulations), ``"FR"`` (Federal Register), ``"STATUTE"`` (Statutes at Large).
start_dateNoISO 8601 UTC timestamp (e.g. ``"2023-01-01T00:00:00Z"``); only packages modified on/after this date are returned.1900-01-01T00:00:00Z

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds the date-filtering behavior but does not disclose additional behavioral traits such as pagination or the handling of large result sets. It is adequate but not enhanced beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 10 words, highly concise with no extraneous information. Every word serves a purpose, and it front-loads the core action and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with 3 parameters, a clear output schema, and rich annotations, the description covers the essential purpose and filter. It does not elaborate on the meaning of 'enacted-law packages' or the exact behavior of the date filter, but the schema and annotations fill gaps. Overall complete and appropriate for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all parameters and their types. The description does not add any extra meaning beyond what the schema provides, meeting but not exceeding the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb ('List'), the resource ('enacted-law packages in a GovInfo collection'), and the filter ('modified since a given date'). It effectively distinguishes from sibling tools like us_get_code_package (single package) and search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing packages modified after a date, but provides no explicit guidance on when to choose this tool over alternatives like us_get_code_package or search tools. No exclusion criteria or context about scope is mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

us_search_billsA
Read-onlyIdempotent

List US federal bills of a given congress and bill type.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNomax results (default 20, API caps around 250).
congressYese.g. ``118`` (2023-2024 session).
bill_typeYesone of ``"hr"``, ``"s"``, ``"hres"``, ``"sres"``, ``"hjres"``, ``"sjres"``, ``"hconres"``, ``"sconres"``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description does not add behavioral context such as pagination behavior or rate limits, leaving the agent reliant on annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence with no wasted words. However, it is slightly too brief, missing context that could fit without increasing length significantly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and comprehensive annotations, the description is minimally adequate. It does not explain return format or usage context beyond the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with detailed parameter descriptions. The tool description adds no additional semantic meaning beyond restating the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the resource 'US federal bills', with key filtering parameters 'congress' and 'bill type'. It effectively distinguishes from sibling tools like 'us_get_bill' which retrieves a single bill.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like 'us_search_case_law' or 'us_get_bill'. The usage context is implied but not detailed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

us_search_case_lawA
Read-onlyIdempotent

Full-text search over 8M+ US court opinions (CourtListener, keyless).

The headline value is STATE case law - no other tool in this server covers state courts. Federal courts are searchable too, but dedicated CourtListener MCP wrappers exist for heavy federal case-law work.

ParametersJSON Schema
NameRequiredDescriptionDefault
courtNooptional CourtListener court id to scope the search, e.g. ``"cal"`` (California Supreme Court), ``"ny"`` (NY Court of Appeals), ``"texapp"`` (Texas Court of Appeals), ``"scotus"``.
limitNomax results (default 20; the API returns 20 per page).
queryYesfull-text query, e.g. ``"negligence standard of care"``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds key context: the tool is keyless (no API key required) and sources from CourtListener, which is beyond the annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two short paragraphs with the core purpose in the first sentence. Every sentence adds value without redundancy. Structure is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (not shown but indicated), the description need not cover return values. It adequately covers source, scope, and alternative usage. The parameter schema is rich, and the description complements it with high-level guidance.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add further meaning to the parameters beyond what the input schema already provides (e.g., examples for court, limit, query).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it performs full-text search over 8M+ US court opinions using CourtListener. It explicitly highlights that the headline value is state case law, which distinguishes it from sibling tools covering federal courts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides direct guidance: use primarily for state case law, and notes that federal courts are also searchable but dedicated wrappers exist for heavy federal work. This helps the agent decide when to choose this tool over alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

us_search_cfr_sectionsA
Read-onlyIdempotent

Full-text search over the CURRENT Code of Federal Regulations (eCFR, keyless).

Unlike the GovInfo CFR collection (annual-edition snapshots), the eCFR is amended through days ago and every hit carries the exact CFR hierarchy (title/part/section) plus an excerpt.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNomax results (default 20).
queryYesfull-text query, e.g. ``"unmanned aircraft"``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds value by noting the eCFR is 'keyless' and provides exact hierarchy and excerpt, which is beyond what annotations convey. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no fluff. First sentence states purpose; second provides key differentiation and output details. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists (not shown but context confirms). Description mentions output includes hierarchy and excerpt. For a search tool, it is fairly complete, though it could mention pagination or result limits beyond the default.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: both 'query' and 'limit' have descriptions in the input schema. The description does not add additional meaning beyond the schema examples. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states it performs full-text search over the current Code of Federal Regulations (eCFR), distinguishing it from the GovInfo CFR collection (annual snapshots). The verb 'search' and resource 'CFR sections' are specific, and the differentiation clarifies its scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description contrasts with GovInfo CFR (annual vs. current) but does not explicitly state when to use this tool over sibling search tools like us_search_federal_register or us_search_case_law. Usage context is implied but not fully explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

us_search_federal_registerA
Read-onlyIdempotent

Full-text search over Federal Register documents (1994-present, keyless).

ParametersJSON Schema
NameRequiredDescriptionDefault
termYesfull-text search query, e.g. ``"artificial intelligence"``.
limitNomax results (default 20).
doc_typeNooptional filter - one of ``"RULE"``, ``"PRORULE"`` (proposed rule), ``"NOTICE"``, ``"PRESDOCU"`` (presidential document).
presidential_document_typeNooptional filter for presidential documents - e.g. ``"executive_order"``, ``"proclamation"``, ``"memorandum"``.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. Description adds valuable context: date range (1994-present) and no key requirement, enhancing transparency beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single clear sentence, front-loaded with key information (action, resource, scope). No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema, return values are covered. Sibling tools exist, and description aids differentiation. Adequate for a search tool with comprehensive schema and annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are well-documented. Description mentions 'full-text search' which aligns with term parameter, but adds no extra meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (full-text search), the resource (Federal Register documents), and scope (1994-present, keyless). Distinct from sibling tools like us_search_bills or us_search_case_law.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs alternatives. However, name and description imply it's for Federal Register full-text search, providing implicit differentiation from sibling search tools.

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. Dates show when Glama detected each change.

  1. 1 tool updatev0.5.3
    • Addedus_coverage
  2. 10 tool updatesv0.4.0
    • First observedus_get_bill
    • First observedus_get_case
    • First observedus_get_cfr_section_history
    • First observedus_get_code_package
    • First observedus_get_federal_register_doc
    • First observedus_list_code_packages
    • First observedus_search_bills
    • First observedus_search_case_law
    • First observedus_search_cfr_sections
    • First observedus_search_federal_register

TDQS

A4.1/5.0
Disambiguation5/5

Each tool targets a distinct legal source and action: bills, code packages, Federal Register, case law, CFR sections, and a coverage tool. The search/get pairs are clearly separated by resource type, and even similar regulatory sources (Federal Register vs CFR) are distinct.

Naming Consistency4/5

All tools follow the 'us_' prefix with a verb_noun pattern (search_, get_, list_). The only outlier is 'us_coverage', which uses a noun instead of verb_noun, and 'get_case' is shorter than 'get_federal_register_doc', but overall the pattern is consistent and predictable.

Tool Count5/5

11 tools is well-scoped for a legal research connector covering multiple sources. Each tool serves a clear purpose, and the count is within the ideal 3-15 range, not feeling bloated or sparse.

Completeness4/5

The server provides search and retrieval for each major legal source: bills, code packages, Federal Register, case law, and CFR. The coverage tool explicitly identifies gaps and fallbacks, which mitigates incompleteness. Minor missing operations like a direct 'get CFR section' tool are workable through search and history tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    An MCP server for the Congress.gov API that consolidates 91 operations into 6 comprehensive legislative tools that can be used by any MCP client (i.e. Claude Desktop), or MCP-compatible AI agent, to query and reason about congressional data.
    14
    1
    JavaScript
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    The open Congress.gov MCP server. Provides comprehensive access to the Congress.gov API through 6 organized toolsets, enabling AI systems to retrieve and interact with legislative data from the United States Congress with a clean, unified interface.
    24
    32
    Sustainable Use v1.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables querying U.S. legislative data from Congress.gov API using MCP resources for direct lookups and tools for searching and retrieving related data.
    8
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/matematicsolutions/us-eli-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server