MCP server providing access to Yahoo Finance API for stock quotes, market data, financial information, and trending stocks
14 tools with consistent verb-noun naming (get_*, search) and basic descriptions. However, critical gaps: (1) Most parameter descriptions are minimal (1-5 words), violating the 72-char baseline for param annotations. (2) No output schemas documented, LLMs cannot infer response structure. (3) No enum constraints on multi-value params (e.g., instrument_type, news type, screener type accept free-form strings). (4) Error handling is generic ('Unable to fetch X') with no recovery guidance. (5) All tools return JSON strings rather than structured objects, forcing LLM parsing. Naming is solid (90% start with action verbs), but descriptions and schemas lag production baselines.
Get recently published stock news in all sectors.
Get current market quote data for stocks, ETFs, mutual funds, etc.
Get trending stocks in today's market.
Get stock balance sheet data.
Get the financial data of the given stock.
Get stock insider holders' information.
No output schemas documented. Tools return JSON strings; LLMs cannot infer response structure, field names, or types. Violates pattern:tool and pattern:response-shaper.
Parameter descriptions are minimal (1-5 words). Baseline is 72 chars. E.g., 'instrument_type' described as 'The type of the instrument, STOCKS/ETF/MUTUALFUNDS.' lacks format guidance and constraint explanation. Violates pattern:tool-description.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Get stock institution ownership.
Get stock key statistics data.
Get net share purchase activity information for a particular stock.
Get stock profile information such as company name, descriptions, website, etc.
Get stock recommendations and trends.
Get stock SEC filings.
Get stock upgrade and downgrade history.
Search for any stock, ETF, or mutual fund. First 5 results are returned.
No enum constraints on multi-value parameters. 'instrument_type', 'type' (news), and screener 'type' accept free-form strings. LLMs will hallucinate invalid values. Violates pattern:constrained-input.
Generic error messages ('Unable to fetch X') provide no recovery guidance. LLMs cannot determine if error is retryable, user-fixable, or fatal. Violates pattern:recovery-guide and pattern:error-classification.
No pagination support. Tools return hardcoded limits (e.g., first 5 results) without offset/limit params or next_cursor. Violates pattern:paginated-result.