MCP server for the FRED (Federal Reserve Economic Data) API
Project description
fred-mcp-server
An MCP (Model Context Protocol) server that provides access to the full FRED API (Federal Reserve Economic Data), including the Maps API for regional and geographic data. Use it to search, explore, and retrieve economic data directly within Claude conversations.
Disclaimer: This project is not affiliated with, endorsed by, or connected to the Federal Reserve Bank of St. Louis or any Federal Reserve entity. It is an independent open-source tool that accesses the publicly available FRED API.
Features
- 33 tools covering all FRED API endpoints including Maps (series, categories, releases, sources, tags, maps)
- Full parameter support — no artificial limits on pagination or filtering
- Built-in rate limiting (120 requests/minute)
- Async HTTP client for efficient request handling
Requirements
- Python 3.10+
- A free FRED API key
Installation
pip install fred-mcp-server
Or with uv:
uv tool install fred-mcp-server
With Docker:
docker build -t fred-mcp-server https://github.com/floriancaro/fred-mcp-server.git
From source:
git clone https://github.com/floriancaro/fred-mcp-server.git
cd fred-mcp-server
uv sync --dev
Configuration
After installing, configure the MCP server for your preferred client.
Claude Code (CLI)
Add the server globally (available in all projects):
claude mcp add fred -s user -e FRED_API_KEY=your-api-key-here -- fred-mcp-server
Or add it to a specific project only:
claude mcp add fred -e FRED_API_KEY=your-api-key-here -- fred-mcp-server
Verify it's connected:
claude mcp list
Claude Code (project config)
Alternatively, create a .mcp.json file in your project root:
{
"mcpServers": {
"fred": {
"command": "fred-mcp-server",
"env": {
"FRED_API_KEY": "your-api-key-here"
}
}
}
}
A .mcp.json.example file is included in the repo as a template.
Claude Desktop
Add to your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"fred": {
"command": "fred-mcp-server",
"env": {
"FRED_API_KEY": "your-api-key-here"
}
}
}
}
Restart Claude Desktop after saving.
Docker
If using the Docker image, replace the command field:
{
"mcpServers": {
"fred": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "FRED_API_KEY", "fred-mcp-server"],
"env": {
"FRED_API_KEY": "your-api-key-here"
}
}
}
}
Tools
Series
| Tool | Description |
|---|---|
fred_series |
Get metadata for a series |
fred_series_search |
Search for series by text |
fred_series_observations |
Get data values for a series |
fred_series_categories |
Get categories for a series |
fred_series_release |
Get the release for a series |
fred_series_tags |
Get tags for a series |
fred_series_search_tags |
Get tags matching a search query |
fred_series_search_related_tags |
Get related tags for a search query |
fred_series_updates |
Get recently updated series |
fred_series_vintagedates |
Get vintage dates for a series |
Categories
| Tool | Description |
|---|---|
fred_category |
Get a category (root = 0) |
fred_category_children |
Get child categories |
fred_category_related |
Get related categories |
fred_category_series |
Get series in a category |
fred_category_tags |
Get tags for a category |
Releases
| Tool | Description |
|---|---|
fred_releases |
List all releases |
fred_releases_dates |
Get dates for all releases |
fred_release |
Get a specific release |
fred_release_dates |
Get dates for a release |
fred_release_series |
Get series in a release |
fred_release_sources |
Get sources for a release |
fred_release_tags |
Get tags for a release |
fred_release_tables |
Get release table trees |
Sources
| Tool | Description |
|---|---|
fred_sources |
List all sources |
fred_source |
Get a specific source |
fred_source_releases |
Get releases for a source |
Tags
| Tool | Description |
|---|---|
fred_tags |
List/search all tags |
fred_related_tags |
Get related tags |
fred_tags_series |
Get series matching tags |
Maps
| Tool | Description |
|---|---|
geofred_series_group |
Get metadata for a geographic FRED series |
geofred_series_data |
Get cross-sectional regional data for a geographic series |
geofred_regional_data |
Get cross-sectional regional data by series group |
geofred_shapes |
Get GeoJSON shape files for geographic region boundaries |
Example Prompts
Once configured, you can ask Claude things like:
- "What is the current US GDP growth rate?" (uses
fred_series_search+fred_series_observations) - "Show me the unemployment rate for the past 10 years" (uses
fred_series_observationswithobservation_start) - "What data releases are coming up this week?" (uses
fred_releases_dates) - "Find all series related to housing starts" (uses
fred_series_search) - "Compare regional unemployment rates across states" (uses
geofred_regional_data)
Development
git clone https://github.com/floriancaro/fred-mcp-server.git
cd fred-mcp-server
uv sync --dev
# Run unit tests
uv run pytest tests/test_client.py tests/test_tools.py -v
# Run integration tests (requires FRED_API_KEY)
FRED_API_KEY=your-key uv run pytest tests/test_integration.py -v
Troubleshooting
"FRED_API_KEY environment variable is not set"
Ensure the FRED_API_KEY is passed in your MCP configuration's env block, or set it in your shell environment.
Rate limiting The server limits requests to 120 per minute (matching FRED API limits). If you hit the limit, requests will automatically wait — no action needed.
Verifying the server is running
claude mcp list
Contributing
Contributions are welcome! Please open an issue or submit a pull request.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fred_mcp_server-0.2.2.tar.gz.
File metadata
- Download URL: fred_mcp_server-0.2.2.tar.gz
- Upload date:
- Size: 100.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f2ec816ca06573f5cbddae6dba7136c6979ff29989d4d32adf0a14ae82056bb
|
|
| MD5 |
5f14f548cc1a0b6d43a76d32e70de39b
|
|
| BLAKE2b-256 |
5476505f00817a9f329dfa470d5be5ba45e72b02c760b792cbd52d71636de00b
|
Provenance
The following attestation bundles were made for fred_mcp_server-0.2.2.tar.gz:
Publisher:
publish.yml on floriancaro/fred-mcp-server
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fred_mcp_server-0.2.2.tar.gz -
Subject digest:
0f2ec816ca06573f5cbddae6dba7136c6979ff29989d4d32adf0a14ae82056bb - Sigstore transparency entry: 1237864641
- Sigstore integration time:
-
Permalink:
floriancaro/fred-mcp-server@b5612c79346d10324e0b25a8d0671a0c960b3d45 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/floriancaro
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b5612c79346d10324e0b25a8d0671a0c960b3d45 -
Trigger Event:
push
-
Statement type:
File details
Details for the file fred_mcp_server-0.2.2-py3-none-any.whl.
File metadata
- Download URL: fred_mcp_server-0.2.2-py3-none-any.whl
- Upload date:
- Size: 15.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ac7af07b178d0ebc42239f640df11ee337cc3898f8cec7e31ef0ae831a39a8c9
|
|
| MD5 |
4d6c86d6916683ab52979dac4395c9da
|
|
| BLAKE2b-256 |
0f9013960e03f951f368082190829fe983a6289b916dc8d990afa5b63a655e28
|
Provenance
The following attestation bundles were made for fred_mcp_server-0.2.2-py3-none-any.whl:
Publisher:
publish.yml on floriancaro/fred-mcp-server
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fred_mcp_server-0.2.2-py3-none-any.whl -
Subject digest:
ac7af07b178d0ebc42239f640df11ee337cc3898f8cec7e31ef0ae831a39a8c9 - Sigstore transparency entry: 1237864646
- Sigstore integration time:
-
Permalink:
floriancaro/fred-mcp-server@b5612c79346d10324e0b25a8d0671a0c960b3d45 -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/floriancaro
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@b5612c79346d10324e0b25a8d0671a0c960b3d45 -
Trigger Event:
push
-
Statement type: