Skip to main content

Basic Usage Examples

Learn how to use the FRED MCP Server with practical examples covering the most common economic data queries.

Getting Started

Before diving into examples, ensure you have:
  1. Configured your FRED API key
  2. Connected the server to your MCP client
  3. Verified the connection is working

Common Economic Queries

Unemployment Rate

Query: “What’s the current US unemployment rate?”
{
  "tool": "fred_get_series",
  "params": {
    "series_id": "UNRATE",
    "limit": 1,
    "sort_order": "desc"
  }
}
Response: Latest unemployment rate value

Inflation Tracking

Query: “What’s the current inflation rate?”
{
  "tool": "fred_get_series",
  "params": {
    "series_id": "CPIAUCSL",
    "units": "pc1",
    "limit": 1,
    "sort_order": "desc"
  }
}
Response: Year-over-year CPI change

GDP and Growth

Query: “What’s the latest GDP figure?”
{
  "tool": "fred_get_series",
  "params": {
    "series_id": "GDP",
    "limit": 1,
    "sort_order": "desc"
  }
}
Response: Nominal GDP in billions

Interest Rates

Federal Reserve Rates

{
  "tool": "fred_get_series",
  "params": {
    "series_id": "DFF",
    "limit": 30
  }
}

Treasury Yields

// 3-Month
{"series_id": "DGS3MO", "limit": 1}

// 2-Year
{"series_id": "DGS2", "limit": 1}

// 5-Year
{"series_id": "DGS5", "limit": 1}

// 10-Year
{"series_id": "DGS10", "limit": 1}

// 30-Year
{"series_id": "DGS30", "limit": 1}

Labor Market Data

Employment Statistics

{
  "tool": "fred_get_series",
  "params": {
    "series_id": "PAYEMS",
    "units": "chg",
    "limit": 12
  }
}

Jobless Claims

{
  "tool": "fred_get_series",
  "params": {
    "series_id": "ICSA",
    "limit": 52
  }
}

Housing Market

Home Prices and Sales

{
  "tool": "fred_get_series",
  "params": {
    "series_id": "CSUSHPISA",
    "units": "pc1",
    "limit": 24
  }
}

Mortgage Rates

{
  "tool": "fred_get_series",
  "params": {
    "series_id": "MORTGAGE30US",
    "limit": 52
  }
}

Financial Markets

Stock Market Indices

{
  "tool": "fred_get_series",
  "params": {
    "series_id": "SP500",
    "limit": 252
  }
}

Exchange Rates

{
  "tool": "fred_get_series",
  "params": {
    "series_id": "DEXUSEU",
    "limit": 30
  }
}

Discovering Data

Search for Series

{
  "tool": "fred_search",
  "params": {
    "search_text": "inflation",
    "tag_names": "usa,monthly",
    "limit": 10
  }
}

Browse Categories

{
  "tool": "fred_browse",
  "params": {
    "browse_type": "categories"
  }
}

Creating Reports

Economic Dashboard

// Comprehensive economic snapshot
async function getEconomicDashboard() {
  const indicators = [
    { id: "GDPC1", name: "Real GDP", transform: "pca" },
    { id: "UNRATE", name: "Unemployment" },
    { id: "CPIAUCSL", name: "CPI Inflation", transform: "pc1" },
    { id: "DFF", name: "Fed Funds Rate" },
    { id: "DGS10", name: "10-Year Treasury" },
    { id: "SP500", name: "S&P 500" }
  ];

  const results = {};
  for (const indicator of indicators) {
    const params = {
      series_id: indicator.id,
      limit: 1,
      sort_order: "desc"
    };
    if (indicator.transform) {
      params.units = indicator.transform;
    }
    results[indicator.name] = await callTool("fred_get_series", params);
  }
  return results;
}

Comparative Analysis

// Compare periods
async function comparePeriods(seriesId, period1Start, period2Start) {
  const period1 = await callTool("fred_get_series", {
    series_id: seriesId,
    observation_start: period1Start,
    observation_end: addYear(period1Start),
    units: "pc1"
  });

  const period2 = await callTool("fred_get_series", {
    series_id: seriesId,
    observation_start: period2Start,
    observation_end: addYear(period2Start),
    units: "pc1"
  });

  return { period1, period2 };
}

Tips for Effective Queries

1

Start Simple

Begin with basic queries and add complexity as needed
2

Use Transformations

Apply units transformations for meaningful comparisons
3

Check Frequency

Ensure data frequencies match when comparing series
4

Handle Missing Data

Some series have gaps; always check for null values
5

Optimize Requests

Request only the data you need using limits and date ranges

Common Patterns

Latest Value Pattern

{
  "series_id": "SERIES_ID",
  "limit": 1,
  "sort_order": "desc"
}

Time Period Pattern

{
  "series_id": "SERIES_ID",
  "observation_start": "START_DATE",
  "observation_end": "END_DATE"
}

Growth Rate Pattern

{
  "series_id": "SERIES_ID",
  "units": "pc1",  // or "pch", "pca"
  "limit": 12
}

Frequency Conversion Pattern

{
  "series_id": "SERIES_ID",
  "frequency": "m",  // or "q", "a"
  "aggregation_method": "avg"
}

Next Steps