MCP server providing real-time stock price retrieval and company ticker resolution through Yahoo Finance API
Single tool with solid naming and clear schema, but incomplete parameter descriptions and missing output schema documentation. The tool name 'get_stock_price' follows verb_noun convention and correctly starts with an action verb. The inputSchema is well-structured with proper JSON Schema syntax, including anyOf constraint for mutual exclusivity. However, parameter descriptions lack detail about constraints and expected formats. The tool description is adequate but does not explain WHEN to use it or any prerequisites. Output schema is not documented, callers cannot know what fields to expect (latest_close, change, pct_change) without reading implementation code. Error handling returns text responses but lacks actionable guidance for LLM recovery. No output pagination, result limits, or structured response format documented.
Fetch real-time stock price by ticker or company name
Output schema not documented. Tool returns tuple (latest_close, change, pct_change) or error text, but no explicit schema is published. LLMs cannot plan downstream uses or validate responses without reading implementation.
Parameter descriptions lack format constraints and valid ranges. 'ticker' description says 'e.g., AAPL, TSLA' but does not state case-insensitivity, length limits, or format rules. 'company' description similarly omits whether partial names are accepted or if exact match is required.
Tool description does not explain WHEN to use it or prerequisites. Description is only 'Fetch real-time stock price by ticker or company name', lacks guidance on ticker vs company resolution, data freshness, or rate limits.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 75 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 49 | - | v1 |
Error responses are unstructured text instead of typed error objects. When no data is found or resolution fails, responses are plain text like 'No data found for symbol: INVALID'. LLMs cannot distinguish error categories (retryable vs fatal) or extract structured context.
Missing idempotency documentation. Tool calls an external API (yfinance) with time-dependent data, response differs each call. Tool description does not state this non-idempotent behavior, so LLMs may assume safe retries.