Skip to main content
Glama

search_documents

Read-only

Search Federal Register documents.

Finds proposed rules, final rules, notices, and presidential documents
published in the Federal Register since 1994.

Key parameters:
- agencies: list of agency URL slugs (OR logic). Use list_agencies() to find slugs.
  Common: 'defense-department', 'general-services-administration',
  'small-business-administration', 'defense-acquisition-regulations-system'
  (DFARS), 'federal-procurement-policy-office' (OFPP and the CAS Board)
- far_council: True for FAR rules, proposed rules and notices (the FAR
  Council's output). There is no single FAR agency slug: FAR documents
  are filed jointly under DoD, GSA and NASA, OFPP was added only from
  about mid-2025 (so the OFPP slug misses earlier FAR rules and adds CAS
  Board documents), and 'federal-acquisition-regulation-system' holds 2
  documents ever. far_council=True keeps documents filed by all three of
  DoD, GSA and NASA; count is exact when far_council.complete is true
  (narrow by date if not). Cannot be combined with agencies. For FAR
  clause changes only, cfr_title=48 + cfr_part='1-99' also works.
- doc_types: PRORULE (proposed rule), RULE (final rule), NOTICE, PRESDOCU
- term: full-text keyword search (strips stop words)
- docket_id: docket identifier (token match). 'FAR Case 2023-008' = exact,
  'FAR Case 2023' = all 2023 cases; partial tokens like 'FAR Case 20'
  match nothing
- regulation_id_number: RIN (precise match, e.g., '9000-AO56')
- pub_date_gte/lte: publication date range (YYYY-MM-DD)
- comment_date_gte/lte: comment close date range
- effective_date_gte/lte: effective date range
- correction: True finds only the Office of the Federal Register's own
  correction notices (C1- prefix documents). Agency-issued corrections
  ('Final rule; correction.', 'Correcting amendment.') are ordinary RULE
  documents and are not flagged: search doc_types=['RULE'] with
  term='correction' and check each document's action.
- significant: True for EO 12866 significant rules only
- cfr_title + cfr_part: documents affecting a CFR location, e.g.
  cfr_title=48, cfr_part='52' for FAR part 52 (part accepts ranges
  like '1-99'; cfr_part requires cfr_title)
- presidential_document_type: executive_order, proclamation, memorandum,
  determination, notice, presidential_order, other. Use
  ['executive_order'] to count or list executive orders: doc_types=
  ['PRESDOCU'] alone also returns proclamations, memoranda and notices.
- executive_order_number: one EO by number (e.g. 14275)
- order: 'executive_order_number' sorts EOs by number (pair it with
  presidential_document_type=['executive_order'])

Presidential documents carry executive_order_number, subtype (Executive
Order, Proclamation, Memorandum, ...), signing_date and
presidential_document_number; other documents omit those keys.

Count caps at 10,000 for broad queries (count_capped=true says so); use
get_facet_counts for the true number, or narrower date ranges.
per_page capped at 100 to stay within MCP response size limits.

Paging: the Federal Register serves only pages 1-50 of any search (a
later page silently comes back as page 1), so page > 50 is refused.
total_pages is the true page count; when it passes 50,
max_reachable_page and paging_note say how to reach the rest (per_page=100
reaches 5,000 documents; split the publication date range beyond that).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "search_documents"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNo
termNo
orderNonewest
agenciesNo
cfr_partNo
per_pageNo
cfr_titleNo
doc_typesNo
docket_idNo
correctionNo
far_councilNo
significantNo
pub_date_gteNo
pub_date_lteNo
comment_date_gteNo
comment_date_lteNo
effective_date_gteNo
effective_date_lteNo
regulation_id_numberNo
executive_order_numberNo
presidential_document_typeNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

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

Discloses operational limits annotations cannot: count capped at 10,000 with count_capped=true, per_page capped at 100 for MCP response size, and the upstream 50-page ceiling where later pages silently return page 1. It also states which output keys appear only for presidential documents and are omitted otherwise.

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?

Front-loaded with purpose, then a scannable parameter list, then behavioral caveats; almost every line carries information an agent would otherwise learn by failure. The FAR Council parenthetical (OFPP timing, the two-document 'federal-acquisition-regulation-system' aside) exceeds what is needed to choose the flag and could be tightened.

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 21-parameter tool with zero schema documentation, it covers the traps that cause silent wrong answers: paging fallback, count capping, correction-flag scope, and FAR-council exactness via far_council.complete. Return-value shape is appropriately delegated to the existing output schema.

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

Parameters5/5

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

At 0% schema description coverage across 21 parameters, the description carries the full burden: agency slug format, docket_id token-match semantics ('FAR Case 2023' vs 'FAR Case 20'), RIN precise match, YYYY-MM-DD dates, cfr_part ranges requiring cfr_title, and stop-word stripping for term. Only page is implicit, and paging discussion covers it.

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?

Opens with a specific verb+resource ('Search Federal Register documents') and bounds the corpus to proposed rules, final rules, notices and presidential documents since 1994. It names companions (list_agencies for slugs, get_facet_counts for true counts), letting an agent separate it from siblings like get_document without opening the schema.

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?

Gives explicit selection rules: far_council=True versus agencies (and why they cannot combine), the cfr_title=48 + cfr_part='1-99' fallback for FAR clause changes, and alternates for corrections and EO counting. It also routes to get_facet_counts when counts cap and prescribes date-splitting when paging runs out.

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.