fred-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FRED_API_KEY | No | FRED API key (required for stdio; optional HTTP fallback) | |
| MCP_SERVER_HOST | No | Bind host for HTTP transports | localhost |
| MCP_SERVER_PORT | No | Bind port for HTTP transports | 8000 |
| FRED_API_KEY_HEADER | No | HTTP header name for bring-your-own-key | X-FRED-API-Key |
| MCP_SERVER_TRANSPORT | No | Transport type: stdio, streamable-http, or sse | stdio |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_seriesA | Get metadata for a FRED economic data series by series ID. Example: get_series(series_id='GNPCA'). |
| get_series_categoriesB | Get the categories that contain a FRED series. Example: get_series_categories(series_id='CPIAUCSL'). |
| get_series_observationsA | Get observations (data values) for a FRED series with optional unit transforms, frequency aggregation, and date filters. Example: get_series_observations(series_id='GNPCA', observation_start='2000-01-01'). |
| get_series_releaseA | Get the release that publishes a FRED series. Example: get_series_release(series_id='CPIAUCSL'). |
| search_seriesA | Search FRED series by text or series ID with optional tag filters. Example: search_series(search_text='inflation', limit=10). |
| search_series_tagsB | Get tags associated with a FRED series search, optionally filtered by tag name, group, or search text. Example: search_series_tags(series_search_text='gdp'). |
| search_series_related_tagsB | Get related tags for one or more tags matching a FRED series search. Example: search_series_related_tags(series_search_text='gdp', tag_names='usa'). |
| get_series_tagsA | Get tags assigned to a FRED series. Example: get_series_tags(series_id='CPIAUCSL'). |
| get_series_updatesA | List FRED series sorted by when observations were last updated. Example: get_series_updates(filter_value='macro', limit=20). |
| get_series_vintage_datesA | Get vintage dates when a series was revised or new values were released. Example: get_series_vintage_dates(series_id='CPIAUCSL'). |
| get_categoryA | Get a FRED category by ID. Omit category_id for the root category. Example: get_category(category_id=125). |
| get_category_childrenA | Get child categories for a FRED category. Example: get_category_children(category_id=125). |
| get_category_relatedC | Get categories related to a FRED category. Example: get_category_related(category_id=125). |
| get_category_seriesA | List FRED series belonging to a category with optional filters. Example: get_category_series(category_id=125, limit=10). |
| get_category_tagsA | Get tags for series in a FRED category. Example: get_category_tags(category_id=125). |
| get_category_related_tagsA | Get related tags for tag(s) within a FRED category. Example: get_category_related_tags(category_id=125, tag_names='usa'). |
| list_releasesC | List all FRED releases of economic data. Example: list_releases(limit=20). |
| list_release_datesA | List release dates across all FRED releases. Example: list_release_dates(limit=50). |
| get_releaseA | Get metadata for a FRED release by release ID. Example: get_release(release_id=10). |
| get_release_datesB | Get release dates for a specific FRED release. Example: get_release_dates(release_id=10). |
| get_release_seriesA | List FRED series published in a release. Example: get_release_series(release_id=10, limit=20). |
| get_release_sourcesA | Get sources that publish a FRED release. Example: get_release_sources(release_id=10). |
| get_release_tagsC | Get tags for series in a FRED release. Example: get_release_tags(release_id=10). |
| get_release_related_tagsB | Get related tags for tag(s) within a FRED release. Example: get_release_related_tags(release_id=10, tag_names='usa'). |
| get_release_tablesB | Get release tables (structured layouts) for a FRED release. Example: get_release_tables(release_id=53). |
| list_sourcesB | List FRED data sources (providers). Example: list_sources(limit=20). |
| get_sourceB | Get metadata for a FRED source by source ID. Example: get_source(source_id=1). |
| get_source_releasesB | List releases published by a FRED source. Example: get_source_releases(source_id=1, limit=20). |
| list_tagsB | Search or list FRED tags with optional filters. Example: list_tags(search_text='gdp', limit=20). |
| get_related_tagsA | Get tags related to one or more FRED tags. Example: get_related_tags(tag_names='usa;gdp'). |
| get_tags_seriesB | List FRED series matching one or more tags. Example: get_tags_series(tag_names='gdp;usa', limit=10). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| fred_research_workflow | Guide for researching economic data with FRED: search series, inspect metadata, then fetch observations. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 31 tools
Most tools have clearly distinct purposes based on resource and action, but reverse relationships like get_source_releases vs get_release_sources and the many tag-related variants (e.g., get_related_tags, get_category_related_tags) could cause confusion if descriptions are not carefully read. Overall, the names and descriptions do an adequate job of disambiguating.
The server generally follows a get_<resource>_<detail> pattern with list_ and search_ prefixes for broader operations. However, there are minor inconsistencies such as get_series_updates (a listing operation) and the confusing name get_tags_series (which returns series, not tags) that deviate from the otherwise predictable scheme.
With 31 tools, the server exceeds the typical range and feels heavy. While the FRED API is broad, the tool set could be consolidated, especially the many tag-related and reverse-relationship tools, without losing functionality.
The tool set provides comprehensive coverage of FRED's data model, including series metadata, observations, categories, releases, sources, and tags, as well as search and vintage date functionality. No obvious gaps are apparent for the server's stated purpose.