Yahoo Finance + CoinGecko MCP server with sandboxed recursive market analysis. Stocks, ETFs, options, and crypto — zero API keys required.
Yahoohoo demonstrates solid tool definition practices with 18 well-structured tools covering financial data and crypto markets. All tools have descriptions (avg 120 chars), input schemas with Zod validation, and clear parameter types. Naming follows verb_noun convention (yahoo_search, crypto_prices, analyze). However, several tools lack parameter descriptions in the schema (e.g., crypto_trending, crypto_global have empty input objects), and output schemas are not formally documented. Error handling is minimal, no recovery guidance or actionable error messages visible. The analyze tool is complex but lacks clear documentation of its recursive behavior and output structure. Tool composition is good (single responsibility), but some tools could benefit from richer parameter constraints and clearer chaining documentation.
Run recursive market analysis with sandboxed Python execution. Analyzes stocks, ETFs, options, and crypto with multi-timeframe support and optional LLM-powered reasoning.
Retrieve a previously saved analysis run by ID.
List all saved analysis runs.
Get global cryptocurrency market overview from CoinGecko.
Get detailed cryptocurrency information from CoinGecko.
Get top cryptocurrencies by market cap with rich data from CoinGecko.
Get OHLC candle data for a cryptocurrency from CoinGecko.
Get current prices for multiple cryptocurrencies from CoinGecko.
Two tools (crypto_trending, crypto_global) have empty input schemas with no parameter documentation.
Output schemas are not formally documented for any tool. LLMs cannot plan downstream calls or extract fields without knowing return structure. Rubric baseline: 100% of A+ tools have documented return types.
No error handling guidance visible. Tools do not return actionable error messages (e.g., 'Symbol not found. Try yahoo_search() first.') or error classification (retryable vs fatal). Rubric requires recovery guidance.
The analyze tool is complex (recursive, sandboxed Python, multi-timeframe) but lacks clear documentation of output structure, recursion depth behavior, and when to use reasoningMode='rlm' vs 'deterministic'.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2025-06-18+ | v2 |
Search cryptocurrencies by query on CoinGecko.
Get trending cryptocurrencies from CoinGecko (what people are searching for).
Fetch historical OHLCV bars from Yahoo Finance. Use summary=true to get computed statistics instead of raw bars (saves context).
Get analysis insights including technical levels, outlook, valuation, and recommendations for a symbol.
Fetch option chain snapshots from Yahoo Finance. Use expiries > 1 to sweep multiple expiry dates and get per-expiry chains.
Fetch current quote snapshots for one or more symbols.
Fetch company profile and valuation/fundamental summary modules.
Run a predefined Yahoo Finance screener. Available screens: day_gainers, day_losers, most_actives, undervalued_large_caps, growth_technology_stocks, most_shorted_stocks, small_cap_gainers, aggressive_small_caps.
Search Yahoo Finance instruments by name, symbol, or keyword.
Get currently trending symbols on Yahoo Finance.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. All tools are READ_ONLY per metadata, but this is not signaled in the MCP schema. Agents cannot infer safety properties.