FRTracker — Federal Regulatory Research
Source-linked US federal regulations: CFR provision history, obligations, rules, comments.
Should I use this
Quality & Safety
Findings (3)
- LOWin lookup_provision
- LOWin get_requirement
- LOWin get_rule_comments
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"regulatory-research": {
"url": "https://frtracker.app/mcp"
}
}
}Remote endpoints
https://frtracker.app/mcpstreamable-httpWhat it can do
Tool inventory
Tools (10)
🟢lookup_provision(q, as_of)
Look up a CFR provision by citation (e.g. "21 CFR 1304.04") or by an exact quotation, optionally as of a past date. Returns the provision text with a ProvisionEvidence object (source, snapshot date, hashes). Explicitly reports ambiguity or no-match instead of guessing. Requires a free API key.
Input Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Citation (\"21 CFR 1304.04\") or an exact quote from regulatory text"
},
"as_of": {
"type": "string",
"description": "Optional YYYY-MM-DD snapshot upper bound (not in the future)"
}
},
"required": [
"q"
]
}🟢get_provision_history(canonical_id)
Documented change history for a CFR provision by canonical id (e.g. "21-cfr-1304.04(a)"): before/after text, computed redline, observed dates, and candidate final rules. 404 when the provision is not in the documented-change set — absence of a documented change is not a claim that nothing changed. No API key required.
Input Schema
{
"type": "object",
"properties": {
"canonical_id": {
"type": "string",
"description": "Canonical provision id, e.g. \"21-cfr-1304.04(a)\""
}
},
"required": [
"canonical_id"
]
}🟢rules_amending(title, part, section, limit)
Which final rules amend a CFR part or section, read from each rule's own amendatory instructions ("Amend § 52.2120 by..."). Returns the rules, the sections each addresses, and dates. This reports what a rule SAYS it amends — it is not an attribution of any observed text change to that rule. Covers 2020-present; absence means not indexed, not that no rule amended it. No API key required.
Input Schema
{
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "CFR title number, e.g. \"40\""
},
"part": {
"type": "string",
"description": "CFR part, e.g. \"52\""
},
"section": {
"type": "string",
"description": "Optional section id, e.g. \"52.2120\". Omit for all rules touching the part."
},
"limit": {
"type": "integer",
"description": "Max rules (default 50, max 200)"
}
},
"required": [
"title",
"part"
]
}🟢recent_cfr_changes(limit)
Most recent detected changes to CFR text (title, part, name, dates), newest first. No API key required.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "Max rows (default 50, max 200)"
}
}
}🟢get_stats
Aggregate corpus statistics: documents, obligations, pairs, agencies, coverage dates. No API key required.
Input Schema
{
"type": "object",
"properties": {}
}🟢search_regulations(q, tab, limit, page)
Full-text search over Federal Register documents and extracted obligations (FTS5/BM25). Totals are approximate (total_exact: false). Requires an API key.
Input Schema
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search query (min 3 chars)"
},
"tab": {
"type": "string",
"enum": [
"all",
"fr",
"obligations"
],
"description": "Result type (default all)"
},
"limit": {
"type": "integer",
"description": "Max results (default 25, max 50)"
},
"page": {
"type": "integer",
"description": "Page number (default 1)"
}
},
"required": [
"q"
]
}🟢list_rules(agency, type, pathway, docket, limit, ...)
List Federal Register documents with filters: agency slug, document type, rulemaking pathway (interim_final/temporary/direct_final = notice-and-comment bypass classes), or docket id. Requires an API key.
Input Schema
{
"type": "object",
"properties": {
"agency": {
"type": "string",
"description": "Agency slug, e.g. \"environmental-protection-agency\""
},
"type": {
"type": "string",
"enum": [
"final_rule",
"proposed_rule",
"notice",
"correction"
],
"description": "Document type"
},
"pathway": {
"type": "string",
"enum": [
"interim_final",
"temporary",
"direct_final",
"final",
"other"
],
"description": "Rulemaking pathway"
},
"docket": {
"type": "string",
"description": "Docket id"
},
"limit": {
"type": "integer",
"description": "Max rows (default 25, max 100)"
},
"page": {
"type": "integer",
"description": "Page number (default 1)"
}
}
}🟢list_obligations(agency, deontic, q, limit, page)
List extracted regulatory obligations ("who must do what") with filters: agency, deontic class, free text. Obligations are machine-extracted with quality tiers; they are not legal advice. Requires an API key.
Input Schema
{
"type": "object",
"properties": {
"agency": {
"type": "string",
"description": "Agency slug"
},
"deontic": {
"type": "string",
"enum": [
"MUST",
"MUST_NOT",
"SHOULD",
"MAY",
"EXEMPT"
],
"description": "Deontic class"
},
"q": {
"type": "string",
"description": "Full-text filter within obligations"
},
"limit": {
"type": "integer",
"description": "Max rows (default 25, max 100)"
},
"page": {
"type": "integer",
"description": "Page number (default 1)"
}
}
}🟢get_requirement(id)
Detail for one extracted obligation by id, including its source rule and citation URL. Requires an API key.
Input Schema
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Requirement id"
}
},
"required": [
"id"
]
}🟢get_rule_comments(doc, offset)
Public comments for a Federal Register document (organization, title, date, body where available). Coverage is partial and stated in the response. Requires an API key.
Input Schema
{
"type": "object",
"properties": {
"doc": {
"type": "string",
"description": "Federal Register document number, e.g. \"2024-12345\""
},
"offset": {
"type": "integer",
"description": "Row offset for pagination"
}
},
"required": [
"doc"
]
}Recommended Prompts
search_regulationssearch_regulationsget_provision_historyget_provision_historylist_rulesCommunity
Evidence