unofficial Yahoo Finance API MCP Server - A Model Context Protocol server implementation for Yahoo Finance API
Server defines 5 tools with Zod schemas and basic descriptions. All tools are READ_ONLY financial data queries. Naming follows verb_noun pattern (yahoo_*). Schemas are present and typed. However, descriptions are generic (avg ~80 chars, below 194-char baseline), lack WHEN/WHY guidance, and omit output schema documentation. Parameters lack detailed constraints (e.g., no min/max for quotesCount, no format hints for dates). Error handling returns raw error messages without recovery guidance. No tool annotations (readOnlyHint, etc.). Output is always JSON text blob, no structured response schema documented.
Retrieves chart data for a stock symbol with customizable time period and interval
Retrieves real-time quote information for one or more stock symbols
Retrieves detailed summary information for a stock symbol including price and summary details
Searches for stocks and related information on Yahoo Finance
Retrieves historical stock data for a given symbol with customizable period, interval, and optional parameters
Descriptions lack actionable context. All 5 tools have generic 40 - 80 char descriptions that state WHAT but omit WHEN to use, dependencies, or prerequisites. E.g., 'Retrieves historical stock data' does not explain when to call this vs yahoo_chart, or that period/period1 are mutually exclusive.
Output schema not documented. All tools return JSON text in a content array, but the structure of that JSON (fields, types, nesting) is never specified. LLMs cannot plan downstream calls or extract fields reliably.
Parameter constraints missing. quotesCount, newsCount, and other numeric params lack min/max bounds. Date params (period1, period2) lack format hints (ISO 8601 vs epoch vs string). LLMs will pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Error handling provides no recovery guidance. Errors return raw messages ('Not Found', 'Unknown error occurred') without suggesting next steps. E.g., 'Stock symbol not found' should suggest 'Try yahoo_search() to find the correct symbol.'
No tool annotations. Tools lack readOnlyHint, destructiveHint, or idempotentHint. All are read-only, but this is not declared in the tool definition, LLMs must infer it from the description.