Federal Register
Server Details
Federal Register proposed and final rules, notices, executive orders, and FAR cases. 8 tools.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- 1102tools-dev/federal-contracting-mcps
- GitHub Stars
- 30
- Server Listing
- ecfr-mcp
- ChatGPT
- 1102tools for Federal Register
- Claude
- 1102tools for Federal Register
TDQS
Scored across 8 tools
Each tool targets a distinct retrieval mode: search, single-get, batch-get, facets, agency list, public inspection, open comment periods, and FAR case history. The only overlaps are far_case_history vs search_documents(docket_id/term) and open_comment_periods vs search_documents(comment_date filters), but descriptions make the specialized purposes clear.
Mostly consistent snake_case get_/list_/search_ verb_noun naming. Two tools (far_case_history, open_comment_periods) are noun phrases rather than verb-first, a minor deviation but still readable and unambiguous.
Eight tools is well-scoped for a read-only document search/retrieval API. Each tool earns its place (search, get, batch, facets, agencies, PI, comments, case history) with no obvious filler.
Coverage is broad: full-text search, document retrieval (single and batch), aggregations, agency metadata, pre-publication, comment periods, and case progression. Minor gaps like fetching linked/corrected documents in one operation exist but are workable via search and get_document.
Available Tools
8 toolsfar_case_historyARead-onlyInspect
Get all Federal Register documents for a FAR/DFARS case or FAC.
Pass a docket ID like 'FAR Case 2023-008' (or a FAC number like
'FAC 2025-06'). Runs BOTH a docket-id search and a quoted full-text
search, then merges the two result sets (deduped by document number)
in chronological order to show the full rulemaking progression:
ANPRM -> proposed rule -> final rule -> corrections. The dual query
matters: FAC introduction and companion documents often carry only
internal docket numbers, so a docket-only search returns a partial set.
Docket matching is token-based, not substring: 'FAR Case 2023' matches
all 2023 cases (token '2023' matches '2023-008'), but a partial token
like 'FAR Case 20' matches nothing. Be specific to avoid false positives.
Each document carries matched_by: 'docket' or 'docket+text' when its
docket ids name the case, 'text' when it only mentions the case in its
text (regulatory agendas, related or companion cases, FAC
introductions, public meetings). Read 'text' matches with care.
Each underlying search returns at most 100 documents. truncated=True
flags that one of the searches hit that cap (docket_matches and
term_matches carry the API's full counts); narrow the docket_id if so.
Minimum docket_id length is 3 characters to prevent token matches that
return unrelated documents (e.g. 'x' matched 65 random dockets in 0.1.x).
Inputs: docket_id (required). Returns: object
get_documentARead-onlyInspect
Get full details for a single Federal Register document by number.
Returns all available fields including full text URLs, docket info, RIN details, page views, topics, corrections, and CFR references.
Document numbers look like '2026-03065' (modern), 'E9-12940' or 'X94-70302' (legacy pre-2011 archive), or 'C1-2026-01234' (corrections).
Inputs: document_number (required). Returns: object
get_documents_batchARead-onlyInspect
Fetch multiple documents in one call (up to ~20).
Pass a list of document numbers to fetch up to about 20 in one call.
Always returns {count, results, [errors]}; errors.not_found lists any
requested numbers the API could not locate. Results come back in the
order requested. Image metadata (images, images_metadata) is left out
to keep batches small; get_document returns it.
Inputs: document_numbers (required). Returns: object
get_facet_countsARead-onlyInspect
Get document counts grouped by type, agency, topic, or time period.
Accepts the same filter conditions as search_documents. Returns
aggregated counts without individual document results.
Facets: type, agency, topic (categorical) plus daily, weekly, monthly,
quarterly, yearly (publication-date buckets, useful for trend lines).
Useful for understanding the volume of rulemaking by agency, type, or
over time within a date range before drilling into specific documents.
presidential_document_type (executive_order, proclamation, memorandum,
determination, notice, presidential_order, other) narrows to one kind
of presidential document, e.g. executive orders per month.
At least one filter (agencies, doc_types, term, pub_date_gte/lte, or
cfr_title) is required. An unfiltered facet query returns the entire
all-time aggregate.
FAR Council counts: facets cannot express "filed by DoD AND GSA AND
NASA", and no single agency slug covers FAR documents (OFPP only from
about mid-2025; 'federal-acquisition-regulation-system' holds 2 documents
ever). Count FAR rules with search_documents(far_council=True,
doc_types=[...], pub_date_gte/lte=...) and read its count.
Inputs: facet (required), term, agencies, cfr_part, +5 more. Returns: object
get_public_inspectionARead-onlyInspect
Get current public inspection documents (pre-publication).
Public inspection documents are FR documents filed for publication but
not yet published. Updated business days only.
The current-PI endpoint does NOT support server-side filtering. This
tool fetches all current PI documents and filters client-side by
agency and/or keyword in the title.
Useful for getting early notice of upcoming regulatory actions.
Parameters:
- agency_filter: case-insensitive substring match against agency slugs,
names, and short names. Sub-agencies are included: PI documents list
only the FILING sub-agency, so the filter is also matched against the
Federal Register agency list and every agency below a matching one
counts ('defense-department' or 'DOD' also returns Army, Navy, Air
Force, Corps of Engineers and Defense Logistics Agency filings).
filters_applied.includes_sub_agencies says whether that worked.
- keyword_filter: substring match against document titles
- limit: max documents returned after filtering (default 50, max 500).
Unfiltered dumps can exceed 170KB; narrow with filters or raise the cap.
Inputs: limit, agency_filter, keyword_filter. Returns: object
list_agenciesARead-onlyInspect
List agencies with their IDs, names, slugs, and parent agencies.
Use the 'slug' values with search_documents() and other tools.
Common procurement slugs:
- defense-department (DoD)
- general-services-administration (GSA)
- national-aeronautics-and-space-administration (NASA)
- defense-acquisition-regulations-system (DARS/DFARS)
- federal-procurement-policy-office (OFPP and the CAS Board)
- small-business-administration (SBA)
- veterans-affairs-department (VA)
The FAR has no single slug. FAR rules and notices are filed jointly
under DoD, GSA and NASA; OFPP was added only from about mid-2025, so
the OFPP slug misses earlier FAR rules. The agency named 'Federal
Acquisition Regulation System' (federal-acquisition-regulation-system)
holds 2 documents ever; it carries a note in these results. For FAR
documents use search_documents(far_council=True) or
open_comment_periods(far_council=True).
Parameters:
- query: optional case-insensitive substring match against name, short_name,
and slug. Recommended: narrow results before pulling full detail.
- include_detail: if False (default), returns only id/name/short_name/slug/parent_id.
If True, returns all fields (description, urls, etc.). The full dump is ~700KB.
Inputs: query, include_detail. Returns: object
open_comment_periodsARead-onlyInspect
Find source-reported open comment periods, soonest indexed deadline first.
Covers proposed rules, notices, AND final/interim rules that accept
comments (dozens of RULE-type documents have open periods at any time).
Queries for comment close date >= today, scans up to 500 matching
documents oldest-published first (where the soonest deadlines live),
sorts by close date, and returns the first `limit`.
Source scope: total_open is the API's matching metadata count;
scanned is how many this call examined. When total_open exceeds
scanned, narrow with agencies/term for complete indexed coverage. A very
recently published document with an unusually short comment window
can fall outside the scan in that oversubscribed case.
complete means the matching indexed records were scanned, not that every
currently open opportunity or controlling deadline was verified. The API's
comments_close_on metadata can disagree with DATES after an extension or
reopening. Even a zero result needs docket/subject search_documents and
get_document DATES/linked publication checks before ruling out comments.
Default: searches all agencies. Pass agency slugs to narrow scope,
e.g. ['defense-acquisition-regulations-system'] for DFARS or
['general-services-administration'] for GSA and GSAR.
Parameters:
- far_council: True for open FAR proposed rules and FAR information
collections (documents filed jointly by DoD, GSA and NASA; there is no
single FAR agency slug and the OFPP tag only appears from about
mid-2025). Cannot be combined with agencies.
- limit: max documents returned after sorting (default 50, max 100).
Unfiltered dumps across all agencies can approach 200KB; several
broad agencies together (e.g. DoD + GSA) can pass 100KB, so lower
limit for those.
Inputs: term, limit, agencies, far_council. Returns: object
search_documentsARead-onlyInspect
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).
Inputs: page, term, order, agencies, +17 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Federal regulatory intelligence from the Federal Register: search rules and notices, track deadlines
New federal rules, proposed rules and notices for your keywords and agencies.
Electronic Code of Federal Regulations including FAR, DFARS, and agency supplements. 13 tools.
Federal Register monitoring and regulations.gov tracking. 4 MCP tools for regulatory compliance.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables searching and retrieving U.S. Federal Register documents — final and proposed rules, notices, executive orders, and public inspection filings — plus facet counts, agency listings, open comment deadlines, and FAR/DFARS case histories, through eight tools backed by the keyless public API v1.309 npmMIT
- AlicenseAqualityBmaintenanceEnables AI agents to search and track US federal regulations, documents, and executive orders from the Federal Register, with no API keys required.5MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to search and retrieve executive orders, presidential documents, rules, and agency information from the Federal Register API through natural language queries.129 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables querying the US Federal Register API for federal register documents and data through natural language.102 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.