← Back to search

yahoo-finance-mcp-server

danielshashko Scanned 22d ago

Yahoo Finance MCP Server - Real-time stock data, company info, financial statements, and market analysis via Model Context Protocol

C
68.5 / 100

Versions

1.2.4latest
Jul 30, 2026
1.2.2
Jun 4, 2026
1.2.1
Jun 2, 2026
1.2.0
Jun 2, 2026
1.1.1
May 31, 2026
+ show 2 moreshow less
1.1.0
May 30, 2026
1.0.0
Nov 1, 2025
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 13

get_stock_quote
annotations: none low

Real-time quote snapshot for ONE stock: last price, day change ($ and %), open, previous close, day range, 52-week range, volume and average volume, market cap, beta, trailing P/E, EPS, dividend yield, and sector/industry/website. Use for "what's the price of X" or a quick single-stock snapshot. For several stocks side by side use compare_stocks; for the full company profile use get_company_info; for a past price series use get_historical_prices. Returns Markdown by default, or structured JSON when response_format='json'. An unknown ticker or an upstream/rate-limit error returns a short error message rather than raising.

ticker string response_format string
get_historical_prices
annotations: none low

Historical OHLCV price series for one stock over a chosen period/interval, plus summary stats (highest/lowest/average close, average volume) and total return over the window. Use for performance, trends, or charting ("how has X done over the last year"). For a single current price use get_stock_quote; for dividend/split events use get_dividends_splits. Note: intraday intervals (1m-90m) are only available for short recent periods, and long periods return many rows, so prefer JSON or a shorter period if the output is truncated. Returns Markdown (summary stats plus the last 10 rows) by default, or the full series as JSON when response_format='json'. An empty or unsupported period/interval combination returns a short message.

period string ticker string interval string response_format string
get_company_info
annotations: none low

Detailed company profile for one stock: long business summary, sector/industry, key executives, headquarters/website/employee count, and valuation & financial-highlight stats (market cap, P/E, margins, and similar). Use for "what does X do", company background, or a business overview. For the statement-level numbers (income/balance/cash flow) use get_financial_statements; for just the live price use get_stock_quote. Returns Markdown by default, or JSON when response_format='json'. An unknown ticker or upstream error returns a short error message.

ticker string response_format string
get_financial_statements
annotations: none low

Annual financial statements for one company: income statement, balance sheet, and cash flow statement, each with multiple years of data. Use for revenue, earnings, assets/liabilities, cash flow, or fundamental analysis. For headline ratios only use get_company_info; for forward projections use get_analyst_estimates. Quarterly data is not returned; request JSON for the complete machine-readable export. Returns Markdown by default, or JSON when response_format='json'. Companies without filed statements (for example some ETFs or ADRs) return empty sections or a short message.

ticker string response_format string
compare_stocks
annotations: none low

Side-by-side comparison of 2-10 stocks across key metrics (price, market cap, P/E, EPS, dividend yield, 52-week range, and period performance) with brief auto-generated insights. Use for "which is better, X or Y", peer/relative comparison, or screening a small set. For a deep dive on a single name use get_stock_quote or get_company_info. Pass 2-10 tickers in the tickers list. Returns a Markdown comparison table by default, or JSON when response_format='json'. A ticker that fails to resolve is reported per-symbol rather than failing the whole call.

tickers string response_format string
get_analyst_recommendations
annotations: none low

Wall Street analyst view on one stock: price targets (high/mean/low), consensus rating, the buy/hold/sell recommendation-trend breakdown, and recent upgrades/downgrades. Use for "what do analysts think of X", ratings, or sentiment. For forward EPS/revenue/growth projections use get_analyst_estimates instead: this tool is ratings and targets, that one is the numeric estimates. Returns Markdown by default, or JSON when response_format='json'. A stock with no analyst coverage returns the available fields as N/A; errors return a short message.

ticker string response_format string
get_market_news
annotations: none low

Latest news articles for one stock; each item has a title, publisher/source, publish date, a short summary, and a link. Use for "what's the latest news on X", recent headlines, or catalysts. Returns news only: for price use get_stock_quote, for fundamentals use the financials tools. count sets how many articles to return (1-20, default 10). Returns Markdown by default, or JSON when response_format='json'. No recent news returns a short message.

count string ticker string response_format string
get_options_chain
annotations: none low

Equity options data for one underlying, in two modes: call with no expiration_date to LIST every available expiration date; call again with a specific 'YYYY-MM-DD' to get that expiration's chain (strike, bid/ask, last, volume, open interest, implied volatility). Use for options pricing, implied volatility, or open-interest analysis. option_type selects 'calls', 'puts', or 'both'. Always discover the valid dates first (call with no date) before requesting a chain, since only listed expirations work. Returns Markdown by default, or JSON when response_format='json'. A ticker with no listed options returns a short message.

ticker string option_type string expiration_date string response_format string
get_holders
annotations: none low

Ownership and insider activity for one stock, selected by holder_type: 'institutional' (top institutional holders), 'mutualfund' (top fund holders), 'major' (insider-vs-institutional ownership % breakdown), or 'insider_transactions' (recent insider buys and sells). Use for "who owns X", institutional ownership, or insider trading activity. One holder_type per call: call again to get a different view. Returns Markdown by default, or JSON when response_format='json'. Missing data for the chosen category returns a short message.

