docket-mcp
You can use docket-mcp to search and read federal rulemaking dockets and their documents on Regulations.gov via an MCP agent.
Check server health and API key configuration without a network call (
ping).Full-text search dockets by query, with optional agency filter and pagination (
search_dockets).Fetch a docket's full metadata by exact ID: title, agency, type, abstract, keywords, RIN, last modified (
get_docket).List documents filed in a docket by ID: type, posted date, Federal Register number, comment status, withdrawal status (
list_documents).Read-only access; no comment submission, no document full text, and search covers dockets only.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@docket-mcp What is in the BIS docket on AI reporting requirements and is it still open for comment?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
docket-mcp
An MCP server for Regulations.gov. It gives an LLM agent read access to federal rulemaking: search dockets, fetch a docket's abstract and metadata, and list the documents filed in it. Built for agents that answer questions like "what is in the BIS docket on AI reporting requirements and is it still open for comment?"
Quickstart
You need a free Regulations.gov API key from api.data.gov. DEMO_KEY works for light use.
pip install git+https://github.com/ColtonShawProctor/docket-mcp
export REGULATIONS_GOV_API_KEY=your-key-here
docket-mcpClaude Code:
claude mcp add docket -e REGULATIONS_GOV_API_KEY=your-key-here -- docket-mcpClaude Desktop or Cursor (mcpServers in the client config):
{
"mcpServers": {
"docket": {
"command": "docket-mcp",
"env": { "REGULATIONS_GOV_API_KEY": "your-key-here" }
}
}
}Related MCP server: regulationsgov-mcp
Getting an API key
Request a free key at api.data.gov (the signup takes about a minute) and set it as REGULATIONS_GOV_API_KEY in your environment or in the MCP client config shown above.
If you skip this, DEMO_KEY works for a quick try, but it shares a low hourly limit with everyone else using it, so real use rate-limits fast. The server retries with backoff when that happens, but the honest fix is a personal key: same API, same data, a far higher limit. The fixtures in tests/ were recorded with DEMO_KEY, which is also why the tests never call the API at all.
Tools
This section is written for both humans and the models that call the tools. The short version a model needs: start with search_dockets, take an id from the results, and hand it to get_docket or list_documents. Never guess docket IDs. If every call fails, call ping and check api_key_configured.
ping
Health and configuration check. No network call. Returns the server version, the API base URL, and whether an API key is configured, plus the env var name to set if it is not.
search_dockets(query, page=1, page_size=20, agency_id=None)
Full-text search of dockets. Returns total, paging fields, and a dockets list of summaries: id, title, docket_type (Rulemaking or Nonrulemaking), agency_id, last_modified, and match_context, a plain-text snippet showing why the docket matched (the API's HTML highlighting is stripped before it reaches the model). agency_id filters to one agency, for example "EPA" or "BIS".
Real output, produced from a response recorded from the live API (trimmed):
{
"query": "artificial intelligence",
"total": 68,
"page": 1,
"page_size": 5,
"has_next_page": true,
"dockets": [
{
"id": "BIS-2024-0047",
"title": "Establishment of Reporting Requirements for the Development of Advanced Artificial Intelligence Models and Computing Clusters",
"docket_type": "Rulemaking",
"agency_id": "BIS",
"last_modified": "2024-10-22T15:46:37Z",
"match_context": "Data Collections regulations by establishing reporting requirements for the development of advanced artificial intelligence (AI) models [...]"
}
]
}get_docket(docket_id)
One docket's full detail: id, title, agency_id, docket_type, abstract (the docket's own summary of the rulemaking), keywords, rin (Regulation Identifier Number), and last_modified. An unknown ID is a clear not-found error carrying the API's message.
list_documents(docket_id, page=1, page_size=20)
The documents filed in a docket: id, title, document_type (Proposed Rule, Rule, Notice, Supporting & Related Material, and so on), posted_date, fr_doc_num (Federal Register document number), open_for_comment, comment_end_date, and withdrawn. A docket ID that matches nothing yields an empty list, not an error; that is the API's recorded behavior, not an assumption.
Errors a model may see
Malformed IDs (wrong characters, lookalike unicode, path separators) are rejected locally with a message showing the expected shape. No request is sent.
pagebeyond 20 orpage_sizeoutside 5 to 250 are the API's own limits, rejected locally with the limit in the message. Narrow the query instead of paging deeper.Rate limiting is retried automatically with backoff, honoring the server's
Retry-After. If the limit is still exceeded after retries, the error says the limit is hourly, so retrying immediately is pointless.
Data source notes
The upstream is the Regulations.gov v4 API. Keys are issued through api.data.gov and rate limits are hourly per key; DEMO_KEY has a much lower limit than a personal key. Search results are capped by the API at page 20, with up to 250 results per page. Transient gateway errors (500, 502, 503, 504) are retried with capped exponential backoff.
Testing
pytest runs 39 tests in well under a second and never touches the network. The fixtures in tests/fixtures/ are verbatim response bodies recorded from the live API on 2026-09-08, so the parsers are tested against actual field shapes rather than invented ones. The retry suite injects the sleep function and asserts exact request and delay sequences; reverting the retry loop turns five tests red, which was verified, not assumed.
pip install -e '.[dev]'
pytestLimitations
Read-only. No comment submission, and none planned.
No document full text yet.
get_document_text(PDF and HTML extraction) and a chunking tool for RAG consumers are the next milestone.No comment retrieval yet.
Search covers dockets only; the API's document and comment search endpoints are not exposed yet.
License
MIT.
Available Tools
4 toolsget_docketA
Fetch one docket's full detail from Regulations.gov by its exact ID.
Returns id, title, agency_id, docket_type, abstract (the docket's own summary of what the rulemaking does), keywords, rin (Regulation Identifier Number), and last_modified. Raises a not-found error for an ID that does not exist; get IDs from search_dockets rather than guessing them.
Args: docket_id: Exact docket ID, e.g. "BIS-2024-0047".
Inputs: docket_id (required).
list_documentsA
List the documents filed in one Regulations.gov docket.
Returns document summaries: id, title, document_type (Proposed Rule, Rule, Notice, Supporting & Related Material, ...), posted_date, fr_doc_num (Federal Register document number), open_for_comment, comment_end_date, and withdrawn. A docket ID that matches nothing yields an empty list, not an error.
Args: docket_id: Exact docket ID, e.g. "BIS-2024-0047". page: Result page, 1 to 20 (API limit). page_size: Results per page, 5 to 250.
Inputs: docket_id (required), page, page_size.
pingA
Report server health and configuration status without calling the API.
Use this first if other tools fail: it tells you whether an API key is configured at all, which is the most common failure cause.
Inputs: no named parameters.
search_docketsA
Full-text search of federal rulemaking dockets on Regulations.gov.
Returns docket summaries: id, title, docket_type (Rulemaking or Nonrulemaking), agency_id, last_modified, and match_context (a plain-text snippet showing why the docket matched). Use the returned id with get_docket for the abstract or list_documents for its documents.
Args: query: Search terms, e.g. "artificial intelligence reporting". page: Result page, 1 to 20 (API limit; narrow the query instead of paging deeper). page_size: Results per page, 5 to 250. agency_id: Optional agency filter, e.g. "EPA" or "BIS".
Inputs: query (required), page, agency_id, page_size.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a distinct role: ping is health-only, search_dockets is the fuzzy query entry point, get_docket is exact-ID detail lookup, and list_documents returns child documents. The descriptions explicitly cross-reference IDs, so an agent should not confuse which tool to call.
The three data tools follow a clean verb_noun snake_case pattern: search_dockets, get_docket, list_documents. ping is a conventional health-check exception, but it is the only minor deviation and does not create confusion.
Four tools are well-scoped for a docket-browsing server: health check, search, detail lookup, and document listing. There is no redundancy, and the count fits comfortably within an appropriate MCP server size.
The core docket workflow is covered end-to-end: search dockets, fetch full docket details, and list the documents within a docket. The main gap is the absence of a per-document detail/search tool, so deeper document-level retrieval is not possible.
Maintenance
Related MCP Connectors
Search and trace US federal rules across the Federal Register, eCFR, and Regulations.gov.
US Federal Register for AI agents: rules, notices, executive orders, agency lookup. No keys.
US Federal Register for AI agents: rules, notices, executive orders, agency lookup. No keys.
Read a CFR or eCFR section, or search US federal regulations and the Federal Register.
Related MCP Servers
- 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 gradedqualityNot gradedmaintenanceEnables interaction with the Regulations.gov API to search federal rulemaking dockets, proposed and final rules, public comments, and comment periods. Supports tracking FAR/DFARS case histories and monitoring open comment periods across federal agencies with optional API key authentication for higher rate limits.MIT
- AlicenseNot gradedqualityCmaintenanceEnables access to federal regulatory dockets, documents, and public comments from Regulations.gov via tools like get_docket and get_comment.314 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables querying the US Federal Register API for federal register documents and data through natural language.102 npmMIT