About docketwatch
docketwatch provides MCP tools and a CLI for querying the public rulemaking record through Regulations.gov API v4. It serves people tracking federal dockets, documents, comments, and open comment periods, returning the API’s JSON data.
Key features
- 01Search documents, comments, and dockets
- 02Retrieve document, comment, and docket details
- 03List open comment periods by closing date
- 04Fetch paginated FAR/DFARS case history
- 05Check API key configuration status
Use cases
- 01Track documents and comments for an agency or docket
- 02Find dockets and inspect their metadata
- 03Monitor comment periods that have not closed
- 04Review documents associated with a FAR/DFARS case
MCP support
The MCP server exposes nine tools for searching and retrieving Regulations.gov records, checking access configuration, and composing open-comment-period and FAR/DFARS case-history results. Data requests require a free `REGULATIONS_GOV_API_KEY`.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
Tools
9Saved tool list · updated 1w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| sort | string | No | Sort order for the results (optional). |
| agency_id | string | No | Identifier of the agency. |
| docket_id | string | No | Identifier of the docket. |
| page_size | integer | No | Number of results per page (optional). |
| page_number | integer | No | Page number for paginated results (optional). |
| posted_date | string | No | The posted date for this call. |
| search_term | string | No | Search term. |
| posted_date_gte | string | No | The posted date gte for this call. |
| posted_date_lte | string | No | The posted date lte for this call. |
| last_modified_date_gte | string | No | The last modified date gte for this call. |
Details
From the project READMEdocketwatch
Follow the federal rulemaking record without living in a browser tab. docketwatch talks to the Regulations.gov API v4 — the public record of dockets, documents and public comments behind rules published by US agencies — and answers with the API's own JSON, so a search result here is the same payload you would get from the API directly.
You will need a free api.data.gov key:
export REGULATIONS_GOV_API_KEY="<your key>"
Get one at https://api.data.gov/signup. The key goes out
as the X-Api-Key header on every data call. If the
variable is unset the server still starts and lists its
tools, but every data tool replies with setup
instructions and makes no request at all — handy for
checking that a client is wired up before a key exists.
get_access_status is the exception: it never calls
out and reports only {"configured": true} or
{"configured": false}, never the key itself. The base
URL defaults to https://api.regulations.gov/v4 and
can be overridden with REGULATIONS_GOV_API_BASE.
The nine tools:
search_documents— find documents (proposed rules, rules, notices, supporting material) by keyword, agency, docket and posted/modified date windows.get_document_detail— one document in full; passinclude_attachments: trueto ask the API to include its attachments.search_comments— search the public comments by keyword, agency, docket, or the document commented on.get_comment_detail— one comment's full text and submitter information.search_dockets— search rulemaking and nonrulemaking dockets by keyword or agency.get_docket_detail— one docket's metadata, abstract and RIN.open_comment_periods— composition (labelled): not a single API call. It pages through documents posted in the last 180 days (the scan window is a local choice), keeps those whose comment period ends today or later, and returns them soonest-closing first alongsidecompleteandtruncatedflags.far_case_history— composition (labelled): fetches a FAR/DFARS case docket (for exampleFAR-2023-0008) together with every page of that docket's documents, concatenated, plus acompleteflag saying whether all pages were read.get_access_status— the key check described above.
Search arguments are flat names that map onto the
API's documented filter[...] parameters, with sort,
page[number] and page[size] for ordering and
paging. Filter values are case-sensitive — the API
treats EPA and epa differently — and docketwatch
passes them through unchanged.
One honest gap: the API documentation used for this build does not pin a document-type or docket-type filter parameter name, so no type filter argument is exposed. Keyword, agency, docket and date filters cover the documented surface.
CLI
Each tool is a subcommand taking one JSON argument
string (get_access_status takes none):
npx @reneturcios/docketwatch search_documents '{"agency_id":"EPA","search_term":"emissions"}'
npx @reneturcios/docketwatch get_document_detail '{"document_id":"EPA-HQ-OAR-2020-0001-0001","include_attachments":true}'
npx @reneturcios/docketwatch search_comments '{"docket_id":"EPA-HQ-OAR-2020-0001"}'
npx @reneturcios/docketwatch open_comment_periods '{"agency_id":"EPA","limit":20}'
npx @reneturcios/docketwatch far_case_history '{"case_number":"FAR-2023-0008"}'
npx @reneturcios/docketwatch get_access_status
npx @reneturcios/docketwatch --version
Output is the tool's result text (JSON for every
tool). Exit codes: 0 on success, 1 on a runtime
error (including a validation, missing-key or upstream
failure), 2 on a usage error.
MCP server
npx -y @reneturcios/docketwatch mcp
MCP client config:
{
"mcpServers": {
"docketwatch": {
"command": "npx",
"args": ["-y", "@reneturcios/docketwatch", "mcp"],
"env": {
"REGULATIONS_GOV_API_KEY": "<your key>"
}
}
}
}
Docker
docker run -i -e REGULATIONS_GOV_API_KEY="<your key>" ghcr.io/cloudcorprecords/docketwatch
docker run --rm -e REGULATIONS_GOV_API_KEY="<your key>" ghcr.io/cloudcorprecords/docketwatch get_access_status
Development
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (fake fetch + fake clock, no network)
npm run dev # run the CLI from source
License
MIT — Copyright (c) 2026 Rene Turcios
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.