Yahoo Finance

io.github.narumiruna由 GitHub 帳號 narumiruna 發布v0.14.0更新於 Oct 24, 2026

Access Yahoo Finance stock data, news, screeners, options, financials, and charts through MCP.

發布方自己的服務:Finance Foundation

已驗證STDIO僅桌面金融資料與分析

概覽

AI 產生的概覽

本機 MCP 伺服器,透過 yfinance 讓助理以唯讀方式取得 Yahoo Finance 的股票、基金、選擇權、新聞與篩選器資料。

可以做什麼
  • 查詢標的:公司資訊、搜尋股票/ETF/新聞、依代號取得近期新聞
  • 分析師資料:目標價、盈餘預估與修正、評等調升與調降
  • 財務與持股:損益表、資產負債表、現金流量表、主要持有人與內部人交易
  • 基金與選擇權:ETF/共同基金持股組成、選擇權到期日與選擇權鏈
  • 行情與圖表:歷史 OHLCV 表格,以及 K 線、VWAP、成交量分布圖(WebP 圖片)
  • 篩選器:預設篩選、自訂股票/基金/ETF 查詢樹、產業排行與跳空開高篩選
適用情境
適合讓助理在對話中研究個股或基金、比較分析師看法、查看財報或選擇權鏈、執行市場篩選。它只做唯讀資料查詢,不涉及交易或投資組合管理。
執行需求
以 stdio 方式在本機執行;建議用 uvx 執行 yfmcp 套件,也可改用 Docker 或原始碼。原始碼安裝需要 Python 3.12 以上與 uv 套件管理工具。未宣告需要 API 金鑰或帳號,但需要能連線至 Yahoo Finance 的網路。
安裝前請注意
資料全部來自 Yahoo Finance(經 yfinance 函式庫),欄位與可用性會因標的與函式庫版本而異,數值可能延遲或不完整。結果僅供參考,不構成投資建議。篩選工具可傳入選用的 Yahoo 使用者識別碼,除非確有必要,否則不要填寫。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Yahoo Finance,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

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.

ParameterTypeRequiredDescription
symbolstringYesStock ticker symbol (e.g. AAPL, GOOGL, MSFT)

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.

ParameterTypeRequiredDescription
symbolstringYesStock ticker symbol (e.g. AAPL, GOOGL, MSFT)

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.

ParameterTypeRequiredDescription
symbolstringYesStock ticker symbol
sectionsarrayNoAny of recommendations, earnings_estimate, revenue_estimate, eps_trend, eps_revisions, earnings_history, or growth_estimates. Omit for all sections
max_rowsnumberNoMaximum rows per section. Default: 12. Use 0 for all rows

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.

ParameterTypeRequiredDescription
symbolstringYesStock ticker symbol
max_rowsnumberNoMaximum actions to return. Default: 25. Use 0 to return all rows

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 action
  • Firm: Analyst firm name
  • ToGrade and FromGrade: New and previous ratings
  • Action: Rating action
  • 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.

yfinance_get_ticker_news

Fetch recent news articles and press releases for a specific stock.

ParameterTypeRequiredDescription
symbolstringYesStock ticker symbol

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.

ParameterTypeRequiredDescription
querystringYesSearch query — company name, ticker symbol, or keywords
search_typestringYes"all" (quotes + news), "quotes" (stocks/ETFs only), or "news" (articles only)

Returns: Matching quotes and/or news results depending on search_type.

yfinance_get_top

Get top-ranked financial entities within a market sector.

ParameterTypeRequiredDescription
sectorstringYesMarket sector (see supported sectors below)
top_typestringYes"top_etfs", "top_mutual_funds", "top_companies", "top_growth_companies", or "top_performing_companies"
top_nnumberNoNumber of results to return (default: 10, max: 100)

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.

ParameterTypeRequiredDescription
querystring/objectYesFor query_type="predefined": screener key such as "day_gainers". For query_type="equity", "fund", or "etf": custom query tree with {operator, operands} nodes
query_typestringNo"predefined" (default), "equity", "fund", or "etf"
offsetnumberNoResult offset
sizenumberNoRows for custom queries; Yahoo maximum is 250
countnumberNoRows for predefined queries; Yahoo maximum is 250
sort_fieldstringNoSort field, for example "percentchange"
sort_ascbooleanNoSort ascending if true, descending if false
user_idstringNoOptional Yahoo user identifier
user_id_typestringNoOptional Yahoo user ID type, commonly "guid"

Returns: JSON screener response from Yahoo Finance, typically including quote rows and metadata.

Custom equity screener example:

json
{  "query_type": "equity",  "query": {    "operator": "and",    "operands": [      { "operator": "gt", "operands": ["percentchange", 3] },      { "operator": "eq", "operands": ["region", "us"] },      { "operator": "gte", "operands": ["intradayprice", 5] },      { "operator": "gt", "operands": ["dayvolume", 500000] }    ]  },  "sort_field": "percentchange",  "sort_asc": false,  "size": 50}

Custom ETF screener example:

json
{  "query_type": "etf",  "query": {    "operator": "and",    "operands": [      { "operator": "eq", "operands": ["categoryname", "Large Blend"] },      { "operator": "lte", "operands": ["annualreportnetexpenseratio", 0.2] }    ]  },  "sort_field": "fundnetassets",  "sort_asc": false,  "size": 25}

yfinance_screen_gappers

Run a purpose-built custom screener for opening-session bullish gappers.