ticker string holder_type string response_format string
get_dividends_splits
annotations: none low

Full dividend payment history (with a trailing-period summary) and the stock-split history for one stock. Use for dividend-income analysis, payment dates and amounts, dividend growth, or past split events. For the current/forward dividend yield use get_stock_quote; for price history use get_historical_prices. Returns Markdown by default, or JSON when response_format='json'. A stock that pays no dividend or has never split returns a short message noting that none exist.

ticker string response_format string
get_analyst_estimates
annotations: none low

Forward-looking analyst estimates for one stock: price targets, EPS and revenue estimates by period (current and next quarter and year), and growth estimates. Use for projected/expected numbers and forecasts. This complements get_analyst_recommendations: that tool returns ratings and the recommendation trend, this one returns the numeric forward estimates. Returns Markdown by default, or JSON when response_format='json'. A stock without analyst coverage returns the available fields as N/A or a short message.

ticker string response_format string
search_symbols
annotations: none low

Resolve a company name or keyword to ticker symbols; each match returns the symbol, name, exchange, and instrument type (equity, ETF, and so on). Use this first when you have a company or brand name but not its ticker, then pass the resolved symbol to the other tools. Not for fetching prices or fundamentals. query is the name/keyword to search; count caps the number of matches (1-20, default 8). Returns Markdown by default, or JSON when response_format='json'. No matches returns a short message.

count string query string response_format string
get_market_status
annotations: none low

Whether a stock market is currently open or closed for a given region, with trading-session timing and a summary of that region's major indices. Use for "is the US market open", market hours, or a quick index overview. region is a country code (US, GB, CA, DE, FR, IN, JP, HK, AU; default US). This is market-wide, not per-stock: use get_stock_quote for an individual price. Returns Markdown by default, or JSON when response_format='json'. An unrecognized region returns a short message.

region string response_format string

Permissions 3

filesystem low
Server uses filesystem capabilities via: fs, fs sync ops, open(), os, path
shell high
Server uses shell capabilities via: child_process, spawn(), spawnSync()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 49

low
Tool 'get_stock_quote' has no annotations annotation_checker · 100%
low
Tool 'get_historical_prices' has no annotations annotation_checker · 100%
low
Tool 'get_company_info' has no annotations annotation_checker · 100%
low
Tool 'get_financial_statements' has no annotations annotation_checker · 100%
low
Tool 'compare_stocks' has no annotations annotation_checker · 100%
low
Tool 'get_analyst_recommendations' has no annotations annotation_checker · 100%
low
Tool 'get_market_news' has no annotations annotation_checker · 100%
low
Tool 'get_options_chain' has no annotations annotation_checker · 100%
low
Tool 'get_holders' has no annotations annotation_checker · 100%
low
Tool 'get_dividends_splits' has no annotations annotation_checker · 100%
low
Tool 'get_analyst_estimates' has no annotations annotation_checker · 100%
low
Tool 'search_symbols' has no annotations annotation_checker · 100%
low
Tool 'get_market_status' has no annotations annotation_checker · 100%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: curl_cffi@0.7.0 (GHSA-qw2m-4pqf-rmpp) dependency_analyzer · 95%
medium
Vulnerable dependency: curl_cffi@0.7.0 (PYSEC-2026-2431) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.2.0 (GHSA-3qhf-m339-9g5v) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.2.0 (GHSA-9h52-p55h-vw2f) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.2.0 (GHSA-j975-95f5-7wqh) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.2.0 (GHSA-jpw9-pfvf-9f58) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.2.0 (GHSA-vj7q-gjh5-988w) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.2.0 (PYSEC-2026-1616) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.2.0 (PYSEC-2026-1617) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.2.0 (PYSEC-2026-1618) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.2.0 (PYSEC-2026-3482) dependency_analyzer · 95%
medium
Vulnerable dependency: mcp@1.2.0 (PYSEC-2026-3483) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0.0 (GHSA-mr82-8j83-vxmv) dependency_analyzer · 95%
medium
Vulnerable dependency: pydantic@2.0.0 (PYSEC-2026-1812) dependency_analyzer · 95%
info
package.json metadata manifest_parser · 100%
info
Tool: get_stock_quote manifest_parser · 90%
info
Tool: get_historical_prices manifest_parser · 90%
info
Tool: get_company_info manifest_parser · 90%
info
Tool: get_financial_statements manifest_parser · 90%
info
Tool: compare_stocks manifest_parser · 90%
info
Tool: get_analyst_recommendations manifest_parser · 90%
info
Tool: get_market_news manifest_parser · 90%
info
Tool: get_options_chain manifest_parser · 90%
info
Tool: get_holders manifest_parser · 90%
info
Tool: get_dividends_splits manifest_parser · 90%
info
Tool: get_analyst_estimates manifest_parser · 90%
info
Tool: search_symbols manifest_parser · 90%
info
Tool: get_market_status manifest_parser · 90%
info
Required env vars (1) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
low
Permission: filesystem access detected permission_analyzer · 90%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 7 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%