Yahoo Finance
PYPI · YFMCP · SCANNED SEP 20
Access Yahoo Finance stock data, news, screeners, options, financials, and charts through MCP.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security87
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- Install-script risk not yet assessed.Unverified
- 5 of 64 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: no license is declared. See how to fix → Fail
- Actively maintained (last published 45 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability66
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2865 tokens (~191/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management93
- Stability observed for 28 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 15 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Yahoo Finance MCP server?
Yahoo Finance runs locally as a PyPI package, launched with uvx yfmcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
pypi · yfmcp
claude mcp add narumiruna-yfinance-mcp -- uvx yfmcp
{
"mcpServers": {
"narumiruna-yfinance-mcp": {
"command": "uvx",
"args": [
"yfmcp"
]
}
}
} {
"servers": {
"narumiruna-yfinance-mcp": {
"command": "uvx",
"args": [
"yfmcp"
]
}
}
} codex mcp add narumiruna-yfinance-mcp -- uvx yfmcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"narumiruna-yfinance-mcp": {
"type": "local",
"command": [
"uvx",
"yfmcp"
],
"enabled": true
}
}
} openclaw mcp add narumiruna-yfinance-mcp --command uvx --arg yfmcp
mcp_servers:
narumiruna-yfinance-mcp:
command: "uvx"
args: ["yfmcp"] {
"McpServers": {
"narumiruna-yfinance-mcp": {
"Transport": "stdio",
"Command": "uvx",
"Arguments": [
"yfmcp"
]
}
}
} assistant mcp add narumiruna-yfinance-mcp -t stdio -c uvx -a yfmcp
{
"mcpServers": {
"narumiruna-yfinance-mcp": {
"command": "uvx",
"args": [
"yfmcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 −17
- Malware scan: pass → unverified ▼ security
- Stability: pass → 0.80 functional
- 15 Sept 26 0
- Stability: 0.97 → pass security
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +15
- Malware scan: unverified → pass ▲ security
- 11 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 9 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed pypi/yfmcp@0.14.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | pypi |
Background: How many MCP packages publish verified provenance →
Dependencies 64 packages
| Packages resolved | 64 |
|---|---|
| Stale | 5 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
yfinance_get_analyst_estimates ~118
Fetch consensus estimates, EPS/revenue trends, revisions, recommendations, and earnings history.
| Name | Type | Req | Description |
|---|---|---|---|
| max_rows | integer | – | Maximum rows per section. Use 0 to return all rows. |
| sections | – | – | Optional analyst sections: recommendations, earnings_estimate, revenue_estimate, eps_trend, eps_revisions, earnings_history, and growth_estimates. Omit to return all sections. |
| symbol | string | yes | Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT') |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_get_analyst_price_targets ~114
Fetch the current price and analyst consensus price targets for a stock. Returns a JSON object with the fields supplied by Yahoo Finance: - current: Current market price - low: Lowest analyst price target - high: Highest analyst price target - mean: Mean analyst price target - median: Median analyst price target Analyst coverage and available fields vary by symbol.
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT') |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_get_financials ~119
Fetch financial statements (income statement, balance sheet, and cash flow) with historical data. Returns JSON with income statement, balance sheet, and cash flow data across reporting periods. Use the data to analyze trends, calculate ratios, or compare periods.
| Name | Type | Req | Description |
|---|---|---|---|
| frequency | string | – | Reporting frequency: 'annual' for yearly, 'quarterly' for quarterly, or 'ttm' for trailing twelve months |
| symbol | string | yes | Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT') |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_get_fund_data ~129
Fetch ETF or mutual-fund composition, holdings, exposures, ratings, and operating details.
| Name | Type | Req | Description |
|---|---|---|---|
| max_rows | integer | – | Maximum rows per tabular section. Use 0 to return all rows. |
| sections | – | – | Optional fund sections: description, fund_overview, fund_operations, asset_classes, top_holdings, equity_holdings, bond_holdings, bond_ratings, and sector_weightings. Omit to return all sections. |
| symbol | string | yes | ETF or mutual fund ticker symbol (e.g., 'SPY', 'BND', 'VFIAX') |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_get_holders ~210
Fetch major holders, institutional holders, mutual fund holders, and insider data. Returns JSON with: - major_holders: Aggregated breakdown including insider % held, institutional % held, institutional % float held, and institution count. - institutional_holders: List of institutional investors with shares held, date reported, value, and % change. - mutualfund_holders: List of mutual fund holders with same fields. - insider_transactions: Recent insider transactions including shares, value, transaction type, and date. - insider_purchases: Summary of insider buy/sell activity over the last 6 months. - insider_roster: List of known insiders by name and position. Use this to analyze ownership concentration, insider activity, and institutional interest.
| Name | Type | Req | Description |
|---|---|---|---|
| max_rows | integer | – | Maximum rows returned per holder section. Use 0 to return all rows. |
| symbol | string | yes | Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT') |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_get_option_chain ~235
Fetch option chain data (calls and puts) for a stock with available strike prices. Returns JSON with calls and/or puts data for each expiration date. JSON fields include: - contractSymbol: Option contract identifier - strike: Strike price - lastPrice: Last traded price - bid/ask: Bid and ask prices - volume: Trading volume - openInterest: Open interest - impliedVolatility: Implied volatility (IV) - inTheMoney: Whether option is ITM - contractSize: Contract size (REGULAR) - currency: Currency (USD) Use this to analyze options pricing, IV surfaces, and strike levels.
| Name | Type | Req | Description |
|---|---|---|---|
| expiration_date | – | – | Option expiration date in YYYY-MM-DD format. Use the 'yfinance_get_option_dates' tool to find available dates, or omit to fetch all available expiration dates. |
| option_type | string | – | Which options to return: 'calls', 'puts', or 'all' (both calls and puts). |
| symbol | string | yes | Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT') |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_get_option_dates ~82
Fetch available option expiration dates for a stock. Returns JSON array of expiration dates in YYYY-MM-DD format. Use these dates with the 'yfinance_get_option_chain' tool to fetch the options chain for a specific date.
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT') |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_get_price_history ~447
Fetch historical price data and optionally generate technical analysis charts. When chart_type is None, returns Markdown table with columns: - Date: Trading date (index) - Open: Opening price - High: Highest price - Low: Lowest price - Close: Closing price - Volume: Trading volume - Dividends: Dividend payments (if any) - Stock Splits: Split events (if any) When chart_type is specified, returns a chart image: - 'price_volume': Candlestick chart with volume bars - 'vwap': Price with Volume Weighted Average Price overlay - 'volume_profile': Volume distribution by price level Set prepost=True to include pre-market and post-market data when available. Note: Not all period/interval combinations are valid. Minute intervals (1m, 5m, etc.) only work with short periods (1d, 5d).
| Name | Type | Req | Description |
|---|---|---|---|
| chart_type | – | – | Optional visualization: 'price_volume' (candlestick chart with volume bars), 'vwap' (Volume Weighted Average Price overlay), 'volume_profile' (volume distribution by price level). Omit for tabular da… |
| interval | string | – | Data granularity: '1m'/'5m'/'15m'/'30m' (minutes), '1h' (hour), '1d'/'5d' (days), '1wk' (week), '1mo'/'3mo' (months). Short intervals require short periods (e.g., '1m' interval only works with '1d'/'… |
| period | string | – | Time range: '1d'/'5d' (days), '1mo'/'3mo'/'6mo' (months), '1y'/'2y'/'5y'/'10y' (years), 'ytd' (year-to-date), 'max' (all available data) |
| prepost | boolean | – | Include pre-market and post-market data when available |
| symbol | string | yes | Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT') |
| Name | Type | Req | Description |
|---|---|---|---|
| result | – | yes | – |
No examples provided.
yfinance_get_ticker_info ~233
Retrieve comprehensive stock data including company information, financials, trading metrics and governance. Returns JSON object with fields including: - Company: symbol, longName, sector, industry, longBusinessSummary, website, city, country - Price: currentPrice, previousClose, open, dayHigh, dayLow, fiftyTwoWeekHigh, fiftyTwoWeekLow - Valuation: marketCap, enterpriseValue, trailingPE, forwardPE, priceToBook, pegRatio - Trading: volume, averageVolume, averageVolume10days, bid, ask, bidSize, askSize - Dividends: dividendRate, dividendYield, exDividendDate, payoutRatio - Financials: totalRevenue, revenueGrowth, earningsGrowth, profitMargins, operatingMargins - Performance: beta, fiftyDayAverage, twoHundredDayAverage, trailingEps, forwardEps Note: Available fields vary by security type. Timestamps are converted to readable dates.
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT') |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_get_ticker_news ~180
Fetch recent news articles and press releases for a specific stock. Returns JSON array where each news item has: - id: Unique article identifier - content: Object containing: - title: Article headline - summary: Brief article summary - pubDate: Publication date (ISO 8601 format) - provider: Object with displayName (e.g., "Yahoo Finance") and url - canonicalUrl: Object with article url, site, region, lang - thumbnail: Object with image URLs and resolutions - contentType: Type of content (e.g., "STORY", "VIDEO") Use this to track company announcements, market sentiment, and breaking news.
| Name | Type | Req | Description |
|---|---|---|---|
| symbol | string | yes | Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT') |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_get_top ~188
Get top-ranked financial entities within a sector. This unified tool provides access to various rankings: - ETFs and mutual funds focused on the sector - Largest companies by market capitalization - Fastest-growing companies by revenue/earnings - Best-performing stocks by price appreciation Returns JSON data with relevant metrics for each entity type.
| Name | Type | Req | Description |
|---|---|---|---|
| sector | string | yes | Market sector (e.g., 'Technology', 'Healthcare', 'Financial Services') |
| top_n | integer | – | Number of top entities to retrieve per category/industry |
| top_type | string | yes | Type of entities to retrieve: 'top_etfs' (sector ETFs), 'top_mutual_funds' (sector mutual funds), 'top_companies' (largest by market cap), 'top_growth_companies' (fastest revenue/earnings growth), 't… |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_get_upgrades_downgrades ~188
Fetch analyst upgrades, downgrades, initiations, and price target changes. Returns analyst actions newest first. Fields supplied by Yahoo Finance can include: - GradeDate: Date and time of the analyst action - Firm: Analyst firm name - ToGrade and FromGrade: New and previous ratings - Action: Rating action, such as upgrade, downgrade, initiation, or reiteration - priceTargetAction: Price target action, such as Raises, Lowers, or Maintains - currentPriceTarget and priorPriceTarget: New and previous price targets Available fields vary by symbol and analyst action.
| Name | Type | Req | Description |
|---|---|---|---|
| max_rows | integer | – | Maximum analyst actions to return, newest first. Use 0 to return all rows. |
| symbol | string | yes | Stock ticker symbol (e.g., 'AAPL', 'GOOGL', 'MSFT') |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_screen ~207
Run a Yahoo Finance screener query. Supports predefined Yahoo screener keys and custom equity, mutual-fund, or ETF query trees.
| Name | Type | Req | Description |
|---|---|---|---|
| count | – | – | Rows to return for predefined queries. Yahoo maximum is 250. |
| offset | – | – | Result offset. |
| query | – | yes | Screener query. For query_type='predefined': string key like 'day_gainers'. For query_type='equity', 'fund', or 'etf': query tree object with {operator, operands} nodes. |
| query_type | string | – | Query mode: 'predefined', 'equity', 'fund', or 'etf'. |
| size | – | – | Rows to return for custom queries. Yahoo maximum is 250. |
| sort_asc | – | – | Sort ascending if true, descending if false. |
| sort_field | – | – | Sort field, for example 'percentchange'. |
| user_id | – | – | Optional Yahoo user id. |
| user_id_type | – | – | Optional Yahoo user id type, commonly 'guid'. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_screen_gappers ~156
Run a custom equity screener tuned for opening-session stock gappers.
| Name | Type | Req | Description |
|---|---|---|---|
| min_market_cap | integer | – | Minimum intraday market cap in USD. |
| min_percent_change | number | – | Minimum percent change from prior close, for example 3.0 for +3%. |
| min_price | number | – | Minimum current intraday price. |
| min_volume | integer | – | Minimum intraday trading volume. |
| offset | integer | – | Result offset for pagination. |
| region | string | – | Yahoo screener region code, for example 'us'. |
| size | integer | – | Rows to return. Yahoo maximum is 250. |
| sort_asc | boolean | – | Sort by percentchange ascending if true, descending if false. |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
yfinance_search ~259
Search Yahoo Finance for stocks, ETFs, and news articles. Returns JSON with search results based on search_type: - 'quotes': Array of securities with: - symbol: Ticker symbol - shortname/longname: Company name - quoteType: Security type (EQUITY, ETF, MUTUALFUND, etc.) - exchange: Exchange code - sector: Business sector - industry: Industry classification - score: Search relevance score - 'news': Array of articles with: - uuid: Article identifier - title: Headline - publisher: News source - link: Article URL - providerPublishTime: Unix timestamp - relatedTickers: Array of related symbols - thumbnail: Image URLs - 'all': Object with both 'quotes' and 'news' arrays Use this to find ticker symbols, discover related securities, or search financial news.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Search query - company name, ticker symbol, or keywords |
| search_type | string | yes | Filter results: 'all' (quotes + news), 'quotes' (stocks/ETFs only), or 'news' (articles only) |
| Name | Type | Req | Description |
|---|---|---|---|
| result | string | yes | – |
No examples provided.
What is the Yahoo Finance MCP server?
Yahoo Finance is an MCP server listed in the public MCP registry as io.github.narumiruna/yfinance-mcp. Access Yahoo Finance stock data, news, screeners, options, financials, and charts through MCP. This page covers its PyPI package (yfmcp).
Is the Yahoo Finance MCP server safe to use?
Yahoo Finance scores 75 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Yahoo Finance MCP server expose?
Yahoo Finance exposes 15 tools: yfinance_get_ticker_info, yfinance_get_analyst_price_targets, yfinance_get_analyst_estimates, yfinance_get_fund_data, yfinance_get_upgrades_downgrades, and 10 more. Their descriptions and schemas cost roughly 2,865 tokens of context every time the server is loaded.
Is the Yahoo Finance MCP server still maintained?
Yahoo Finance is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.