Skip to main content
Glama

Server Details

Federal Register proposed and final rules, notices, executive orders, and FAR cases. 8 tools.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
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

A4.6/5.0

Scored across 8 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness4/5

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 tools
far_case_historyA
Read-only
Inspect

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_documentA
Read-only
Inspect

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_batchA
Read-only
Inspect

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_countsA
Read-only
Inspect

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_inspectionA
Read-only
Inspect

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_agenciesA
Read-only
Inspect

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_periodsA
Read-only
Inspect

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_documentsA
Read-only
Inspect

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

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables 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 npm
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables AI assistants to search and retrieve executive orders, presidential documents, rules, and agency information from the Federal Register API through natural language queries.
      12
      9 npm
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.