# Federal Register: Rules, Proposed Rules, Exec Orders (`andrew_avina/federal-register-mcp`) Actor

Track every federal rule, proposed rule, and executive order (95K+ docs/yr). Filter by agency, type, keyword, CFR part, comment period. MCP-native: 'What EPA rules went final this quarter?' or 'Open comment periods in financial services?' Updated daily.

- **URL**: https://apify.com/andrew\_avina/federal-register-mcp.md
- **Developed by:** [Andrew Avina](https://apify.com/andrew_avina) (community)
- **Categories:** MCP servers, Business
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## federal-register-mcp

**Every rule, proposed rule, and executive order in a queryable API — track regulatory activity for any agency.**

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-brightgreen)](https://apify.com/store)
[![Pricing](https://img.shields.io/badge/Pricing-from%20%240.50%2F1k%20results-blue)](https://apify.com/pricing)
[![Data Source](https://img.shields.io/badge/Data-FederalRegister.gov-orange)](https://www.federalregister.gov)
[![Category](https://img.shields.io/badge/Category-Regulatory%20%2F%20Compliance-purple)](https://apify.com/store)
[![MCP Ready](https://img.shields.io/badge/MCP-Server%20Ready-red)](https://modelcontextprotocol.io)

---

### What Is This?

The Federal Register publishes **more than 70,000 documents per year** — final rules, proposed rules, notices, executive orders, and presidential proclamations — representing the complete output of federal regulatory activity. Every agency action that affects your business, clients, or policy area passes through these pages first. But monitoring the Federal Register manually means setting up keyword alerts, reading dense regulatory prose daily, and trying to track comment deadlines across dozens of dockets simultaneously. Compliance teams at regulated companies pay $20,000+ per year for platforms that do exactly this.

This actor wraps the FederalRegister.gov public API into three powerful search modes. **Keyword + filter search** returns documents matching your query filtered by document type, agency, date range, and comment status. **Agency activity summary** returns a structured view of everything a specific agency has published in a given period — useful for regulatory strategy and lobbying. **Docket tracker** monitors a specific rulemaking docket number and returns all associated documents in chronological order. Output is normalized JSON with every critical field: document number, title, type, agency names, publication date, comment deadline, and direct URL to the full document.

It runs in **Batch mode** for scheduled regulatory monitoring pipelines and **MCP server mode** for live regulatory research inside Claude Desktop or any MCP-compatible AI agent. Compliance officers use it to catch rules before comment periods close. Regulatory lawyers use it to build agency activity dossiers. Policy analysts and lobbyists use it to understand regulatory intent and track rulemaking timelines.

---

### Who Uses This

**Corporate Compliance Officers**
You manage regulatory compliance for a fintech company. You need to know within 24 hours when any federal financial regulator (CFPB, OCC, FinCEN, SEC, CFTC) publishes a proposed rule that touches payment processing, money transmission, or consumer lending. Currently you rely on a vendor's email digest — which covers major rules but misses agency-specific notices. This actor lets you run a daily query that catches every document type, not just final rules, before the comment window opens.

**Regulatory Affairs Lawyers**
You're preparing a comment letter for a client on a proposed OSHA rule affecting warehouse safety. You need the complete docket history: the original ANPRM, the NPRM, all associated notices, and any interim final rules. The docket tracker mode gives you every document in the rulemaking sequence in one call — no manual FR searching, no missed documents.

**Government Affairs / Lobbyists**
You represent a trade association in the agricultural chemicals space. Your job is to know what EPA is planning before the rules land. Agency activity summary mode gives you a full inventory of EPA's regulatory output for any 90-day window — categorized by rule type — so you can brief your board on what's coming and when.

**Policy Analysts and Think Tank Researchers**
You're writing a report on the pace of financial deregulation across administrations. You need comparable Federal Register data — number of final rules, proposed rules, and significant rulemakings — for the CFPB across multiple fiscal years. This actor returns that data structured and ready to analyze without any manual data collection.

**AI Agent Developers Building Regulatory Intelligence Tools**
You're building a compliance AI assistant that needs to answer "are there any open comment periods on cryptocurrency regulations right now?" This actor's MCP interface gives your agent live, accurate Federal Register data — not hallucinated regulatory timelines.

---

### Key Features

| Feature | Detail |
|---|---|
| Data coverage | 70,000+ Federal Register documents per year |
| Data source | FederalRegister.gov public API (official GPO data) |
| Document types | Rule, Proposed Rule, Notice, Presidential Document |
| Search mode 1 | Keyword + filter (type, agency, date range, comment status) |
| Search mode 2 | Agency activity summary (all documents by agency + period) |
| Search mode 3 | Docket tracker (all documents by docket number) |
| Comment deadline tracking | Returns `comments_close_on` for all open rules |
| Historical depth | Full text search back to 1994; metadata back to 1936 |
| MCP server mode | Live tool-use in Claude Desktop, Claude Code, any MCP client |
| Batch mode | Scheduled monitoring pipelines |
| Full text | Optional full abstract and body text extraction |

---

### Quick Start

#### Batch Mode

**Input (keyword search mode):**
```json
{
  "mode": "batch",
  "search_mode": "keyword",
  "query": "cryptocurrency digital assets",
  "document_types": ["RULE", "PROPOSED_RULE"],
  "agencies": ["Securities and Exchange Commission", "Commodity Futures Trading Commission"],
  "date_from": "2024-01-01",
  "date_to": "2024-12-31",
  "open_for_comment": true,
  "max_results": 25
}
````

**Output (truncated to 2 records):**

```json
[
  {
    "document_number": "2024-09871",
    "title": "Safeguarding Advisory Client Assets; Prohibition on Borrowing of Client Assets",
    "type": "PROPOSED_RULE",
    "agency_names": ["Securities and Exchange Commission"],
    "publication_date": "2024-05-08",
    "comments_close_on": "2024-07-08",
    "docket_ids": ["S7-04-23"],
    "cfr_references": [{"title": 17, "part": 275}],
    "html_url": "https://www.federalregister.gov/documents/2024/05/08/2024-09871/safeguarding-advisory-client-assets",
    "pdf_url": "https://www.govinfo.gov/content/pkg/FR-2024-05-08/pdf/2024-09871.pdf",
    "abstract": "The Securities and Exchange Commission is proposing to amend certain rules..."
  },
  {
    "document_number": "2024-07234",
    "title": "Digital Commodity Exchange Act Implementation: Reporting Requirements",
    "type": "PROPOSED_RULE",
    "agency_names": ["Commodity Futures Trading Commission"],
    "publication_date": "2024-04-10",
    "comments_close_on": "2024-06-10",
    "docket_ids": ["CFTC-2024-0012"],
    "cfr_references": [{"title": 17, "part": 44}],
    "html_url": "https://www.federalregister.gov/documents/2024/04/10/2024-07234/digital-commodity-exchange-act-implementation",
    "pdf_url": "https://www.govinfo.gov/content/pkg/FR-2024-04-10/pdf/2024-07234.pdf",
    "abstract": "The Commodity Futures Trading Commission proposes new reporting requirements..."
  }
]
```

**Input (agency activity summary mode):**

```json
{
  "mode": "batch",
  "search_mode": "agency_summary",
  "agency": "Consumer Financial Protection Bureau",
  "date_from": "2024-01-01",
  "date_to": "2024-06-30"
}
```

**Input (docket tracker mode):**

```json
{
  "mode": "batch",
  "search_mode": "docket",
  "docket_id": "CFPB-2023-0052"
}
```

#### MCP Server Mode

```json
{
  "mcpServers": {
    "federal-register": {
      "command": "npx",
      "args": [
        "apify-actor-mcp",
        "--actor-id", "your-username/federal-register-mcp",
        "--token", "YOUR_APIFY_TOKEN"
      ]
    }
  }
}
```

Then in Claude: *"Are there any proposed rules from the CFPB currently open for public comment?"*

***

### MCP Tools Exposed

#### `search_federal_register`

Full keyword + filter search across Federal Register documents.

```json
{
  "tool": "search_federal_register",
  "arguments": {
    "query": "PFAS drinking water contamination",
    "document_types": ["RULE", "PROPOSED_RULE"],
    "agencies": ["Environmental Protection Agency"],
    "open_for_comment": true,
    "max_results": 20
  }
}
```

#### `get_agency_activity`

Return all documents published by an agency in a date range, grouped by document type.

```json
{
  "tool": "get_agency_activity",
  "arguments": {
    "agency": "Federal Communications Commission",
    "date_from": "2024-01-01",
    "date_to": "2024-06-30",
    "document_types": ["RULE", "PROPOSED_RULE", "NOTICE"]
  }
}
```

#### `track_docket`

Return all Federal Register documents associated with a specific docket number, in chronological order.

```json
{
  "tool": "track_docket",
  "arguments": {
    "docket_id": "EPA-HQ-OW-2022-0114"
  }
}
```

#### `get_document`

Retrieve full document record including abstract, full text reference, and all metadata.

```json
{
  "tool": "get_document",
  "arguments": {
    "document_number": "2024-09871"
  }
}
```

#### `list_open_comment_periods`

Return all documents currently open for public comment, optionally filtered by agency and document type.

```json
{
  "tool": "list_open_comment_periods",
  "arguments": {
    "agencies": ["Department of Labor", "OSHA"],
    "document_types": ["PROPOSED_RULE", "RULE"]
  }
}
```

***

### Input Schema

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `"batch"` | `"batch"` or `"mcp"` |
| `search_mode` | string | `"keyword"` | `"keyword"`, `"agency_summary"`, or `"docket"` |
| `query` | string | — | Keyword search string (mode: keyword) |
| `document_types` | array | all types | `["RULE"]`, `["PROPOSED_RULE"]`, `["NOTICE"]`, `["PRESIDENTIAL_DOCUMENT"]` |
| `agencies` | array | — | Agency names (partial match, multiple supported) |
| `agency` | string | — | Single agency name (mode: agency\_summary) |
| `docket_id` | string | — | Docket number (mode: docket) — e.g., `"EPA-HQ-OW-2022-0114"` |
| `date_from` | string | — | ISO 8601 publication date start |
| `date_to` | string | — | ISO 8601 publication date end |
| `open_for_comment` | boolean | `false` | Return only documents with open comment periods |
| `comment_deadline_within_days` | integer | — | Return only documents with comment deadlines within N days |
| `cfr_title` | integer | — | Filter by CFR title number (e.g., `12` for banking) |
| `include_abstract` | boolean | `true` | Include document abstract in results |
| `include_full_text_url` | boolean | `true` | Include PDF and HTML URLs |
| `max_results` | integer | `100` | Maximum records to return (up to 10,000) |
| `sort_by` | string | `"publication_date"` | `"publication_date"`, `"comments_close_on"`, `"relevance"` |
| `sort_order` | string | `"desc"` | `"asc"` or `"desc"` |

***

### Use Case Recipes

#### Recipe 1: Daily Compliance Alert — Open Comment Periods

Financial services compliance team monitors all open comment periods from banking regulators:

```json
{
  "search_mode": "keyword",
  "query": "banking consumer financial",
  "agencies": ["Consumer Financial Protection Bureau", "Office of the Comptroller of the Currency", "Federal Reserve System"],
  "document_types": ["PROPOSED_RULE", "RULE"],
  "open_for_comment": true,
  "sort_by": "comments_close_on",
  "sort_order": "asc"
}
```

**Outcome:** Sorted list of open comment periods by deadline — pipe to a calendar or task management system for comment letter scheduling.

#### Recipe 2: Agency Regulatory Posture Analysis

Understand how aggressively the FTC has been regulating over the last 2 years:

```json
{
  "search_mode": "agency_summary",
  "agency": "Federal Trade Commission",
  "date_from": "2022-01-01",
  "date_to": "2024-01-01"
}
```

**Outcome:** Document counts by type — RULE vs. PROPOSED\_RULE vs. NOTICE — showing regulatory velocity over time.

#### Recipe 3: Full Rulemaking History

Track a specific CFPB rulemaking from ANPRM through Final Rule:

```json
{
  "search_mode": "docket",
  "docket_id": "CFPB-2022-0017"
}
```

**Outcome:** Complete chronological document sequence for the rulemaking — use for regulatory comment letter background research or litigation support.

#### Recipe 4: Environmental Rule Monitoring

All EPA rules and proposed rules affecting manufacturing (CFR Title 40) in the last 6 months:

```json
{
  "search_mode": "keyword",
  "query": "manufacturing emissions effluent",
  "agencies": ["Environmental Protection Agency"],
  "document_types": ["RULE", "PROPOSED_RULE"],
  "cfr_title": 40,
  "date_from": "2024-01-01",
  "max_results": 100
}
```

**Outcome:** Complete EPA regulatory activity for manufacturing compliance — filter further by comment status to prioritize action items.

***

### Connecting to Claude Desktop / Claude Code

**Claude Desktop:**

```json
{
  "mcpServers": {
    "federal-register": {
      "command": "npx",
      "args": [
        "apify-actor-mcp",
        "--actor-id", "your-username/federal-register-mcp",
        "--token", "apify_api_YOURTOKEN"
      ],
      "env": {}
    }
  }
}
```

**Claude Code:**

```json
{
  "mcpServers": {
    "federal-register": {
      "command": "npx",
      "args": ["apify-actor-mcp", "--actor-id", "your-username/federal-register-mcp", "--token", "apify_api_YOURTOKEN"]
    }
  }
}
```

Sample prompts once connected:

- *"What proposed rules from the EPA are open for comment right now?"*
- *"Summarize all CFPB regulatory activity from the first half of 2024."*
- *"Track the full rulemaking history for docket EPA-HQ-OW-2022-0114."*

***

### Pricing

| Volume | Price |
|---|---|
| First 1,000 results | $0.50 |
| 1,001 â€“ 50,000 results | $0.40/1k |
| 50,000+ results | $0.30/1k |

**ROI context:** Regulatory intelligence platforms like Compliance.ai and Drata cost $15,000â€“$50,000/year for enterprise teams. Missing a comment deadline on a proposed rule that affects your business can cost millions in compliance remediation. This actor surfaces the data you need — at a fraction of the cost of dedicated regulatory monitoring software.

***

### Data Source and Freshness

- **Primary:** FederalRegister.gov REST API — official data from the Office of the Federal Register (OFR) / GPO
- **Update frequency:** New Federal Register issues publish by 6:00 AM ET on weekday mornings; actor reflects same-day content within 2 hours of publication
- **Historical depth:** Full document metadata back to 1936; full text search back to 1994
- **Coverage:** All document types published in the Federal Register — Rules, Proposed Rules, Notices, Presidential Documents (Executive Orders, Proclamations, etc.)
- **CFR cross-references:** Available for all documents with regulatory text

***

### Technical Notes

- FederalRegister.gov API requires no authentication — the actor handles all requests internally
- Agency names support partial matching; use canonical agency names for best results (e.g., "Environmental Protection Agency" not "EPA")
- Docket IDs are case-sensitive and must match the exact format used in Federal Register documents (e.g., `"EPA-HQ-OW-2022-0114"`)
- `comments_close_on` is `null` for final rules and notices not open for comment
- Full document body text is not returned by default (use `include_full_text_url` to get the PDF/HTML URL for downstream processing)
- Presidential Documents include Executive Orders, Presidential Proclamations, and Presidential Memoranda
- Large agency summary queries (full year, all types) may take 30â€“60 seconds due to pagination

***

### Support

- **Issues:** File a GitHub issue on the actor repository
- **Apify Community:** [community.apify.com](https://community.apify.com)
- **FederalRegister.gov API docs:** [www.federalregister.gov/developers/documentation/api/v1](https://www.federalregister.gov/developers/documentation/api/v1)
- **Federal Register search:** [www.federalregister.gov/documents/search](https://www.federalregister.gov/documents/search)

# Actor input Schema

## `query` (type: `string`):

Search keywords across title and full text of Federal Register documents (e.g. 'air quality', 'overtime pay', 'cryptocurrency', 'PFAS')

## `agency` (type: `string`):

Filter by federal agency slug from federalregister.gov. Examples: 'environmental-protection-agency', 'department-of-labor', 'securities-and-exchange-commission', 'consumer-financial-protection-bureau', 'food-and-drug-administration', 'occupational-safety-and-health-administration', 'federal-reserve-system'

## `documentType` (type: `string`):

Filter by type of Federal Register document

## `dateFrom` (type: `string`):

Only return documents published on or after this date

## `dateTo` (type: `string`):

Only return documents published on or before this date

## `docketId` (type: `string`):

Track a specific rulemaking docket — returns all documents in the rulemaking thread in chronological order (e.g. 'EPA-HQ-OAR-2023-0072', 'CFPB-2023-0009'). When set, other filters are ignored.

## `limit` (type: `integer`):

Maximum number of documents to return (max 500)

## `serveMcp` (type: `boolean`):

When enabled, starts an MCP-compatible HTTP server on port 4321 instead of returning a batch dataset. Use this to connect Claude Desktop or any MCP client directly to Federal Register data.

## Actor input object example

```json
{
  "query": "",
  "agency": "",
  "documentType": "all",
  "dateFrom": "",
  "dateTo": "",
  "docketId": "",
  "limit": 100,
  "serveMcp": false
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("andrew_avina/federal-register-mcp").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("andrew_avina/federal-register-mcp").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call andrew_avina/federal-register-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=andrew_avina/federal-register-mcp",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Federal Register: Rules, Proposed Rules, Exec Orders",
        "description": "Track every federal rule, proposed rule, and executive order (95K+ docs/yr). Filter by agency, type, keyword, CFR part, comment period. MCP-native: 'What EPA rules went final this quarter?' or 'Open comment periods in financial services?' Updated daily.",
        "version": "0.0",
        "x-build-id": "trc9hyBMEB70nokFF"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/andrew_avina~federal-register-mcp/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-andrew_avina-federal-register-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/andrew_avina~federal-register-mcp/runs": {
            "post": {
                "operationId": "runs-sync-andrew_avina-federal-register-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/andrew_avina~federal-register-mcp/run-sync": {
            "post": {
                "operationId": "run-sync-andrew_avina-federal-register-mcp",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "query": {
                        "title": "Keyword Search",
                        "type": "string",
                        "description": "Search keywords across title and full text of Federal Register documents (e.g. 'air quality', 'overtime pay', 'cryptocurrency', 'PFAS')",
                        "default": ""
                    },
                    "agency": {
                        "title": "Agency Slug",
                        "type": "string",
                        "description": "Filter by federal agency slug from federalregister.gov. Examples: 'environmental-protection-agency', 'department-of-labor', 'securities-and-exchange-commission', 'consumer-financial-protection-bureau', 'food-and-drug-administration', 'occupational-safety-and-health-administration', 'federal-reserve-system'",
                        "default": ""
                    },
                    "documentType": {
                        "title": "Document Type",
                        "enum": [
                            "all",
                            "Rule",
                            "Proposed Rule",
                            "Notice",
                            "Presidential Document"
                        ],
                        "type": "string",
                        "description": "Filter by type of Federal Register document",
                        "default": "all"
                    },
                    "dateFrom": {
                        "title": "Publication Date From (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Only return documents published on or after this date",
                        "default": ""
                    },
                    "dateTo": {
                        "title": "Publication Date To (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Only return documents published on or before this date",
                        "default": ""
                    },
                    "docketId": {
                        "title": "Docket ID (Rulemaking Tracker)",
                        "type": "string",
                        "description": "Track a specific rulemaking docket — returns all documents in the rulemaking thread in chronological order (e.g. 'EPA-HQ-OAR-2023-0072', 'CFPB-2023-0009'). When set, other filters are ignored.",
                        "default": ""
                    },
                    "limit": {
                        "title": "Result Limit",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum number of documents to return (max 500)",
                        "default": 100
                    },
                    "serveMcp": {
                        "title": "MCP Server Mode",
                        "type": "boolean",
                        "description": "When enabled, starts an MCP-compatible HTTP server on port 4321 instead of returning a batch dataset. Use this to connect Claude Desktop or any MCP client directly to Federal Register data.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
