An MCP server that gives Claude access to live financial data from SEC EDGAR (public company filings), FRED (macroeconomic time series), and Alpha Vantage (real-time stock quotes and company fundamentals).
Server has well-structured tool definitions with complete schemas, clear descriptions, and proper parameter typing. All 6 tools include input schemas with type constraints and descriptions. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are correctly applied. However, descriptions could be more concise (many exceed 200 chars), and output schemas are not explicitly documented. Error handling guidance is absent from tool descriptions. Naming follows verb_noun convention consistently (edgar_search, edgar_get, fred_search, fred_get, market_get).
Get recent SEC filings for a company using its CIK. Supports filtering by form type (10-K annual report, 10-Q quarterly, 8-K material events, DEF 14A proxy). Returns filing dates, accession numbers, and direct URLs.
Search SEC EDGAR for a company by name or ticker. Returns CIK numbers needed for edgar_get_filings. Example: query='Apple' or query='AAPL'.
Fetch observations for a FRED economic data series. Returns time-series values with dates and units. Use sort_order='desc' for most recent data first.
Search the FRED database for economic data series by keyword. Returns series IDs, titles, units, and frequency. Use series IDs with fred_get_series to fetch data. Common series: GDP, FEDFUNDS, CPIAUCSL, UNRATE, DGS10 (10-yr Treasury).
Get company fundamentals: sector, P/E ratio, EPS, revenue, profit margin, 52-week range, analyst target price, and business description.
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Returns filing dates, accession numbers, and direct URLs') but do not specify the structured response format, field names, or types. LLMs cannot plan downstream tool calls without knowing response structure.
Tool descriptions exceed 200 characters (baseline p90=392 but best practice is 50-200 for clarity). Examples: edgar_get_filings (280 chars), fred_get_series (240 chars). Verbose descriptions waste tokens and bury key intent.
No error handling guidance in tool descriptions. Tools calling external APIs (SEC EDGAR, FRED, Alpha Vantage) can fail (rate limits, network errors, invalid CIK/series_id). Descriptions do not explain what to do on failure or how to recover.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Get the latest stock quote for a ticker: price, change, volume, and previous close.
Parameter 'limit' in fred_search_series and fred_get_series lacks guidance on what happens when limit is exceeded or when results are paginated. No mention of pagination support or total count in response.
market_get_quote description states 'latest stock quote' but does not clarify idempotency or data freshness. Stock prices change every second during market hours, LLMs need to know this is non-idempotent and may return different values on retry.