Skip to main content
Glama
dracepj

FRED API MCP Server

by dracepj

FRED API MCP Server

A Model Context Protocol (MCP) server that provides access to the Federal Reserve Economic Data (FRED) API from the St. Louis Federal Reserve.

Features

  • Search Economic Data: Search for economic data series by keywords

  • Get Series Data: Retrieve time series data for specific economic indicators

  • Series Information: Get detailed metadata about economic data series

  • Browse Categories: Explore FRED data categories

  • Get Releases: Access information about FRED data releases

  • Release Series: Get all series associated with a specific release

  • Release Dates: Get release dates and schedules

  • Popular Series Resource: Quick access to commonly used economic indicators

  • Popular Releases Resource: Quick access to commonly used releases

Related MCP server: FRED Economic MCP Server

Setup

1. Get a FRED API Key

  1. Visit https://fred.stlouisfed.org/docs/api/api_key.html

  2. Create a free account if you don't have one

  3. Request an API key (it's free and approved instantly)

2. Install the Server with Claude Desktop

Install the server using uv:

uv run mcp install src/server.py

3. Add API Key Configuration

Add the following configuration to your Claude Desktop MCP settings:

{
  "mcpServers": {
    "fred_mcp_server": {
      "command": "/path/.local/bin/uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "mcp",
        "run",
        "/path/to/dev/fred-mcp/src/server.py"
      ],
      "env": {
        "FRED_API_KEY": "your_api_key_here"
      }
    }
  }
}

Here are some commonly used FRED series IDs:

  • GDP - Gross Domestic Product

  • UNRATE - Unemployment Rate

  • CPIAUCSL - Consumer Price Index for All Urban Consumers

  • FEDFUNDS - Federal Funds Rate

  • DGS10 - 10-Year Treasury Constant Maturity Rate

  • DEXUSEU - US/Euro Foreign Exchange Rate

  • PAYEMS - All Employees, Total Nonfarm

  • HOUST - Housing Starts

  • INDPRO - Industrial Production Index

  • CPILFESL - Core CPI (excluding food and energy)

Here are some commonly used FRED release IDs:

  • 53 - Gross Domestic Product

  • 10 - Employment Situation

  • 24 - Consumer Price Index

  • 62 - Federal Reserve Economic Data

  • 18 - Industrial Production and Capacity Utilization

  • 20 - Housing Starts

  • 25 - Personal Income and Outlays

  • 50 - Flow of Funds

  • 13 - G.17 Industrial Production and Capacity Utilization

  • 21 - New Residential Construction

Rate Limits

FRED API has the following rate limits:

  • 120 requests per 60 seconds

  • Be respectful of the API and cache results when possible

Usage with MCP Clients

This server follows the Model Context Protocol specification and can be used with any MCP-compatible client. The server communicates via stdin/stdout and provides tools for querying economic data.

Documentation

For detailed information about available tools and server implementation, see SERVER.md.

Available Tools

7 tools
get_categoriesA

Get FRED data categories.

Args: category_id: Category ID (optional, returns root categories if not specified)

ParametersJSON Schema
NameRequiredDescriptionDefault
category_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the behavior of returning root categories when category_id is omitted, but lacks details on auth, rate limits, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with two sentences, no extraneous content, and front-loaded with the core purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and the simple one-parameter input, the description covers the essential information adequately, though it could briefly mention data freshness or hierarchy context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the single parameter 'category_id' in natural language, including its optional nature and default behavior, adding meaning beyond the schema's title field.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get FRED data categories.' with a specific verb and resource, and it is distinct from sibling tools like get_economic_series.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving categories but does not explicitly state when to use this tool versus alternatives or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_economic_seriesB

Get data for a specific economic data series.

Args: series_id: FRED series ID (e.g., 'GDP', 'UNRATE', 'CPIAUCSL') start_date: Start date in YYYY-MM-DD format (optional) end_date: End date in YYYY-MM-DD format (optional) limit: Maximum number of observations to return

