
Yahoo Finance
io.github.narumirunaPublished by GitHub account narumirunav0.14.0Updated Oct 24, 2026
Access Yahoo Finance stock data, news, screeners, options, financials, and charts through MCP.
The publisher's own server: Finance Foundation
Overview
Local MCP server that gives an assistant read-only access to Yahoo Finance stock, fund, options, news and screener data via yfinance.
- What you can do
- Look up tickers: company info, search for stocks/ETFs/news, and recent news per symbol
- Analyst data: price targets, estimates and revisions, upgrades and downgrades
- Financials and ownership: income statement, balance sheet, cash flow, holders and insider transactions
- Funds and options: ETF/mutual-fund composition, option expiration dates and chains
- Prices and charts: historical OHLCV tables, plus candlestick, VWAP and volume-profile charts as WebP images
- Screeners: predefined screeners, custom equity/fund/ETF query trees, sector top lists and a gapper screener
- When to use it
- Useful when you want an assistant to research a stock or fund, compare analyst views, pull statements or option chains, or run market screens without leaving the chat. It is a read-only data lookup, not a trading or portfolio tool.
- Requirements
- Runs locally over stdio; the recommended setup uses uvx with the yfmcp package, with Docker or a source checkout as alternatives. Python 3.12 or newer and the uv package manager are needed for source installs. No API key or account is declared, but network access to Yahoo Finance is required.
Installation
In SourceWeft
- Open Yahoo Finance in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Yahoo Finance MCP Server
[PyPI version] [Python] [CI] [License: MIT]
A Model Context Protocol (MCP) server that provides AI assistants with access to Yahoo Finance data via yfinance. Query stock information, financial news, sector rankings, and generate professional financial charts — all from your AI chat.
Features
- Stock Data — Company info, financials, valuation metrics, dividends, and trading data
- Analyst Data — Consensus targets, estimate/revision trends, recommendation history, and firm-level actions
- Financial Statements — Income statement and balance sheet with historical data (EBIT, Invested Capital, etc.)
- Financial News — Recent news articles and press releases for any ticker
- Search — Find stocks, ETFs, and news across Yahoo Finance
- Sector Rankings — Top ETFs, mutual funds, companies, growth leaders, and top performers by sector
- Price History — Historical OHLCV data as markdown tables or professional charts
- Chart Generation — Candlestick, VWAP, and volume profile charts returned as WebP images
- Options Data — Option chains with calls, puts, strike prices, IV, and expiration dates
- Ownership Data — Major holders, institutional investors, mutual fund holders, and insider transactions
- Fund Look-Through — ETF and mutual-fund holdings, asset classes, sectors, ratings, and operating details
- Screeners — Predefined, equity, mutual-fund, and ETF query trees
Tools
yfinance_get_ticker_info
Retrieve comprehensive stock data including company info, financials, trading metrics, and governance data.
Returns: JSON object with company details, price data, valuation metrics, trading info, dividends, financials, and performance indicators.
yfinance_get_analyst_price_targets
Fetch the current price and analyst consensus price targets for a stock.
Returns: JSON object with current, low, high, mean, and median price fields. Analyst coverage and available fields vary by symbol.
yfinance_get_analyst_estimates
Fetch analyst consensus estimates, revision momentum, recommendations, growth estimates, and earnings history.
Returns: Named arrays for available sections plus _metadata containing per-section row counts, truncation status, unavailable sections, and failed sections. A failure in one section does not discard successfully fetched sections.
yfinance_get_upgrades_downgrades
Fetch analyst upgrades, downgrades, initiations, reiterations, and price-target changes, newest first.
Returns: JSON object containing upgrades_downgrades records and _metadata with row counts and truncation status. Records can include:
GradeDate: Date and time of the analyst actionFirm: Analyst firm nameToGradeandFromGrade: New and previous ratingsAction: Rating actionpriceTargetAction: Price-target action such asRaises,Lowers, orMaintainscurrentPriceTargetandpriorPriceTarget: New and previous price targets
Available fields vary by symbol and analyst action.
yfinance_get_ticker_news
Fetch recent news articles and press releases for a specific stock.
symbol must be nonempty and contain only ASCII letters, digits, or ., -, ^, =, &, _.
Invalid input returns INVALID_PARAMS without echoing the input or calling Yahoo Finance.
Accepted formats include BRK.B, 2330.TW, ^GSPC, EURUSD=X, ES=F, and BTC-USD.
This format check does not verify that a ticker exists.
Returns: JSON array of news items with title, summary, publication date, provider, URL, and thumbnail.
yfinance_search
Search Yahoo Finance for stocks, ETFs, and news articles.
Returns: Matching quotes and/or news results depending on search_type.
yfinance_get_top
Get top-ranked financial entities within a market sector.
Returns: JSON array of top entities with relevant metrics.
Supported Sectors
Basic Materials, Communication Services, Consumer Cyclical, Consumer Defensive, Energy, Financial Services, Healthcare, Industrials, Real Estate, Technology, Utilities
yfinance_screen
Run Yahoo Finance screeners using either predefined screener keys or custom query trees.
Returns: JSON screener response from Yahoo Finance, typically including quote rows and metadata.
Custom equity screener example:
Custom ETF screener example:
yfinance_screen_gappers
Run a purpose-built custom screener for opening-session bullish gappers.
Returns: JSON screener response from Yahoo Finance.
yfinance_get_price_history
Fetch historical price data and optionally generate technical analysis charts.
Chart types:
Returns:
- Without
chart_type: Markdown table with Date, Open, High, Low, Close, Volume, Dividends, and Stock Splits columns. - With
chart_type: Base64-encoded WebP image for efficient token usage.
yfinance_get_financials
Fetch financial statements (income statement, balance sheet, and cash flow) with historical data.
Returns: JSON object with income statement, balance sheet, and cash flow data for each reporting period.
- Income Statement fields: EBIT, Net Income, Tax Provision, Pretax Income, Interest Expense, Total Revenue, Operating Income, EBITDA, Normalized Income
- Balance Sheet fields: Stockholders Equity, Total Debt, Cash And Cash Equivalents, Invested Capital, Net Debt, Total Assets, Total Liabilities Net Minority Interest, Net Tangible Assets, Tangible Book Value
- Cash Flow fields: Operating Cash Flow, Free Cash Flow, Capital Expenditure, Net Income From Continuing Operations, Depreciation And Amortization, Change In Working Capital, Cash Dividends Paid
yfinance_get_holders
Fetch major holders, institutional holders, mutual fund holders, and insider data.
Returns: JSON object with:
major_holders— Aggregated breakdown where each row has anindexlabel (e.g.insidersPercentHeld,institutionsPercentHeld,institutionsFloatPercentHeld,institutionsCount) and aValueinstitutional_holders— Institutional investors; records typically include fields such asDate Reported,Holder,Shares,Value,pctChange,pctHeldmutualfund_holders— Mutual fund holders; records typically include fields similar to institutional holdersinsider_transactions— Recent insider trades; records typically include fields such asShares,Value,Insider,Position,Transaction,Start Date,Ownershipinsider_purchases— Six-month summary where each row describes a category (Purchases, Sales, Net Shares, etc.); records typically include fields such asInsider Purchases Last 6m,Shares,Transinsider_roster— Known insiders; records typically include fields such asName,Position,Shares Owned Directly,Most Recent Transaction,Latest Transaction Date_metadata— Row limit metadata withmax_rowsand per-sectiontotal_rows,returned_rows, andtruncated
Holder sections are limited to 10 rows by default to keep responses concise. Pass max_rows: 0 when you need the complete holder datasets. Field names for holder-related datasets are provided by yfinance and may vary by ticker, data availability, and yfinance version.
yfinance_get_fund_data
Fetch ETF or mutual-fund portfolio composition and operating details.
Returns: Available fund sections plus _metadata with row limits, per-section truncation, unavailable sections, and failed sections. The mix of sections depends on the fund; for example, equity funds and bond funds expose different portfolio breakdowns.
yfinance_get_option_dates
Fetch available option expiration dates for a stock.
Returns: JSON array of expiration dates in YYYY-MM-DD format.
yfinance_get_option_chain
Fetch option chain data (calls and puts) for a stock with available strike prices.
Returns: JSON object keyed by expiration date, with calls and/or puts data including:
contractSymbol: Option contract identifierstrike: Strike pricelastPrice: Last traded pricebid/ask: Bid and ask pricesvolume: Trading volumeopenInterest: Open interestimpliedVolatility: IVinTheMoney: Whether option is ITMcontractSize: Contract size (REGULAR)currency: Currency (USD)
Usage
Via uv (recommended)
- Install uv
- Add the following to your MCP client configuration:
Via Docker
From Source
- Clone the repository and install dependencies:
- Add the following to your MCP client configuration:
Replace /path/to/yfinance-mcp with the actual path to your cloned repository.
Testing with Codex CLI
This repository includes .codex/config.toml, which registers the local yfmcp MCP server for Codex CLI using uv run yfmcp. After cloning the repository and running uv sync, open Codex CLI from the repository root and try prompts such as:
Development
Prerequisites
- Python ≥ 3.12
- uv package manager
Setup
Lint & Format
Type Check
Test
Demo Chatbot
See the demo chatbot in its dedicated repository: yfinance-mcp-demo
Contributors
[Image]Made with contrib.rocks.
License
This project is licensed under the MIT License.
Source: README.md at commit 1b7f45f
Tools
0Version history
1- v0.14.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Finance integrations
Finance Foundation
foundation.financeOfficial publisher
A remote MCP server for open financial reference data: look up companies, markets, funds and assets, resolve identifiers, traverse a knowledge graph and read a
FYN
fyi.fynOfficial publisher
Read-only personal finance for AI agents: budgets, receipts, net worth, bills. OAuth 2.1.

Korea Finance Factcheck
Published by GitHub account hs85-newbie
Fact-checks numbers in Korean finance writing against DART, Bank of Korea ECOS and US Treasury

Apizie Finance
Published by GitHub account nafadza14
Apizie Finance is a remote MCP server giving assistants cited access to official financial and economic data from SEC EDGAR, FRED, ECB, Treasury, GLEIF and…

Finance MCP
Published by GitHub account aowang-ai
Hosted MCP server that lets an assistant discover, inspect and run finance data tools covering US stocks, SEC filings, macro series, crypto and prediction…