Skip to main content

Documentation Index

Fetch the complete documentation index at: https://fred-mcp-server.amorelli.tech/llms.txt

Use this file to discover all available pages before exploring further.

Advanced Queries

Master complex search patterns, filtering techniques, and efficient data retrieval strategies using the FRED MCP Server. Combine multiple keywords:
{
  "query": "unemployment rate seasonally adjusted",
  "limit": 20,
  "sort_by": "popularity"
}
Search strategies:
  • More specific terms = fewer, more relevant results
  • Include seasonal adjustment status
  • Add frequency (monthly, quarterly)
  • Specify geographic scope (national, state)

Wildcard Patterns

Use partial series IDs:
{
  "query": "UNRATE*",
  "search_type": "series_id"
}
Returns:
  • UNRATE (National)
  • UNRATENSA (Not seasonally adjusted)
  • UNRATEUSA (Alternate series)

Source-Specific Searches

Find series from specific agencies:
{
  "query": "employment",
  "tags": ["bls"],
  "limit": 50
}

Tag-Based Filtering

Multiple Tag Combinations

{
  "query": "inflation",
  "tags": ["monthly", "sa", "usa"],
  "tag_mode": "all"  // Must match all tags
}
Common tag combinations:

National Monthly SA

["monthly", "sa", "usa"]

Quarterly National Accounts

["quarterly", "bea", "nipa"]

Daily Financial Data

["daily", "finance", "rates"]

State-Level Data

["state", "monthly", "sa"]

Tag Discovery

Find related tags:
{
  "query": "employment",
  "include_observation_values": false,
  "sort_by": "popularity"
}
Then examine tags in results to refine search.

Category-Based Browsing

1

Start at Root

{
  "category_id": 0
}
Returns top-level categories
2

Drill Down

{
  "category_id": 10  // Employment & Labor
}
Returns subcategories
3

Get Series

{
  "category_id": 11,  // Current Employment Statistics
  "limit": 100
}
Returns series in category
Category IDNameSeries Count
32991Money, Banking & Finance~10,000
10Population, Employment & Labor~15,000
1Production & Business Activity~40,000
32455Prices~25,000
32263International Data~60,000
3008U.S. Regional Data~30,000

Geographic Queries

State-Level Data

Find data for specific states:
{
  "query": "unemployment rate",
  "tags": ["state", "monthly", "sa"],
  "limit": 50
}
State code patterns:
  • Format: {INDICATOR}{STATE}
  • Example: CAUR (California Unemployment Rate)
// Unemployment
{ "series_id": "CAUR" }

// GDP
{ "series_id": "CANGSP" }

// Home Price Index
{ "series_id": "CASTHPI" }
// Unemployment
{ "series_id": "TXUR" }

// GDP
{ "series_id": "TXNGSP" }

// Home Price Index
{ "series_id": "TXSTHPI" }
// Unemployment
{ "series_id": "NYUR" }

// GDP
{ "series_id": "NYNGSP" }

// Home Price Index
{ "series_id": "NYSTHPI" }

Metro Area Data

Metropolitan Statistical Areas (MSAs):
{
  "query": "unemployment rate",
  "tags": ["msa", "monthly"],
  "limit": 100
}
Example MSAs:
  • LAUMT064910: Los Angeles-Long Beach-Anaheim
  • LAUMT364190: New York-Newark-Jersey City
  • LAUMT121410: Chicago-Naperville-Elgin

International Data

{
  "query": "gdp",
  "tags": ["oecd"],
  "limit": 50
}

// Or specific countries
{
  "query": "gdp japan",
  "limit": 20
}

Frequency-Specific Searches

Daily Data

{
  "tags": ["daily"],
  "query": "interest rate",
  "limit": 20
}
Common daily series:
  • Treasury yields (DGS2, DGS10, DGS30)
  • Fed funds rate (DFF)
  • Exchange rates (DEXUSEU, DEXJPUS)
  • Stock indices (SP500, DJIA)

High-Frequency Financial

{
  "tags": ["daily", "finance"],
  "sort_by": "popularity",
  "limit": 50
}

Low-Frequency Data

Annual or less frequent:
{
  "tags": ["annual"],
  "query": "population",
  "limit": 30
}

Date Range Optimization

Recent Data Only

{
  "series_id": "GDP",
  "observation_start": "2020-Q1",
  "observation_end": "2024-Q3"
}
Limiting date ranges reduces API payload size and improves performance

Historical Analysis

