Model Context Protocol server for stock market data using Yahoo Finance
StockMCP demonstrates solid definition quality across 7 well-organized financial tools. All tools have clear, action-verb names (get_*) and substantive descriptions (194-280 chars avg). Input schemas are fully defined with proper JSON Schema types, descriptions, and constraints (enums, patterns, min/max). However, output schemas are undocumented, no tool declares what fields are returned, forcing LLMs to infer structure. Tool descriptions could be more LLM-optimized (some lack clear 'when to use' guidance). Error handling is minimal, no recovery guidance or categorization visible in the code. Tool composition is strong: each tool has a single responsibility, and parameter naming is consistent (symbol vs instrument is a minor inconsistency). Security is solid: no secrets exposed as parameters, all tools are read-only.
Retrieve analyst price targets (high/low/mean), consensus ratings (Buy/Hold/Sell), and future EPS forecasts. Essential for understanding market sentiment and professional analyst expectations for investment decision making.
Analyze dividend payment history and corporate actions with quality metrics. Includes dividend yield calculations, growth rates, consistency scoring, and stock split information for income-focused investment analysis.
Access comprehensive financial data including income statements, balance sheets, cash flow statements, and calculated financial ratios. Essential for fundamental analysis, valuation, and long-term investment research.
Provide forward growth projections for revenue, earnings (EPS), and free cash flow based on analyst estimates and company projections. Includes 1-year estimates, 3-year and 5-year CAGR projections with cumulative growth rates.
Retrieve historical OHLCV (Open, High, Low, Close, Volume) data with optional total return calculation including reinvested dividends. Ideal for backtesting, technical analysis, and performance measurement.
Output schemas are completely undocumented. No tool declares what fields, data types, or structure are returned. LLMs must guess structure, risking parse errors and forcing manual exploration.
Tool descriptions lack explicit 'when to use' context. For example, get_fundamentals and get_analyst_forecasts both provide financial analysis, when should an LLM choose one over the other? Descriptions should disambiguate.
Parameter naming inconsistency: get_realtime_quote and get_analyst_forecasts use 'symbol', while get_price_history and get_fundamentals use 'instrument'. LLMs may conflate the two identifiers.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-21 | C | 60 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 52 | 2025-06-18+ | v1 |
Retrieve current market data for a stock including price, volume, market cap, and key financial ratios. Provides up-to-date trading information essential for market analysis and investment decisions.
Provide comprehensive valuation analysis including current and forward multiples (P/E, PEG, P/B, P/S, EV/EBITDA), sector comparison, valuation score with qualitative assessment, and historical context for investment decision-making.
Error handling is minimal. Tool descriptions do not explain how to recover from failures (e.g., invalid symbol, missing data, API rate limits). No guidance on retryability or what to do next.
Tool name 'get_dividends_and_actions' violates single-responsibility principle. It combines two distinct concerns (dividend analysis and corporate actions). Should split into get_dividend_history and get_corporate_actions.
No pagination support visible for tools that could return many results (e.g., get_price_history with multi-year date ranges). No limit, offset, or cursor parameters documented.