federal-register-mcp
v0.1.0
Published
MCP server for syncing and querying White House Executive Orders via the Federal Register API
Readme
Federal Register MCP
An MCP server that syncs Executive Orders from the Federal Register API, stores them in a local SQLite database with full-text search, and exposes query tools for Claude Code and other MCP clients.
Provides structured access to presidential executive actions published in the Federal Register, with full-text search and filtering through natural language via Claude.
What it does
- Syncs all presidential executive orders, proclamations, and memoranda signed since January 20, 2025
- Stores full text, metadata, and Federal Register citations in a local SQLite database
- Provides full-text search with BM25 ranking across titles and document bodies
- Exposes five MCP tools that Claude can call directly during conversation
MCP Tools
| Tool | Description |
|------|-------------|
| sync_executive_orders | Fetch latest documents from the Federal Register API (incremental or full) |
| list_executive_orders | List documents with filters (date range, keyword, subtype) and pagination |
| get_executive_order | Retrieve full text by ID, document number, EO number, or title match |
| search_executive_orders | Full-text search with FTS5 boolean operators, phrase matching, and prefix search |
| get_executive_order_summary | Database statistics: counts by month/subtype, word count averages, recent actions |
Requirements
- Node.js 25+ (uses built-in
node:sqlite— no native database dependencies) - npm
Installation
Option A: npm (recommended for Claude Code users)
npm install -g federal-register-mcp
federal-register-syncOption B: Clone
git clone https://github.com/yourusername/federal-register-mcp.git
cd federal-register-mcp
npm install
npm run syncThe initial sync fetches all document metadata and full text from the Federal Register API. Takes a few minutes on first run. Subsequent runs are incremental (only fetches new/missing documents).
Usage
As an MCP server (Claude Code)
Add to your Claude Code MCP configuration (.mcp.json in your project root or ~/.claude.json):
{
"mcpServers": {
"federal-register-mcp": {
"command": "npx",
"args": ["federal-register-mcp"]
}
}
}If running from a local clone instead:
{
"mcpServers": {
"federal-register-mcp": {
"command": "npx",
"args": ["tsx", "src/entry/start.ts"],
"cwd": "/absolute/path/to/federal-register-mcp"
}
}
}Then ask Claude things like:
- "Search executive orders about energy policy"
- "List all executive orders signed in February 2025"
- "Get the full text of EO 14154"
- "Sync the latest executive orders"
- "Show me a summary of all executive actions"
As a CLI
npm run sync # Incremental sync (skip docs with full text)
npm run sync:force # Full re-sync of all documents
npm run stats # Show detailed statistics
npm run start # Start MCP server (stdio transport)Data Source
All data comes from the Federal Register API, the official daily journal of the United States government. Document full text is fetched from the Federal Register's raw text endpoint — no HTML parsing required.
