npm fred-mcp-serverstdioAGPL-3.0updated 17d ago
[!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.
O que dá para fazer com fred mcp server?
Federal 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:
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 stefano@amorelli.tech.
© 2025 Stefano Amorelli
Instalação
Adicione fred mcp server ao seu cliente. Escolha o que você usa.
claude mcp add fred-mcp-server -- npx -y fred-mcp-servercodex mcp add fred-mcp-server -- npx -y fred-mcp-serveramp mcp add fred-mcp-server -- npx -y fred-mcp-server{
"mcpServers": {
"fred-mcp-server": {
"command": "npx",
"args": [
"-y",
"fred-mcp-server"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"fred-mcp-server": {
"command": "npx",
"args": [
"-y",
"fred-mcp-server"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"fred-mcp-server","command":"npx","args":["-y","fred-mcp-server"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"fred-mcp-server": {
"command": "npx",
"args": [
"-y",
"fred-mcp-server"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"fred-mcp-server": {
"command": "npx",
"args": [
"-y",
"fred-mcp-server"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"fred-mcp-server": {
"command": "npx",
"args": [
"-y",
"fred-mcp-server"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"fred-mcp-server": {
"type": "local",
"command": "npx",
"args": [
"-y",
"fred-mcp-server"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"fred-mcp-server": {
"command": {
"path": "npx",
"args": [
"-y",
"fred-mcp-server"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y fred-mcp-serverRun `goose configure`, choose **Add Extension → Command-line Extension**, and paste this command.
Pontuação
39 / 100
Incompleta
- Documentação25/25
- Manutenção19/25
- Confiança13/20
- Capacidade0/15
- Instalação12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 9 days ago
- Has a release history
- Repository is not archived
- Licensed AGPL-3.0
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint — no local install
Histórico de versões
| Versões | Publicada |
|---|---|
| 1.0.1Mais recente | 14 de set. de 2025 |