Skip to main content

federal-register-mcp

MCP server for the Federal Register API. Proposed rules, final rules, notices, executive orders, comment periods, and regulatory tracking since 1994.

No authentication required. Use the installation and configuration instructions below to connect this MCP directly.

Tested and hardened through six rounds of integration testing against the live Federal Register API. 228 regression tests (132 offline, 96 live-gated) covering the list_agencies pydantic crash that hit every call, payload bombs, silent-wrong-data docket matches, the pre-2011 archive lockout, and open-comment results that missed the soonest deadlines. See testing.md for the full testing record.

What it does

Exposes the Federal Register API as 8 MCP tools:

Core

  • search_documents - Search with flexible filters (agency, type, term, docket, dates, RIN, CFR title/part)
  • get_document - Full details for a single document by number
  • get_documents_batch - Fetch up to 20 documents in one call
  • get_facet_counts - Document counts by type, agency, topic, or time bucket (daily through yearly)
  • get_public_inspection - Pre-publication documents with client-side filtering
  • list_agencies - All ~470 agencies with slugs

Workflow

  • open_comment_periods - Currently open comment periods (sorted by deadline)
  • far_case_history - Full rulemaking history for a FAR/DFARS case

No authentication required

The Federal Register API is fully public. No key, no registration.

Installation

uvx federal-register-mcp

Configuration

Use the configuration below as the server definition and adapt its placement to your compatible MCP client. For practical requests using this source, see the prompt library.

{
  "mcpServers": {
    "federal-register": {
      "command": "uvx",
      "args": ["--refresh-package", "federal-register-mcp", "--from", "federal-register-mcp", "federal-register-mcp"]
    }
  }
}

The --refresh-package flag tells uv to check PyPI for a newer release each time your client launches the server, so fixes arrive automatically; without it, uv keeps serving whatever version it first cached. It adds a moment of network time at startup, so raise your platform's MCP startup timeout if it enforces a short one.

Restart the client and the tools appear.

Example prompts

  • "What FAR cases have open comment periods right now?"
  • "Show me the full rulemaking history for FAR Case 2023-008."
  • "Find all proposed rules from DoD published in the last 6 months."
  • "What significant rules has GSA published this fiscal year?"
  • "Are there any pre-publication documents related to procurement today?"
  • "How many proposed rules vs final rules has the SBA published since January?"
  • "Find executive orders related to federal acquisition from the last year."

Companion tools

  • ecfr-mcp: what the regulation currently says (the book)
  • federal-register-mcp: what is changing (the newspaper)

Together they cover the full regulatory pipeline. Use far_case_history to trace a rulemaking from proposal through final rule, then ecfr-mcp to read the codified result.

Request pacing

The default safeguard allows up to 500 upstream request attempts per rolling five minutes, with starts spaced at least 0.6 seconds apart and at most two requests in flight. This is a 1102tools policy tested against Federal Register, not a published provider quota or a guaranteed tool-call rate. A tool may make more than one upstream request, and upstream latency can reduce throughput.

Local processes sharing FEDERAL_API_PACING_DIR share the budget. The hosted service has its own budget shared by its users. Its separate HTTP entrance limit is 120 requests per minute per IP and Cloudflare location, including protocol requests that do not call the upstream API. Other MCP services have separate budgets.

Attempts remain counted on failure or cancellation, and Retry-After extends a shared cooldown. Set FEDERAL_API_MIN_INTERVAL_SECONDS above 0.6 to slow requests; positive values below 0.6 are clamped. Explicit 0 disables pacing for offline tests or externally managed clients. Hosted deployments use 0.6. State is local to the pacing directory and does not survive its deletion or a hosted container replacement. Do not run old and new pacing implementations against the same directory concurrently.

License

MIT

Release files for federal-register-mcp 1.0.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for federal-register-mcp 1.0.8
File Size Uploaded
federal_register_mcp-1.0.8.tar.gz 129.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for federal-register-mcp 1.0.8
File Interpreter ABI Platform
federal_register_mcp-1.0.8-py3-none-any.whl Python 3 none any Details

Total release size: 151.8 kB

Release files / federal_register_mcp-1.0.8.tar.gz

Download URL federal_register_mcp-1.0.8.tar.gz
Size 129.2 kB
Tags Source
SHA-256 checksum
How to use checksums
5ee84885068807385e9bb1b804a8f837358113d1f5d190e7459f53550db90307
BLAKE2b-256 checksum
How to use checksums
d97f3ed12acde578cd92c217f083cb2623ef98328ef5b37c476cc37c67dc74b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.

Transparency log

Release files / federal_register_mcp-1.0.8-py3-none-any.whl

Download URL federal_register_mcp-1.0.8-py3-none-any.whl
Size 22.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e1293188aa5ff3918b0428039bce9313d164d212a4aae1928eba54ebfc29bbe4
BLAKE2b-256 checksum
How to use checksums
41607d733525f8714bccd735114c560deb699685b1b0c31b9ab796bb5b109e65
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 13, 2026.

Transparency log

Release history Release notifications | RSS feed

1.0.9

2 release files

This release

1.0.8 This release

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page