Federal Reserve Economic Data MCP Server
LocalAbout Federal Reserve Economic Data MCP Server
The FRED MCP Server is an open-source MCP server that gives access to more than 800,000 Federal Reserve Economic Data time series. It is aimed at users who need economic and financial data for analysis. The project is not affiliated with the Federal Reserve or the Federal Reserve Bank of St. Louis.
Key features
- 01fred_browse tool for categories, releases and sources
- 02fred_search tool with keyword, tag and filter options
- 03fred_get_series tool with date ranges and transformations
- 04stdio and Streamable HTTP transports with caching and rate limiting
Use cases
- 01Retrieving indicators such as GDP, unemployment or CPI through an LLM
- 02Applying transformations like percent change to interest rate or inflation series
- 03Running a shared FRED data service over a network
MCP support
This is an MCP server that exposes the fred_browse, fred_search and fred_get_series tools to MCP clients. It requires a FRED API key.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y fred-mcp-serverFRED_API_KEYSecretYour FRED API key to access the APILocal servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
3Saved tool list · updated 3w ago
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Maximum number of results |
| offset | number | No | Number of results to skip |
| order_by | string | No | Field to order by |
| release_id | number | No | Release ID (for release_series) |
| sort_order | enum | No | Sort orderasc | desc |
| browse_type | enum | Yes | Type of browsing to performcategories | releases | sources | category_series | release_series |
| category_id | number | No | Category ID (for categories or category_series) |
Details
From the project READMEFederal Reserve Economic Data MCP Server
Important
Disclaimer: This open-source project is not affiliated with, sponsored by, or endorsed by the Federal Reserve or the Federal Reserve Bank of St. Louis. "FRED" is a registered trademark of the Federal Reserve Bank of St. Louis, used here for descriptive purposes only.
A Model Context Protocol (MCP) server providing universal access to all 800,000+ Federal Reserve Economic Data (FRED®) time series through three powerful tools.
https://github.com/user-attachments/assets/66c7f3ad-7b0e-4930-b1c5-a675a7eb1e09
Tip
If you use this project in your research or work, please cite it using the CITATION.cff file, or use the following citation:
APA Format:
Amorelli, S. (2025). Federal Reserve Economic Data MCP (Model Context Protocol) Server (Version 1.0.2) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.14536707
BibTeX:
@software{amorelli_2025_14536707,
author = {Amorelli, Stefano},
title = {{Federal Reserve Economic Data MCP (Model Context
Protocol) Server}},
month = jan,
year = 2025,
publisher = {Zenodo},
version = {1.0.2},
doi = {10.5281/zenodo.14536707},
url = {https://doi.org/10.5281/zenodo.14536707}
}
Installation
Manual Installation
- Clone the repository:
git clone https://github.com/stefanoamorelli/fred-mcp-server.git cd fred-mcp-server - Install dependencies:
pnpm install - Build the project:
pnpm build
Configuration
This server requires a FRED® API key. You can obtain one from the FRED® website.
Install the server, for example, on Claude Desktop, modify the claude_desktop_config.json file and add the following configuration:
{
"mcpServers": {
"FRED MCP Server": {
"command": "/usr/bin/node",
"args": [
"<PATH_TO_YOUR_CLONED_REPO>/fred-mcp-server/build/index.js"
],
"env": {
"FRED_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
Using Docker
You can also run the FRED MCP Server using Docker. Add this configuration to your claude_desktop_config.json:
{
"mcpServers": {
"fred-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"FRED_API_KEY=<your-key-here>",
"stefanoamorelli/fred-mcp-server:latest"
],
"env": {}
}
}
}
Replace <your-key-here> with your actual FRED API key.
Using Streamable HTTP Transport
For network deployments, you can run the server with Streamable HTTP transport instead of stdio:
# Using CLI flag
node build/index.js --http
# Or using environment variable
TRANSPORT=http node build/index.js
# Custom port (default is 3000)
PORT=8080 node build/index.js --http
The server will be available at http://localhost:3000/mcp (or your custom port).
Example client request:
# Initialize session
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"my-client","version":"1.0.0"}}}'
# Use the mcp-session-id from the response header for subsequent requests
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: <session-id-from-init>" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
A GET /healthz endpoint reports active sessions, cache statistics, and uptime for load balancers and orchestrators.
Configuration
All settings are environment variables with sensible defaults:
| Variable | Default | Description |
|---|---|---|
FRED_API_KEY | (required) | Your FRED API key |
FRED_API_TIMEOUT_MS | 30000 | Per-request timeout against the FRED API |
FRED_API_MAX_RETRIES | 3 | Retries for 429/5xx/network failures (exponential backoff with jitter, honors Retry-After) |
FRED_API_RETRY_BASE_DELAY_MS | 500 | Base delay for retry backoff |
FRED_RATE_LIMIT_PER_MINUTE | 120 | Client-side token bucket matching FRED's per-key quota |
FRED_CACHE_TTL_MS | 60000 | TTL for cached API responses (0 disables caching) |
FRED_CACHE_MAX_ENTRIES | 500 | LRU cache capacity |
TRANSPORT | stdio | Set to http for Streamable HTTP transport |
HOST | (all interfaces) | HTTP bind address |
PORT | 3000 | HTTP port |
MCP_MAX_SESSIONS | 100 | Maximum concurrent MCP sessions (new sessions get 503 beyond this) |
MCP_SESSION_TTL_MS | 1800000 | Idle time before a session is reaped |
MCP_SESSION_SWEEP_INTERVAL_MS | 60000 | How often the idle-session reaper runs |
MCP_BODY_LIMIT | 1mb | Maximum accepted JSON body size |
LOG_LEVEL | info | error, warn, info, or debug (logs go to stderr) |
Identical concurrent requests are coalesced into a single upstream call, and successful responses are cached, so multiple sessions share one rate-limit budget efficiently.
Available Tools
This MCP server provides three comprehensive tools to access all 800,000+ FRED® economic data series:
fred_browse
Description: Browse FRED's complete catalog through categories, releases, or sources.
Parameters:
browse_type(required): Type of browsing - "categories", "releases", "sources", "category_series", "release_series"category_id(optional): Category ID for browsing subcategories or series within a categoryrelease_id(optional): Release ID for browsing series within a releaselimit(optional): Maximum number of results (default: 50)offset(optional): Number of results to skip for paginationorder_by(optional): Field to order results bysort_order(optional): "asc" or "desc"
fred_search
Description: Search for FRED economic data series by keywords, tags, or filters.
Parameters:
search_text(optional): Text to search for in series titles and descriptionssearch_type(optional): "full_text" or "series_id"tag_names(optional): Comma-separated list of tag names to filter byexclude_tag_names(optional): Comma-separated list of tag names to excludelimit(optional): Maximum number of results (default: 25)offset(optional): Number of results to skip for paginationorder_by(optional): Field to order by (e.g., "popularity", "last_updated")sort_order(optional): "asc" or "desc"filter_variable(optional): Filter by "frequency", "units", or "seasonal_adjustment"filter_value(optional): Value to filter the variable by
fred_get_series
Description: Retrieve data for any FRED series by its ID with support for transformations and date ranges.
Parameters:
series_id(required): The FRED series ID (e.g., "GDP", "UNRATE", "CPIAUCSL")observation_start(optional): Start date in YYYY-MM-DD formatobservation_end(optional): End date in YYYY-MM-DD formatlimit(optional): Maximum number of observationsoffset(optional): Number of observations to skipsort_order(optional): "asc" or "desc"units(optional): Data transformation:- "lin" (levels/no transformation)
- "chg" (change from previous period)
- "ch1" (change from year ago)
- "pch" (percent change)
- "pc1" (percent change from year ago)
- "pca" (compounded annual rate of change)
- "cch" (continuously compounded rate of change)
- "log" (natural log)
frequency(optional): Frequency aggregation ("d", "w", "m", "q", "a")aggregation_method(optional): "avg" (average), "sum", or "eop" (end of period)
Example Usage
With these three tools, you can:
- Browse all economic categories and discover available data
- Search for specific indicators by keywords or tags
- Retrieve any of the 800,000+ series with custom transformations
- Access real-time economic data including GDP, unemployment, inflation, interest rates, and more
Social Media Shoutouts 📣
Note
Want to be featured? Tag Stefano Amorelli on LinkedIn or @stefanoamorelli on X in your post about using FRED MCP Server, or submit a PR to add your shoutout!
We're grateful for the community support! Here are some mentions from amazing people:
Scott G - "One of my breakthrough moments for 'getting' what is possible with Claude was this fred-mcp-server project..."
Scott G - Fintech & Data Analytics Professional | LinkedIn Profile
John Shelburne - "The FRED MCP Server is a game-changer for financial analysis..."
John Shelburne - Fixed Income Fintech Leader with 20+ Years of Experience | Machine Learning & Cloud Computing Specialist | LinkedIn Profile
Testing
See TESTING.md for more details.
# Run all tests
pnpm test
# Run specific tests
pnpm test:registry
License ⚖️
This open-source project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). This means:
- You can use, modify, and distribute this software
- If you modify and distribute it, you must release your changes under AGPL-3.0
- If you run a modified version on a server, you must provide the source code to users
- See the LICENSE file for full details
For commercial licensing options or other licensing inquiries, please contact [email protected].
© 2025 Stefano Amorelli
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.