FRED API MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FRED API MCP Serverget the latest unemployment rate series"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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
Create a free account if you don't have one
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.py3. 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"
}
}
}
}Popular Series IDs
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)
Popular Release IDs
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 toolsget_categoriesA
Get FRED data categories.
Args: category_id: Category ID (optional, returns root categories if not specified)
| Name | Required | Description | Default |
|---|---|---|---|
| category_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes | ||
| start_date | No | ||
| end_date | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| release_id | Yes | ||
| limit | No | ||
| start_date | No | ||
| end_date | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| release_id | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| release_id | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| series_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| search_text | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
7 tool updates
v0.1.0- First observed
get_categories - First observed
get_economic_series - First observed
get_release_dates - First observed
get_release_series - First observed
get_releases - First observed
get_series_info - First observed
search_economic_data
TDQS
Each tool serves a distinct purpose: categories, series data, series info, releases, release dates, release series, and search. No overlap in functionality.
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.
With 7 tools covering categories, series, and releases, the count is appropriate for a focused API. Each tool earns its place without redundancy.
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
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
Equip AI with tools for researching economic data from Federal Reserve Economic Data (FRED).
FRED macro data, Treasury yields, FX rates & macro indicators for AI agents. Pay-per-query via x402.
Macro indicators from World Bank, FRED, IMF, and OECD via unified query surface.
GDP, unemployment, CPI, interest rates, and 800K+ economic time series from the Federal Reserve
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides 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-
- AlicenseNot gradedqualityDmaintenanceProvides 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
- FlicenseCqualityDmaintenanceEnables 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.401-
- AlicenseAqualityBmaintenanceEnables 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.9MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/dracepj/fred-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server