MCP App Server for economic data — interest rates, jobs, inflation, housing, bank health. Interactive charts and cross-source analysis from FRED, BLS, Treasury, and FDIC.
Economic Intelligence MCP server demonstrates solid definition quality with consistent naming conventions, clear descriptions, and well-structured schemas across 13 tools. All tools follow verb_noun naming patterns (econ_*, open_*, get_*), most descriptions are comprehensive (100-300 chars typical), and input schemas are present with type information. However, output schemas are not formally documented in the tool definitions, instead inferred from code comments and return type hints. Tool descriptions are human-readable but could be more LLM-optimized per the 50-200 char guideline. Error handling documentation is minimal. All tools are READ_ONLY (appropriate for domain), properly annotated, and no security issues detected with parameters.
Active economic alerts — threshold crossings (signals above 60% or below 30%), trend reversals (3+ month trend then reversal), and recession probability shifts.
FDIC bank health indicators — capital ratios, problem bank count, failure history.
What shifted since a given date — compares latest signal values to prior snapshots. Surfaces significant score changes across all tracked signals.
Compare any two FRED series side by side
GDP growth — nominal, real, and annualized growth rate.
Housing data — starts, permits, home prices, mortgage rates, inventory.
Output schemas not formally documented in tool definitions. Return types are inferred from code comments and return statements (e.g., _series_to_chart_data, _rates_summary) rather than explicit Pydantic models or schema declarations in the MCP tool registration. LLMs cannot reliably infer output structure from code alone.
No error recovery guidance in tool descriptions. Tools return dictionaries with 'title', 'series', 'summary' but offer no guidance on what the LLM should do if the API fails (e.g., 'If FRED API is unavailable, suggest checking http://fred.stlouisfed.org/data/UNRATE directly'). Descriptions are purely functional, not recovery-oriented.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 73 | <=2025-11-25 | v2 |
CPI, PCE, and core inflation trends.
Current and historical interest rates — Fed funds, 10Y/30Y treasury, mortgage rates, and yield curve.
Employment data — unemployment rate, nonfarm payrolls, wage growth, job openings.
Search across 800,000+ FRED series by keyword.
How economic signals have changed over time. Backfilled 12 months on first run, updated every 6 hours. Tracks yield curve, jobs/inflation divergence, bank stress, and recession probability.
Treasury rates, yield spreads, and federal debt levels.
Open the Economic Intelligence app — interactive charts, recession gauge, signals, search, and data explorer.
econ_signal_history and econ_search descriptions lack clarity on empty/no-results behavior. econ_signal_history: 'Empty string returns all signals', does this mean one call returns all signals in history, or does it behave differently? econ_search: no mention of what to do if query returns 0 results or what 'limit' means for pagination (is there a total_count? next_cursor?).
Parameter 'period' is used across 9 tools with identical descriptions but examples vary (some '10y', some only '5y'). No enum constraints are enforced, 'period' accepts free-form strings like '1d', '3m', '7w', none of which are documented as valid. LLMs will hallucinate invalid period values.
open_economic_app tool has empty input schema {} but no description explaining what 'opening' it does or what interaction the user should expect. Is it a UI launch? A data export? A report generation? The description says 'Open the Economic Intelligence app, interactive charts...' but this is vague for an LLM deciding whether to invoke it.