What eCFR.io Federal Regulations MCP server does
The eCFR.io Federal Regulations MCP server exposes read-only access to US Code of Federal Regulations content through the eCFR.io service. Agents can search by citation or text, retrieve regulation documents, and list CFR titles. Results include excerpts or document text, dates, navigation links, and citation fields that point back to eCFR.io.
The service is intended for workflows that need regulatory source material with citations preserved in the response. It does not modify content, and its tools are marked read-only, non-destructive, and idempotent. No API key or other credential is required.
How it works
The hosted deployment is available over Streamable HTTP at https://ecfr.io/mcp. It is stateless: clients do not receive or need a session ID, and authentication is not used. Clients that accept URL-based MCP configuration can point their server entry at this endpoint.
A local adapter uses Node.js and communicates through stdio. The adapter calls the public eCFR.io API, while the production Worker uses the shared tool definitions with direct corpus access. Tool responses include both normal text and structured data under structuredContent.data. Protocol output from the local process is written to stdout; request failures are returned as MCP tool errors.
Setup and configuration
For hosted use, configure the client’s Streamable HTTP transport with the eCFR.io MCP URL. For local use, install Node.js 20 or newer, clone the repository, run npm ci, build with npm run build, and start the adapter. A stdio client then points to dist/stdio.js using an absolute path and the node command.
The optional ECFR_ORIGIN variable changes the HTTPS deployment used by the local adapter. It defaults to https://ecfr.io; localhost HTTP is permitted for development. The repository also includes a Dockerfile that runs the stdio adapter. No credentials are needed for either deployment mode.
Tools and capabilities
search_regulations accepts a query and an optional result limit from 1 to 25, defaulting to 10. It returns citation or full-text matches, excerpts, and linked citations.
get_regulation accepts a document path plus optional offset and length values. It returns regulation text, dates, linked citations, and child navigation.
list_titles takes no input and returns CFR titles with dates and canonical links.
Searches can use queries such as 31 CFR 10.1; document retrieval uses paths such as /Title-31/Section-10.1. The ecfr://citation-guide resource and cite_regulations prompt provide citation guidance. Citation fields include inlineCitation and legalCitation, and legal citations include the body’s source date. Preserve the supplied eCFR.io URL and paragraph identifiers when citing regulatory material.
Limitations and notes
Document responses default to 20,000 characters and allow at most 60,000 characters per request. For longer documents, follow nextOffset until it is null; complete is true only when one response contains the entire document. Parent nodes may provide child links instead of body text.
Search returns no more than 25 matches from the currently imported corpus, so it should not be treated as exhaustive legal research. Before quoting a search excerpt, retrieve the regulation itself. Check sourceDate, currentAsOf, bodyAsOf, and stale, and do not describe stale fallback content as current.
The eCFR.io Federal Regulations MCP server uses an independent mirror. The daily eCFR is an unofficial editorial compilation rather than the official legal edition. When legal authority matters, consult the returned official source and relevant official CFR or Federal Register materials. The software is licensed under MIT; that license does not claim rights over federal regulatory content.