Skip to main content
Glama

federal-regulations-mcp-server

regulations_browse_cfr

regulations_browse_cfr
Read-only

Explore the codified Code of Federal Regulations via eCFR in two modes. "structure" walks the CFR hierarchy (all 50 titles, or one title's chapters → parts → sections) to discover a cite when the exact citation is unknown. "search" runs a full-text query across the codified CFR and returns matching sections with their hierarchy path and a snippet. Both modes accept title and part to narrow the scope, so a part surfaced by structure mode can be searched directly instead of filtering a whole title's hits by eye. Both feed regulations_get_cfr_section. Every search result reports which corpus answered it — the synced local mirror or the live eCFR index — and what that corpus covers, in source and sourceScope.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoPoint-in-time date, ISO 8601 (YYYY-MM-DD). Defaults to current. Structure mode uses it for the historical hierarchy. Search mode matches only the section text in effect on that day, so a past date searches the CFR as it read then; eCFR indexes 2017-01-03 onward and rejects a date past its current index date.
modeYes"structure": browse the CFR tree (titles, or one title's chapters/parts/sections) to find a cite. "search": full-text search the codified CFR for sections matching a phrase.
partNoCFR part within the title, in both modes — structure mode narrows the returned tree to that part's sections, search mode restricts matches to text inside that part. Requires title; a part on its own is rejected. Parts can be alphanumeric ("1203a", "16A") and are matched exactly, so pass the identifier as eCFR writes it — "58", not "Part 58" or "058".
queryNoFull-text search phrase (search mode, required in that mode). Ignored in structure mode.
titleNoCFR title number (1–50). Structure mode: omit to list all 50 titles, or provide to expand one title. Search mode: optional filter restricting matches to that title — e.g. 40 for environmental rules, 21 for food and drugs.
per_pageNoResults per page in search mode (1–50, default 20). Ignored in structure mode.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoResolved point-in-time date — the hierarchy snapshot (structure mode), or the day whose section text was searched (search mode, live source only).
modeNoWhich mode produced this result.
errorNoPresent when the call failed. Absent on success.
nodesNoHierarchy nodes at the requested level (structure mode).
shownNoResults returned on this page (search mode).
noticeNoGuidance when nothing matched.
sourceNoProvenance: the synced mirror index, or the live eCFR search API (search mode).
resultsNoMatching CFR sections, this page (search mode).
truncatedNoTrue when search results were capped at per_page.
totalCountNoTotal search matches before pagination (search mode).
sourceScopeNoWhat the answering corpus covers — the mirror's title coverage, or the live index and the date it was read at — narrowed by whichever of title and part the call supplied (search mode). Read it before concluding a query found nothing.

TDQS

A3.9/5.0
Behavior2/5

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

The description covers the 'read' nature (no mutation) and explicitly mentions the `source` and `sourceScope` fields reporting which corpus answered the query. But for a read tool with readOnlyHint=true and no destructive field, the bar is lower; the description still doesn't mention potential errors, rate limits, or the impact of date on a search across corpora. It does disclose that search interprets date as text-match day, which is a useful behavioral detail. However, the readOnlyHint annotation already signals safety, so a 3 would be appropriate. I'll settle on 3.

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 one comprehensive paragraph covering purpose, modes, parameters, and output. It's front-loaded with the main purpose, but the paragraph is long. It's not overly verbose given the two modes, but it could be more scannable. Still, each sentence adds value, no fluff. I'll give 4.

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?

The description covers the two modes, the parameters that vary between them, the output (snippets, section references), and the sourceScope result field. It mentions the relationship to regulations_get_cfr_section. Given there's no output schema, it explains return values reasonably. Missing: error conditions (e.g., part without title) are only in the schema. Still, quite complete for the tool's complexity.

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 schema covers most parameters (date, mode, title, part, per_page) with descriptions/clarity. The description adds valuable context that the schema lacks — e.g., that query is required in search mode but ignored in structure mode, part can be alphanumeric and matched exactly, and date in structure mode uses historical hierarchy while search matches text on that day. That's meaningful semantic enrichment beyond the schema, worth a 4 rather than baseline 3.

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 what the tool does: it explores the codified CFR via eCFR in two modes ('structure' to browse the title tree and find a cite, 'search' to run a full-text query). It names the resource (the codified CFR), the two behavioral modes, and explicitly links to the follow-up tool (regulations_get_cfr_section). The purpose is unambiguous and distinguishes the two operations well.

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 explains when to use each mode and how they interrelate — structure mode discovers a cite, search mode queries full text, and a part from structure mode can be fed into search. It stops short of explicitly stating when NOT to use this tool or naming sibling alternatives, so it doesn't hit the top of the scale, but the mode guidance is clear operational direction.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: browsing vs searching, getting specific entities (CFR sections, dockets, documents) vs listing/finding comments. No overlap or ambiguity.

Naming Consistency5/5

All tools follow the consistent 'regulations_<verb>_<object>' pattern (e.g., browse_cfr, get_docket, list_open_comments), making it easy to predict functionality.

Tool Count5/5

Seven tools is well-scoped for a regulations domain, covering discovery (search, browse, list) and retrieval (get, find) without redundancy or bloat.

Completeness5/5

The set covers the core regulatory workflow: searching rules, browsing CFR structure, retrieving specific sections, dockets, documents, and comments. No obvious gaps for read-only access.