Federal Reserve Economic Data (St. Louis Fed) MCP server for accessing economic data series, searching, and browsing categories
FRED MCP has well-structured tool definitions with complete input schemas and descriptions for all 5 tools. All tools follow verb_noun naming (fred_get_*, fred_search, fred_series_info, fred_category, fred_releases). Descriptions are substantive (100-200 chars), explaining WHAT each tool does and WHEN to use it. Parameters have types and descriptions. However, output schemas are NOT documented, the code shows fredFetch() returns raw API responses without specifying the structure LLMs should expect. Error handling is minimal (generic 'FRED API error' with status code). No enum constraints on optional parameters like 'frequency', 'units', 'order_by', 'sort_order', these accept free-form strings, inviting hallucinated values. The _apiKey parameter is exposed as a tool parameter (security anti-pattern), though the code does extract and delete it before use. Missing: output schema documentation, enum constraints, error recovery guidance, and per-tool permission declarations.
Browse FRED categories. Use category_id=0 for the root. Useful for exploring available data by topic (housing = 97, money/banking/finance = 32991, population/employment/labor = 10).
Get observations (data points) for a FRED series. Key housing series: MORTGAGE30US (30-year mortgage rate), HOUST (housing starts), CSUSHPISA (Case-Shiller home price index), MSPUS (median home sale price), PERMIT (building permits), RRVRUSQ156N (rental vacancy rate).
Get the latest FRED data releases. Shows upcoming and recent releases of economic data.
Search for FRED series by keyword. Useful for discovering series IDs for housing, employment, inflation, and other economic data.
Get metadata about a FRED series: title, units, frequency, seasonal adjustment, notes, and date range.
Output schemas not documented. fredFetch() returns raw API responses (observations array, metadata fields) but LLMs have no schema to plan downstream calls or extract fields. Pattern requires 'Document the output schema.'
_apiKey exposed as tool parameter (security anti-pattern). Credentials must never appear in tool parameters, they end up in agent logs and traces. Use server-side secret injection via environment variables.
Optional parameters 'frequency', 'units', 'order_by', 'sort_order' lack enum constraints. Descriptions list valid values as free text ('d, w, bw, m, q, sa, a') but no formal enum. LLMs will hallucinate invalid values like 'daily' or 'monthly' instead of 'd' or 'm'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Error handling is generic. fredFetch() throws 'FRED API error (status): text' with no recovery guidance. Pattern requires 'Error responses must tell the LLM what to do next.' E.g., 'Series not found. Try fred_search() to discover valid series IDs.'
No pagination support documented. fred_search and fred_releases accept 'limit' and 'offset' but no 'total_count' or 'next_cursor' returned. Large result sets risk context window exhaustion. Pattern requires pagination with total count.