ferric-fred-mcp
The ferric-fred-mcp server provides comprehensive access to the Federal Reserve Economic Data (FRED) service, exposing tools for querying economic data series, categories, releases, sources, and tags.
Series & Observations
Search for series by text with ordering, sorting, and result limits
Get series metadata (title, frequency, units, seasonal adjustment, popularity) by series ID
Fetch observations (date/value pairs) with optional date range, units transformation (e.g., percent change), frequency aggregation, sort order, and limit
Get recently updated series filtered by class (macro/regional) or a time window
Get vintage dates — the revision history of a series
Get categories, release, and tags associated with a specific series
Category Tree
Get a category by ID, list its children, and find related categories (cross-tree links)
List series in a category with ordering and pagination
List tag facets for a category's series and discover co-occurring tags
Releases
List all data releases and browse the release calendar across all releases
Get a specific release, its series, sources, publication dates, and nested table tree
List tag facets for a release's series and discover co-occurring tags within a release
Sources
List all data sources (e.g., Bureau of Economic Analysis), get source details, and list releases produced by a source
Tags
Browse or search the tag vocabulary (keywords like "gdp", "quarterly", "nsa")
Discover co-occurring tags globally or scoped to categories, releases, or search results
List series carrying specified tags for faceted discovery
Get tag facets for full-text series searches
All listing and search operations support pagination, sorting, and limiting results for efficient data access.
ferric-fred
A strongly-typed Rust client for FRED — the Federal Reserve Economic Data service from the Federal Reserve Bank of St. Louis — plus a CLI (with TUI charts) and an MCP server built on top of it.
ferric(iron oxide → rust) +FRED. Iron-clad, typed access to economic data.
Workspace
A Cargo workspace of three crates — each with its own README (the crates.io / docs.rs landing page) that carries the full usage detail:
Crate | Binary | What it is | Details |
| — | Strongly-typed async FRED client | |
|
| Command-line tool with | |
|
| MCP server exposing FRED to MCP clients |
Published versions (these badges are the source of truth — the crates version independently, so they can drift out of lockstep):
Consumers depend on the library by workspace path, so a breaking change in the library cannot compile-pass its consumers without updating them — that compile-time coupling is the primary "stay in sync" guarantee (versions are managed on top; see the ADRs).
Related MCP server: FRED MCP Server
What it covers
The library wraps all of FRED's read endpoints — series and observations,
search, categories, releases (including the nested release-table tree), sources,
and tags — behind ergonomic builders, with newtype identifiers, typed enums for
FRED's closed value sets, a non-panicking error taxonomy, and auto-pagination
(Paginate::send_all walks an endpoint to exhaustion, Paginate::stream yields
lazily; --all on the CLI). See ADR-0020 and
ADR-0021.
Pick an entry point:
Library —
cargo add ferric-fred; typed async access from your own code. See the crate README and docs.rs.CLI (
fred) —cargo install ferric-fred-cli; search, show metadata, print or chart observations in the terminal, and browse categories, releases, sources, and tags. See the crate README orfred <command> --help.MCP server (
fred-mcp) —cargo install ferric-fred-mcp; 31 tools over stdio covering the same read surface, for MCP-capable clients (ADR-0010). See the crate README.
The MCP server is listed and scored on Glama:
Development
A Nix flake provides a reproducible toolchain (nix develop, or direnv allow
once), but the project builds with a plain Rust toolchain too — Nix supplies the
environment, not the build (ADR-0008).
Contributor setup, the fmt/clippy/test gate, the tracked git hooks, and the
workflow for adding an endpoint live in CONTRIBUTING.md.
CI (ci.yml) runs that same offline gate on every push and PR; a dormant
live.yml runs the live FRED tests once an Infisical machine identity is
configured (ADR-0016).
Secrets
The client reads a free FRED API key from the FRED_API_KEY environment
variable (get one at https://fredaccount.stlouisfed.org/apikeys). Locally,
secrets are injected via Infisical + direnv
(ADR-0009):
cp .envrc.example .envrc # local, git-ignored entry point
infisical login # user auth (opens a browser)
infisical init # link this dir → project
direnv allow # load the shell + inject secrets on cd-inStore the key with infisical secrets set FRED_API_KEY="…" --env=dev --path=/shared.
No Infisical? Just set it directly in your git-ignored .envrc:
export FRED_API_KEY="…" — the library only reads the env var and has no
dependency on Infisical.
Architecture decisions
Design decisions are recorded as ADRs in docs/adr/. Start with
the index.
License
Dual-licensed under MIT OR Apache-2.0, at your option — the Rust ecosystem
default (ADR-0006). See LICENSE-MIT
and LICENSE-APACHE. Unless you state otherwise, any
contribution you submit is licensed under the same dual terms (see
CONTRIBUTING.md).
This covers our code; FRED data itself is subject to the St. Louis Fed's terms of use, and you supply your own API key — the project ships no data and no key.
Maintenance
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ojhermann-org/ferric-fred'
If you have feedback or need assistance with the MCP directory API, please join our Discord server