ParametersJSON Schema
NameRequiredDescriptionDefault
series_idYes
start_dateNo
end_dateNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must disclose behavioral traits. It mentions parameter types and defaults but fails to disclose aspects like rate limits, caching, pagination, error handling, or the structure of the returned data. The output schema exists but is not referenced.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (5 lines) and uses a clear 'Args' structure for parameters. Every sentence adds value. Could be slightly more compact as a paragraph, but it's efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (which likely documents return structure), the description need not cover that. However, it lacks broader context such as data source (FRED), typical date ranges, or limits. The parameter descriptions are good, but usage context is missing. Scores as adequate but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description adds significant value beyond schema titles: series_id has concrete examples ('GDP', 'UNRATE'), start/end_date include format hint ('YYYY-MM-DD'), and limit states default. This helps agents construct valid calls.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (Get data) and resource (economic data series), with examples like 'GDP', 'UNRATE'. It distinguishes from sibling tools like search_economic_data (search behavior) and get_series_info (metadata), but does not explicitly call out when to use this tool over others.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. While parameter descriptions imply that series_id is required and dates are optional, there is no when-to-use or when-not-to-use context. No reference to sibling tools or conditions for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_release_datesB

Get release dates for a specific FRED release.

Args: release_id: Release ID to get dates for limit: Maximum number of dates to return (default: 100) start_date: Start date for release dates in YYYY-MM-DD format (optional) end_date: End date for release dates in YYYY-MM-DD format (optional)

ParametersJSON Schema
NameRequiredDescriptionDefault
release_idYes
limitNo
start_dateNo
end_dateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits like rate limits, pagination behavior beyond a limit parameter, or that this is a read operation. It lacks detail on what happens with large date ranges or missing data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with a clear one-line purpose followed by a parameter list. It avoids unnecessary text and is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values are covered. The description adequately covers all parameters but lacks broader context about usage constraints or integration with other tools. It is sufficient for a simple retrieval tool but not exceptional.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite schema description coverage of 0%, the description adds meaning for all four parameters through a structured Args block. It explains each parameter briefly, including default for limit and optional nature of start_date and end_date.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get release dates for a specific FRED release', specifying the verb and resource. It distinguishes from siblings like get_releases (which lists releases) and get_release_series (which gets series for a release).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as get_releases or get_release_series. No exclusions or when-not-to-use context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_releasesB

Get all FRED data releases or information about a specific release.

Args: release_id: Specific release ID to get detailed information (optional) limit: Maximum number of releases to return (default: 100)

ParametersJSON Schema
NameRequiredDescriptionDefault
release_idNo
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It only states that the tool gets releases, but does not mention rate limits, authentication, side effects, or output structure. Behavioral traits are minimally disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences and an 'Args' section. No wasted words, though it could be slightly more structured. Efficient communication.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, return values need not be explained. However, the description lacks details like pagination or ordering. For a simple tool, it is minimally adequate but has clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds that 'release_id' is optional and 'limit' defaults to 100, but does not explain what 'release_id' represents or acceptable values. Minimal added meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it gets all FRED data releases or details for a specific release. It distinguishes from siblings like 'get_release_dates' and 'get_release_series' by focusing on releases themselves.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving releases, but does not explicitly state when to use this tool versus alternatives like 'get_release_dates' or 'get_release_series'. No exclusions or when-not-to-use guidance is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_release_seriesA

Get all series for a specific FRED release.

Args: release_id: Release ID to get series for limit: Maximum number of series to return (default: 100)

