fred_browseLABSCO SUMMARY
The transformations are the reason to use it over raw API calls.
Asking for a series is easy; asking for it as a year-over-year percent change, aggregated to quarterly, averaged rather than end-of-period, is where hand-rolled integrations start producing quietly wrong numbers. Those options are parameters here, applied by FRED itself. The rate limiting and request coalescing matter for the same unglamorous reason — one key shared across sessions stays inside quota.
What it is
An MCP server over the Federal Reserve Economic Data API that reduces the whole catalogue to three tools: one to browse it, one to search it, one to fetch a series. It is an independent open-source project, not affiliated with the Federal Reserve.
What you get
fred_browse— walk the catalogue bycategories,releases,sources,category_seriesorrelease_series, paginated and orderedfred_search— keyword or series-ID search with tag include and exclude lists, ordering by popularity or last update, and filters on frequency, units or seasonal adjustmentfred_get_series— observations for a series such asGDPorUNRATE, with a date range plus unit transformations (chg,pch,pc1,pca,logand more), frequency aggregation, andavg,sumoreopmethods- Client-side rate limiting matched to FRED's per-key quota via
FRED_RATE_LIMIT_PER_MINUTE, defaulting to 120 - Response caching (
FRED_CACHE_TTL_MS, default 60000) and coalescing of identical concurrent requests into a single upstream call, so several sessions share one quota - Streamable HTTP as well as stdio —
--httporTRANSPORT=http, default port 3000 — and aGET /healthzendpoint reporting active sessions, cache statistics and uptime
Requirements
A FRED API key in FRED_API_KEY. Run the Node build (fred-mcp-server, version 1.2.0) or the Docker image stefanoamorelli/fred-mcp-server:latest. Licensed AGPL-3.0, which matters if you deploy a modified copy as a service: you owe your users the source. Retries, timeouts, session limits and log level are all environment variables with documented defaults.
Setup effort
One command plus a key — npm install -g fred-mcp-server, then supply credentials
USE CASES
Finding the right series when you only know the concept
Search by keywords and tags, order by popularity, and filter by frequency or seasonal adjustment before committing to a series ID.
Comparing indicators on the same footing
Pull each series with pc1 for year-over-year change and a matching frequency aggregation, so the comparison is not an artefact of units.
Serving several clients from one deployment
Run it over Streamable HTTP with caching on, and watch GET /healthz for sessions, cache stats and uptime.
3 tools
Listed in project docs. Your client may show a different list.
fred_searchfred_get_seriesBEFORE YOU INSTALL
What to know first
Tools you get
3 tools named in the project's documentation.
Requires
FRED_API_KEY in your environment
Where it runs
All 3 documented setups run the server on your machine.
INSTALLATION
Connect your client
Server setup
npm install -g fred-mcp-serverMCP Clients
Claude Desktop
{
"mcpServers": {
"fred-mcp": {
"command": "fred-mcp-server",
"env": {
"FRED_API_KEY": "<YOUR_FRED_API_KEY>"
}
}
}
}Claude Desktop — Docker
{
"mcpServers": {
"fred-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"FRED_API_KEY=<YOUR_FRED_API_KEY>",
"stefanoamorelli/fred-mcp-server:latest"
]
}
}
}VS Code
{
"servers": {
"fred": {
"command": "fred-mcp-server",
"env": {
"FRED_API_KEY": "${env:FRED_API_KEY}"
}
}
}
}