mcpbeat

Fred

kansoku-trade/fred

US/global macro time series from St. Louis Fed FRED — CPI, GDP, Fed funds, yields, M2, DXY, etc.

3k tokens
context cost
the whole folder, loaded on every use
4
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
271
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/kansoku-trade/kansoku --skill fred

The instruction itself

9 sections, as written by the author

fred

> Response language: match user input (zh-CN / zh-TW / en).

When to use

Trigger phrases:

  • CPI / core CPI / PCE / PPI / inflation / 通胀 / 核心通胀
  • GDP / 国内生产总值
  • unemployment / 失业率 / U-3 / U-6 / nonfarm / 非农
  • Fed funds / 联储利率 / SOFR
  • 2Y / 10Y yield / yield curve / 美债利率 / 收益率曲线
  • M1 / M2 / 货币供应
  • DXY / 美元指数 / USD index
  • VIX / 10Y breakeven / 通胀预期
  • WTI / Brent / 油价 / gold
  • consumer sentiment / 消费者信心 / housing starts / retail sales

Workflow

  • Resolve user phrasing to a FRED series ID — first via aliases.json (curated), then search.py if no alias matches.
  • Run series.py <SERIES_ID|alias> for observations + metadata.
  • Synthesise NL reply with units, frequency, and last update date; cite "Source: St. Louis Fed (FRED)".

Environment is auto-loaded on script import from .env at project root (or ~/.config/market-intel/env as fallback) — no manual source needed.

CLI examples

# Latest 60 monthly CPI observations
python3 .claude/skills/fred/scripts/series.py CPI

# 2Y Treasury yield, last 30 daily observations
python3 .claude/skills/fred/scripts/series.py "2Y yield" --limit 30

# 10-year breakeven inflation, custom window, ascending
python3 .claude/skills/fred/scripts/series.py T10YIE --start 2024-01-01 --order asc

# Discover series IDs
python3 .claude/skills/fred/scripts/search.py "consumer price index" --limit 10

# Bypass cache
python3 .claude/skills/fred/scripts/series.py CPI --fresh

Output shape

{
  "ok": true,
  "data": [{"date": "2026-04-01", "value": 314.2}, ...],
  "meta": {
    "series_id": "CPIAUCSL",
    "title": "Consumer Price Index for All Urban Consumers: All Items",
    "units": "Index 1982-1984=100",
    "frequency": "Monthly",
    "seasonal_adjustment": "SA",
    "last_updated": "2026-05-13 07:36:01-05",
    "count_returned": 60,
    "alias_resolved": "CPI"
  }
}

Available aliases

See aliases.json for the curated CN/EN → series ID map. Common ones:

| Alias | Series ID |

| ------------------------ | --------- |

| CPI | CPIAUCSL |

| core CPI / 核心 CPI | CPILFESL |

| PCE | PCEPI |

| GDP | GDPC1 |

| unemployment / 失业率 | UNRATE |

| nonfarm / 非农 | PAYEMS |

| Fed funds / 联储利率 | DFF |

| 10Y yield / 美债 10 年 | DGS10 |

| yield curve | T10Y2Y |

| DXY / 美元指数 | DTWEXBGS |

| M2 | M2SL |

| VIX | VIXCLS |

| 10Y breakeven / 通胀预期 | T10YIE |

If the user's phrase isn't in the map, fall back to search.py "<query>" and pick the highest-popularity non-discontinued result.

Error handling

| Exit code | Meaning | LLM action |

| --------- | ---------------------- | ------------------------------------------------------------------------------------------------------------- |

| 0 | Success | Parse data, narrate. |

| 2 | Missing FRED_API_KEY | Tell user to register at https://fred.stlouisfed.org/docs/api/api_key.html and add to .env at project root. |

| 3 | HTTP 4xx or non-JSON | Surface error from hint. |

| 4 | Network | Suggest retry. |

Known limitations

  • Daily series may have weekend/holiday gaps (FRED returns NaN as .; we normalise to null).
  • "Discontinued" series filtered by default in search.py — use --include-discontinued to override.
  • Series metadata cache TTL 24 h; observation cache TTL 1 h. Use --fresh for the latest.
  • longbridge-quote for live equity quotes.
  • gdelt for narrative / sentiment context.
  • sec-edgar for individual-company filings.

How to use it

Copy the folder

Take kansoku-trade/fred from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.