Yahoo Finance logo

Yahoo Finance

Community
narumiruna

Provides real-time financial data from Yahoo Finance through specialized tools for retrieving stock information, market trends, and news for investment research and analysis.

Publishernarumiruna
Repositoryyfinance-mcp
LanguagePython
Forks
48
Stars
135
Available tools
5
Transport typestdio, streamable-http
Categories
LicenseMIT
Links
  • Connect tools to AI workflows

    Yahoo Finance exposes MCP capabilities that can be used by compatible AI clients and agents.

  • 5 available tools

    Browse the callable actions below, including names and descriptions when provided by the server.

  • Ready-to-copy setup

    Use the installation snippets to configure this server in your preferred MCP client.

  • Open source signals

    135 stars and 48 forks from the linked repository.

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
  • 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

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_ticker_news

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

ParameterTypeRequiredDescription
symbolstringYesStock ticker symbol

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_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)

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_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.git
cd yfinance-mcp
uv 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 info
Show VOO price history for the last 5 days
Find the ticker symbol for Toyota
Get 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.

Installation

TypingMind
Prerequisites:

Node.js 18+

{
  "mcpServers": {
    "yfmcp": {
      "command": "uvx",
      "args": [
        "yfmcp@latest"
      ]
    }
  }
}

Available Tools

  • get_ticker_info

    Retrieve stock data including company info, financials, trading metrics and governance data.

  • get_ticker_news

    Fetches recent news articles related to a specific stock symbol with title, content, and source details.

  • search

    Fetches and organizes search results from Yahoo Finance, including stock quotes and news articles.

  • get_top

    Get top entities (ETFs, mutual funds, companies, growth companies, or performing companies) in a sector.

  • get_price_history

    Fetch historical price data for a given stock symbol over a specified period and interval.

Use Yahoo Finance MCP with multiple AI models

TypingMind connects MCP tools at the workspace level, so once Yahoo Finance is connected, you can use it with different AI models in TypingMind instead of setting it up separately for each model. You can run MCP locally on your device or connect to a remote MCP server URL.

Option 1: Use the local connector

Use this when the MCP server needs access to local files, apps, or private resources on your computer.

1

Open the MCP settings

In TypingMind, go to Settings, Advanced Settings, then Model Context Protocol and choose Setup Connector.

  1. Open TypingMind in your browser.
  2. Click the Settings icon.
  3. Go to Advanced Settings.
  4. Open the Model Context Protocol section.
  5. Click Setup Connector and choose This Device.
TypingMind MCP connector setup screen with This Device selected
2

Run the connector command

Choose This Device, copy the command from TypingMind, and run it in Terminal. Keep the process running while you use MCP.

  1. Copy the setup command shown by TypingMind.
  2. Open Terminal on macOS or Windows Terminal on Windows.
  3. Paste and run the command.
  4. Approve the package install if Terminal asks you to proceed.
  5. Keep the Terminal window running while using MCP tools.
3

Add Yahoo Finance as a server

When the connector status is Ready, click Edit Servers and paste the MCP server configuration.

  1. Wait until the connector status shows Ready.
  2. Click Edit Servers.
  3. Paste the Yahoo Finance MCP server configuration.
  4. Save the server list.
  5. Refresh if you want to confirm the connector is still ready.
TypingMind MCP settings showing active server and Edit Servers button
{
  "mcpServers": {
    "yahoo-finance": {
      "command": "npx",
      "args": [
        "-y",
        "yfmcp"
      ]
    }
  }
}
4

Use it across models

Save the server list, open Plugins, enable the Yahoo Finance MCP tools, then select any supported AI model in TypingMind and use the tools in chat or assign them to an AI agent.

  1. Open the Plugins page in TypingMind.
  2. Enable the Yahoo Finance MCP tools.
  3. Start a chat and choose the AI model you want to use.
  4. Use the MCP tools in chat or assign them to an AI agent.
  5. Switch to another AI model whenever needed without reconnecting MCP.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Yahoo Finance to help me with this task?
Yahoo Finance
Sure. I read it.
Here is what I found using Yahoo Finance.

Option 2: Add an MCP server URL

Use this when Yahoo Finance is already hosted remotely or your team wants one shared connector that multiple users can access.

1

Open MCP connectors

In TypingMind, go to Plugins, open MCP connectors, then choose Add URL.

  1. Open TypingMind in your browser.
  2. Go to Plugins.
  3. Open MCP connectors.
  4. Click Add URL.
TypingMind Add Custom MCP Server URL form
2

Paste the server URL

Enter your server URL in the Server URL field. Add a connection name, description, icon, custom HTTP headers, or OAuth client settings if the server requires them.

  1. Paste your server URL into the Server URL field.
  2. Enter a connection name for Yahoo Finance.
  3. Add a description and icon if you want it to be easier to identify.
  4. Add custom HTTP headers or OAuth client details if the server requires authentication.
3

Create the connection

Click Create connection, then return to the Plugins list and confirm the new MCP connection is active.

  1. Click Create connection.
  2. Return to the MCP connectors list.
  3. Confirm the Yahoo Finance connection appears as active.
  4. Refresh the plugin list if the connection does not appear immediately.
4

Switch models without reconnecting

Start a chat with your preferred model, enable the Yahoo Finance tools from Plugins, and switch to another model whenever needed. The MCP connection stays available to the TypingMind workspace.

  1. Start a new chat in TypingMind.
  2. Select the AI model you want to use.
  3. Enable the Yahoo Finance tools from Plugins.
  4. Ask the model to use the tool when needed.
  5. Switch to another AI model and reuse the same MCP connection.
TypingMind chat using enabled MCP tools with a selected AI model
Can you use Yahoo Finance to help me with this task?
Yahoo Finance
Sure. I read it.
Here is what I found using Yahoo Finance.

Frequently asked questions

What is the Yahoo Finance MCP server used for?

Yahoo Finance is an MCP server that lets compatible AI clients connect to external tools and context. In TypingMind, you can add this MCP server once and make its tools available in your AI workspace.

Can I use Yahoo Finance MCP with multiple AI models in TypingMind?

Yes. TypingMind connects MCP tools at the workspace level, so you can use Yahoo Finance with different AI models such as Claude, ChatGPT, Gemini, or other models you have configured in TypingMind without setting up the MCP server separately for each model.

Why use Yahoo Finance MCP with TypingMind?

TypingMind is one of the best frontends for LLM chat because it brings multiple AI models, prompts, plugins, AI agents, API keys, and MCP tools into one workspace. With Yahoo Finance connected, you can use its MCP tools across your preferred models while keeping your chat workflow organized in TypingMind.

How do I connect Yahoo Finance MCP to TypingMind?

Yahoo Finance can be connected in TypingMind with the local MCP connector or by adding a remote MCP server URL. Use the local connector when the server needs access to files, apps, or private resources on your device, and use a server URL when the MCP server is hosted remotely.

What tools does Yahoo Finance MCP provide in TypingMind?

Yahoo Finance exposes 5 MCP tools that can be enabled from the TypingMind Plugins page and used in chat or assigned to AI agents.

Do I need to share my API keys with TypingMind to use Yahoo Finance MCP?

No. TypingMind is local-first and lets you keep your model providers, API keys, prompts, and MCP configuration under your control. If Yahoo Finance requires authentication, add the required headers, OAuth settings, or local configuration for that MCP server when you create the connection.

Related MCP Servers

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