US Code of Federal Regulations

io.github.mccallarPublished by GitHub account mccallarv0.2.2Updated Oct 24, 2026

Look up, search, and track changes to the US Code of Federal Regulations (eCFR).

The publisher's own server: Regulations.ai — Global AI Law Tracker

Overview

AI-generated overview

Local MCP server that lets an assistant look up, search and track changes in the US Code of Federal Regulations (eCFR) with citations.

What you can do
  • Look up the text of a CFR citation, including part and subpart level
  • Search regulations full text and see which titles contain a term, with hit counts
  • Browse the hierarchy of a title or part and map agencies to the titles they administer
  • Track amendment history and the Federal Register rules behind each change
  • Diff a citation's text between two dates and read the CFR as it stood on a given date
When to use it
Useful when you need actual regulation text and citations rather than a plausible guess, for example checking what a section requires or whether a part changed since a given year. Fits regulatory research, compliance drafting and policy questions about US federal rules.
Requirements
Runs locally over stdio as a Python package (cfr-mcp) via uvx; requires Python 3.11 or later. No API key, since the eCFR and Federal Register APIs are open. Needs network access to those APIs and writes a disk cache under ~/.cache/cfr-mcp, relocatable with CFR_MCP_CACHE_DIR.
Before you install
Unofficial community project, not affiliated with the Office of the Federal Register, NARA or GPO, and maintained by one person as-is. The eCFR text is authoritative but unofficial, so legal research should be verified against the official CFR, the daily Federal Register and the LSA. It returns regulation text only, not legal advice, and does not include standards incorporated by reference.

Installation

In SourceWeft

  1. Open US Code of Federal Regulations in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

cfr-mcp

[CI] [PyPI]

An MCP server that gives AI assistants access to the US Code of Federal Regulations.

Ask "what does 21 CFR 101.9 require?" or "has 40 CFR 261 changed since 2023?" and get the actual regulation text, with citations, instead of a plausible-sounding guess.

Unofficial community project. Not affiliated with or endorsed by the Office of the Federal Register, NARA, or GPO, and uses no government seals or logos.

Maintained by one person as a personal project and provided as-is (MIT). Issues and pull requests are welcome but may not get a quick response. To report a security issue, see SECURITY.md.

Install

Requires Python 3.11+. No API key — the eCFR and Federal Register APIs are open.

Claude Code:

bash
claude mcp add cfr -- uvx cfr-mcp

Any other MCP client:

json
{  "mcpServers": {    "cfr": {      "command": "uvx",      "args": ["cfr-mcp"]    }  }}

Tools

ToolWhat it does
lookup_citationText of a citation — 21 CFR 101.9, 40 CFR 261.4(b)(1), 40 CFR Part 261 Subpart C
search_regulationsFull-text search; returns citations and snippets, never bodies
where_does_term_appearWhich titles contain a term, with hit counts. Fetches no text
browse_structureThe hierarchy of a title or part, no text
what_changedAmendment history for a citation, linking each change to the Federal Register rule that caused it, plus published corrections
compare_versionsDiff of a citation's text between two dates — see exactly what an amendment changed
list_agenciesMaps agency names to the CFR titles they administer

Point-in-time works throughout: pass date as YYYY-MM-DD to read the CFR as it stood.

Design notes

Context budget is the whole game. The eCFR full endpoint returns an entire downloadable XML document for a title-level request. Every tool here caps output and degrades to an outline rather than dumping text into the model's context. Title-level XML requests are refused outright.

Dates must be resolved, not assumed. Versioner routes 404 on dates that aren't valid issue dates for a title, so the client resolves through titles.json first rather than passing today's date blindly.

Caching is courtesy. The eCFR publishes no rate limit and has no key to identify callers politely, so the client caches to disk (historical dates forever, since point-in-time content is immutable) and self-limits concurrency. The cache lives in ~/.cache/cfr-mcp (respects XDG_CACHE_HOME); set CFR_MCP_CACHE_DIR to relocate it.

Legal

Regulation text is free to reproduce. 1 CFR 2.6 states that any person may reproduce or republish material appearing in the Federal Register, with no restrictions on what is reproduced, who reproduces it, or where. Federal government works are also outside copyright under 17 U.S.C. §105.

Incorporation by reference. Some CFR sections incorporate private standards (ASTM, NFPA, ASHRAE) whose copyright status after incorporation remains unsettled. The eCFR does not contain the text of those standards and neither does this server — it returns the citation only. Obtain standards from the issuing organization or the Office of the Federal Register reading room.

Status of the text. The eCFR is authoritative but unofficial. Anyone relying on it for legal research should verify against the current official CFR, the daily Federal Register, and the List of CFR Sections Affected (LSA).

Not legal advice. This is a retrieval tool. It returns the text of regulations; it does not tell you whether you are compliant with them.

Development

bash
uv sync --extra devuv run pytest

MIT licensed.

Source: README.md at commit 6a03cc8

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.2.2LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

Other Regulations integrations