Skip to main content
Glama
Yahoo Finance MCP Server

Yahoo Finance MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Read-only Yahoo Finance market data: no account, no API key, nothing is written. Start with search_symbols when you have a company name but no ticker. Per stock: get_stock_quote (price), get_company_info (profile), get_financial_statements, get_analyst_recommendations, get_analyst_estimates, get_earnings (next date, beat/miss history), get_holders (institutions, insider trades, insider net buying), get_dividends_splits, get_options_chain, get_market_news. Funds: get_fund_data. Discovery: screen_stocks (movers, most active, undervalued), get_earnings_calendar (who reports when), get_sector_overview (sector and industry leaders). Market-wide: get_market_status, compare_stocks. Every tool takes response_format='json' for machine-readable output. Data can be delayed about 15 minutes and Yahoo rate-limits bursts: space out large batches. Not investment advice.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_stock_quoteA

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.
get_historical_pricesA

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.
get_company_infoA

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.
get_financial_statementsA

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.
compare_stocksA

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.
get_analyst_recommendationsA

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. Not for news-driven sentiment (use get_market_news). Small caps often have few or no covering analysts, so a thin consensus carries little weight.

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.
get_market_newsA

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.
get_options_chainA

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.
get_holdersA

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), 'insider_transactions' (recent insider buys and sells, one row per trade), 'insider_purchases' (net insider buying vs selling over the last 6 months), or 'insider_roster' (each insider, their position and shares held).

Use for "who owns X", institutional ownership, or insider trading activity. One holder_type per call: call again to get a different view. Not for share count, float or valuation (use get_company_info) or for analyst opinion (use get_analyst_recommendations). Institutional and fund holdings come from quarterly filings, so they can be a few months old; insider trades are filed within days and are the fresher signal.

Returns Markdown by default, or JSON when response_format='json'. Missing data for the chosen category returns a short message.
get_dividends_splitsA

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.
get_analyst_estimatesA

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.
search_symbolsA

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. Skip it when you already have a valid ticker. Not for fetching prices or fundamentals. A name often matches several listings (the US share, foreign listings, ETFs): choose by exchange and type, not just the first row.

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.
get_market_statusA

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 one of US (default), GB, ASIA or EUROPE for equity markets, or RATES, COMMODITIES, CURRENCIES or CRYPTOCURRENCIES for those asset classes; other country codes are not accepted. This is market-wide, not per-stock: use get_stock_quote for an individual price, and get_sector_overview for sector performance.

Returns Markdown by default, or JSON when response_format='json'. An unrecognized region returns a short message.
get_earningsA

Next earnings date for one stock (with days until it, consensus EPS and revenue range) plus its earnings history: each past report's EPS estimate, reported EPS and surprise %. Also returns the next ex-dividend date.

Use before opening or holding a position through earnings, to check the earnings track record (beats vs misses), or for "when does X report". For forward EPS/revenue estimates by period use get_analyst_estimates; for every company reporting in a date range use get_earnings_calendar; for full income statements use get_financial_statements. limit counts upcoming and past dates together, newest first.

Returns Markdown by default, or JSON when response_format='json'. A symbol with no earnings (an ETF, an index) returns a short message.
get_earnings_calendarA

Every company reporting earnings in a date range, market-wide: symbol, company, market cap, event, date, timing (BMO before open / AMC after close), EPS estimate and, once reported, actual EPS and surprise %.

Use for "who reports this week", building a catalyst watchlist, or checking which holdings report soon. Not for one stock's history: use get_earnings for that. Results are sorted by market cap, largest first.

Returns Markdown by default, or JSON when response_format='json'. An empty range returns a short message.
screen_stocksA

Run one of Yahoo Finance's predefined screeners and return the matching symbols with price, % change, volume relative to the 3-month average, market cap, trailing and forward P/E, and 52-week range.

Use to discover candidates you don't have yet: today's movers, unusual volume, heavily shorted names, undervalued growth or large caps, or top ETFs and funds. Not for a symbol you already know (use get_stock_quote) and not for custom filters: only Yahoo's predefined screeners exist, so pick the closest one. Results are live and reorder through the trading day, so two calls minutes apart can differ. count takes the top N in the screener's own ranking; there is no paging. Follow up on a symbol with get_stock_quote, get_company_info or get_earnings.

Returns Markdown by default, or JSON when response_format='json'.
get_fund_dataA

What an ETF or mutual fund holds and costs: category and fund family, expense ratio and turnover against its category average, top holdings with weights, sector weightings, and asset-class split (stock, bond, cash).

Use for "what's in SPY", fund overlap and concentration checks, or comparing fund costs. Not for individual stocks: use get_company_info for those.

Returns Markdown by default, or JSON when response_format='json'. A symbol that is not a fund returns a short message.
get_sector_overviewA

Overview of a market sector, or of one industry inside it: description, company count, total market cap, market weight, and the largest companies with analyst rating. A sector also lists its industries with their keys and weights; an industry adds its top growth companies (growth estimate) and top performers (YTD return, target price).

Use for sector rotation, "biggest semiconductor companies", finding peers for a stock, or exploring an industry before picking names. Call without industry first, then pass one of the returned industry keys.

Returns Markdown by default, or JSON when response_format='json'. An unknown industry key returns a short message listing the valid ones.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.5/5.0

Scored across 18 tools

Disambiguation5/5

The tools have clearly distinct purposes, and the descriptions explicitly resolve the few potentially overlapping areas: analyst recommendations vs. estimates, single-stock earnings vs. earnings calendar, and quote vs. compare vs. company info. An agent can select the right tool without much ambiguity.

Naming Consistency5/5

All tool names use consistent snake_case with an action-first pattern such as get_stock_quote, get_historical_prices, search_symbols, screen_stocks, and compare_stocks. There is no mixing of camelCase or inconsistent verb styles.

Tool Count4/5

Eighteen tools is slightly heavy relative to the ideal 3–15 range, but the breadth of Yahoo Finance coverage justifies the size. Each tool appears to earn its place by covering a distinct finance subdomain rather than duplicating functionality.

Completeness4/5

The surface is broad and covers most stock-research workflows: discovery, quotes, history, fundamentals, analysts, ownership, earnings, options, dividends, funds, sectors, news, and screening. Minor gaps remain, such as market-wide news or direct index/FX quote and historical tools beyond market status.

Maintenance

ActivityMaintained
ResponsivenessLimited data