ParametersJSON Schema
NameRequiredDescriptionDefault
release_idYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits, but it only states what the tool does. It does not mention pagination, rate limits, authentication needs, or any side effects. The 'limit' parameter hints at pagination but is not explained. The output schema exists but is not described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence for purpose and two lines for parameters. Every sentence adds value, and the most important information is front-loaded. No unnecessary words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 parameters, output schema exists), the description is adequate but incomplete. It lacks usage guidelines and behavioral context. While the purpose and parameter meanings are clear, the agent may need more info (e.g., return format, prerequisites) to use it effectively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must add meaning. It does so by explaining 'release_id: Release ID to get series for' and 'limit: Maximum number of series to return (default: 100)'. This provides context beyond the schema's type/title. However, it could be more detailed (e.g., where to find release_id).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get all series for a specific FRED release.' The verb 'Get' and resource 'series for a specific FRED release' are specific and unambiguous. It distinguishes from siblings like 'get_releases' (which retrieves releases) and 'get_series_info' (info on a single series).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool vs alternatives. The description does not mention any context or conditions for use, nor does it suggest when not to use it. The agent must rely solely on the tool name and sibling list to infer usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_series_infoC

Get detailed information about an economic data series.

Args: series_id: FRED series ID

ParametersJSON Schema
NameRequiredDescriptionDefault
series_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description lacks details on side effects, permissions, or rate limits. Minimal behavioral disclosure beyond the implied read operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Very concise: one sentence and a parameter line. No wasted words, but could be slightly more structured without losing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple single-parameter tool with output schema. However, it doesn't specify what 'detailed information' includes, and usage context with siblings is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds context 'FRED series ID' for the series_id parameter, which is helpful given 0% schema coverage. However, it's brief and could include format or example.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it gets detailed info about an economic data series, with a specific verb and resource. It distinctively stands out from siblings like get_categories or get_economic_series, though it doesn't explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like get_economic_series or search_economic_data. No mention of prerequisites or context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_economic_dataA

Search for economic data series in FRED database.

Args: search_text: Text to search for in series titles and descriptions limit: Maximum number of results to return (default: 10)

ParametersJSON Schema
NameRequiredDescriptionDefault
search_textYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description only states basic search functionality without mentioning rate limits, pagination, error cases, or result behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise with main purpose in first sentence; clear Args section. Could have better structure but no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple search tool with output schema present; description covers core functionality and parameters. Could mention return format but adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema coverage, description adds meaning for both parameters: search_text searches in titles/descriptions, limit has default. Provides value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Search for economic data series in FRED database', which specifies verb, resource, and source. Distinguishes from sibling tools like get_economic_series and get_series_info.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use search vs other tools. Lacks context on appropriate scenarios or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv0.1.0
    • First observedget_categories
    • First observedget_economic_series
    • First observedget_release_dates
    • First observedget_release_series
    • First observedget_releases
    • First observedget_series_info
    • First observedsearch_economic_data

TDQS

A3.6/5.0
Disambiguation5/5

Each tool serves a distinct purpose: categories, series data, series info, releases, release dates, release series, and search. No overlap in functionality.

Naming Consistency4/5

Most tools use verb_noun pattern with 'get_' prefix; 'search_economic_data' uses 'search_' instead but still follows verb_noun convention. All use snake_case, so minor deviation.

Tool Count5/5

With 7 tools covering categories, series, and releases, the count is appropriate for a focused API. Each tool earns its place without redundancy.

Completeness4/5

Covers core operations: browse categories, search series, retrieve series data and info, and access releases. Minor gap: no explicit tool for category subcategories, but get_categories with optional ID may suffice.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides access to Federal Reserve Economic Data (FRED) through Claude and other LLM clients, enabling users to search for, retrieve, and visualize economic indicators like GDP, employment, and inflation data.
    8
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to 800,000+ Federal Reserve Economic Data (FRED) time series, enabling users to search, retrieve, and analyze economic indicators like GDP, unemployment, inflation, and interest rates through natural language queries.
    MIT
  • F
    license
    C
    quality
    D
    maintenance
    Enables users to query and explore economic data from FRED, supporting tools for searching series, retrieving observations, and browsing categories. It provides comprehensive access to financial datasets, including GeoFRED maps and raw endpoint passthrough for advanced research.
    40
    1
    -
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to search and retrieve FRED economic time series, including vintage (as-published) data, with tools for series search, observation retrieval, release calendar, revision history, and more.
    9
    MIT

Latest Blog Posts

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/dracepj/fred-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server