ParameterTypeRequiredDescription
min_percent_changenumberNoMinimum percent gap/change from prior close (default: 3.0)
min_pricenumberNoMinimum intraday price (default: 5.0)
min_volumenumberNoMinimum day volume (default: 500000)
min_market_capnumberNoMinimum intraday market cap in USD (default: 2000000000)
regionstringNoYahoo region code (default: "us")
sizenumberNoNumber of results (default: 50, max: 250)
offsetnumberNoResult offset for pagination (default: 0)
sort_ascbooleanNoSort by percentchange ascending (true) or descending (false, default)

Returns: JSON screener response from Yahoo Finance.

yfinance_get_price_history

Fetch historical price data and optionally generate technical analysis charts.

ParameterTypeRequiredDescription
symbolstringYesStock ticker symbol
periodstringNoTime range — 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max (default: 1mo)
intervalstringNoData granularity — 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo (default: 1d)
chart_typestringNoChart to generate (omit for tabular data)
prepostbooleanNoInclude pre-market and post-market data when available (default: false; useful with intraday requests like period="1d", interval="1m")

Chart types:

ValueDescription
"price_volume"Candlestick chart with volume bars
"vwap"Price chart with Volume Weighted Average Price overlay
"volume_profile"Candlestick chart with volume distribution by price level

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.

ParameterTypeRequiredDescription
symbolstringYesStock ticker symbol
frequencystringNo"annual" (yearly), "quarterly" (quarterly), or "ttm" (trailing twelve months). Default: "annual"

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.

ParameterTypeRequiredDescription
symbolstringYesStock ticker symbol (e.g. AAPL, MSFT)
max_rowsnumberNoMaximum rows returned per holder section. Default: 10. Use 0 to return all rows

Returns: JSON object with:

  • major_holders — Aggregated breakdown where each row has an index label (e.g. insidersPercentHeld, institutionsPercentHeld, institutionsFloatPercentHeld, institutionsCount) and a Value
  • institutional_holders — Institutional investors; records typically include fields such as Date Reported, Holder, Shares, Value, pctChange, pctHeld
  • mutualfund_holders — Mutual fund holders; records typically include fields similar to institutional holders
  • insider_transactions — Recent insider trades; records typically include fields such as Shares, Value, Insider, Position, Transaction, Start Date, Ownership
  • insider_purchases — Six-month summary where each row describes a category (Purchases, Sales, Net Shares, etc.); records typically include fields such as Insider Purchases Last 6m, Shares, Trans
  • insider_roster — Known insiders; records typically include fields such as Name, Position, Shares Owned Directly, Most Recent Transaction, Latest Transaction Date
  • _metadata — Row limit metadata with max_rows and per-section total_rows, returned_rows, and truncated

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.

ParameterTypeRequiredDescription
symbolstringYesETF or mutual-fund ticker symbol (for example SPY, BND, or VFIAX)
sectionsarrayNoAny of description, fund_overview, fund_operations, asset_classes, top_holdings, equity_holdings, bond_holdings, bond_ratings, or sector_weightings. Omit for all sections
max_rowsnumberNoMaximum rows per tabular section. Default: 25. Use 0 for all rows

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.

ParameterTypeRequiredDescription
symbolstringYesStock ticker symbol (e.g. AAPL, MSFT)

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.

ParameterTypeRequiredDescription
symbolstringYesStock ticker symbol
expiration_datestringNoOption expiration date in YYYY-MM-DD format. Omit to fetch all dates.
option_typestringNo"calls", "puts", or "all" (default: "all")

Returns: JSON object keyed by expiration date, with calls and/or puts data including:

  • contractSymbol: Option contract identifier
  • strike: Strike price
  • lastPrice: Last traded price
  • bid/ask: Bid and ask prices
  • volume: Trading volume
  • openInterest: Open interest
  • impliedVolatility: IV
  • inTheMoney: Whether option is ITM
  • contractSize: Contract size (REGULAR)
  • currency: Currency (USD)

Usage

Via uv (recommended)

  1. Install uv
  2. Add the following to your MCP client configuration:
json
{  "mcpServers": {    "yfmcp": {      "command": "uvx",      "args": ["yfmcp@latest"]    }  }}

Via Docker

json
{  "mcpServers": {    "yfmcp": {      "command": "docker",      "args": ["run", "-i", "--rm", "narumi/yfinance-mcp"]    }  }}

From Source

  1. Clone the repository and install dependencies:
bash
git clone https://github.com/narumiruna/yfinance-mcp.gitcd yfinance-mcpuv sync
  1. Add the following to your MCP client configuration:
json
{  "mcpServers": {    "yfmcp": {      "command": "uv",      "args": [        "run",        "--directory",        "/path/to/yfinance-mcp",        "yfmcp"      ]    }  }}

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:

text
Show VOO ticker infoShow VOO price history for the last 5 daysFind the ticker symbol for ToyotaGet AAPL option expiration dates

Development

Prerequisites

  • Python ≥ 3.12
  • uv package manager

Setup

bash
uv sync --extra dev

Lint & Format

bash
uv run ruff check .uv run ruff format .

Type Check

bash
uv run ty check src tests

Test

bash
uv run pytest -v -s --cov=src tests

Demo Chatbot

See the demo chatbot in its dedicated repository: yfinance-mcp-demo

Contributors

[圖片]

Made with contrib.rocks.

License

This project is licensed under the MIT License.

來源:README.md,提交 1b7f45f

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.14.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Finance 整合