Long-term series:
{
  "series_id": "CPIAUCSL",
  "observation_start": "1947-01-01",  // Series inception
  "observation_end": "2024-10-01"
}

Rolling Windows

Get last N periods:
{
  "series_id": "UNRATE",
  "observation_start": "2023-01-01",  // Last ~20 months
  "sort_order": "desc",
  "limit": 20
}

Complex Filtering

Popularity Threshold

Focus on commonly-used series:
{
  "query": "gdp",
  "sort_by": "popularity",
  "limit": 100
}
Filter results where popularity > 50:
results.filter(series => series.popularity > 50)

Frequency Filtering

Find only monthly series:
{
  "query": "inflation",
  "tags": ["monthly"]
}

Seasonal Adjustment

Prefer seasonally adjusted:
{
  "query": "retail sales",
  "tags": ["sa"]  // Seasonally adjusted only
}

Batch Retrieval

Multiple Series

Retrieve related series efficiently:
const series_ids = [
  "UNRATE",    // Unemployment
  "CPIAUCSL",  // CPI
  "GDP",       // GDP
  "DFF",       // Fed Funds
  "SP500"      // Stock Market
];

// Request each
series_ids.forEach(id => {
  fred_get_series({
    series_id: id,
    observation_start: "2020-01-01"
  });
});

Category Sweep

Get all series in a category:
{
  "category_id": 11,  // Current Employment Statistics
  "limit": 1000,      // Max per request
  "offset": 0
}

// If more than 1000, paginate:
// offset: 1000, 2000, 3000, etc.

Search Optimization

Precision vs Recall

{
  "query": "UNRATE",  // Exact ID
  "search_type": "series_id"
}
Returns: 1 exact match

Sort Strategies

{ "sort_by": "popularity" }
Best for: Finding commonly-used series
{
  "sort_by": "title",
  "sort_order": "asc"
}
Best for: Alphabetical browsing
{
  "sort_by": "last_updated",
  "sort_order": "desc"
}
Best for: Finding recently updated data
{
  "sort_by": "series_id",
  "sort_order": "asc"
}
Best for: Finding related series by ID pattern

Real-World Query Patterns

Economic Dashboard

Build a monitoring dashboard:
const dashboard_queries = [
  // Labor Market
  {
    series_ids: ["UNRATE", "PAYEMS", "CIVPART"],
    start: "2020-01-01",
    transform: "lin"
  },

  // Inflation
  {
    series_ids: ["CPIAUCSL", "CPILFESL", "PCEPI"],
    start: "2020-01-01",
    transform: "pc1"
  },

  // Growth
  {
    series_ids: ["GDP", "GDPC1", "INDPRO"],
    start: "2020-Q1",
    transform: "pca"
  },

  // Markets
  {
    series_ids: ["DFF", "DGS10", "SP500"],
    start: "2020-01-01",
    transform: "lin"
  }
];

Comparative Analysis

Compare across geographies:
const states = ["CA", "TX", "NY", "FL"];
const indicator = "UR";  // Unemployment Rate

states.forEach(state => {
  fred_get_series({
    series_id: `${state}${indicator}`,
    observation_start: "2020-01-01"
  });
});

Historical Research

Long-term trend analysis:
{
  "series_id": "CPIAUCSL",
  "observation_start": "1947-01-01",  // Full history
  "units": "pc1",  // Annual inflation
  "frequency": "a",  // Annual frequency
  "aggregation_method": "eop"  // End of period
}

Nowcasting

Get most recent values:
{
  "series_id": "UNRATE",
  "sort_order": "desc",
  "limit": 1  // Just the latest
}

Performance Tips

1

Use Specific IDs

When known, use exact series IDs instead of search
2

Limit Date Ranges

Request only needed time periods
3

Apply Filters Early

Use tags to narrow before searching
4

Plan Data Needs

Identify what data you need upfront to avoid redundant calls
5

Batch Related Queries

Group similar requests together

Troubleshooting

Common issues:
  • No results: Query too specific, try broader terms
  • Too many results: Add tags or more specific terms
  • Slow queries: Reduce date range or result limit
  • Unexpected series: Check tags and sort order

Query Refinement

// Too broad (10,000 results)
{ "query": "rate" }

// Better (500 results)
{ "query": "interest rate" }

// Best (20 results)
{
  "query": "interest rate",
  "tags": ["daily", "treasury"],
  "limit": 20
}

Next Steps

API Reference

Complete tool documentation

Economic Analysis

Applied analysis patterns

Common Series

Popular series reference

Troubleshooting

Solve common issues