Skip to main content

MCP server exposing Yahoo Finance market data via yfinance

Project description

yfinance-market-mcp

MCP server that exposes Yahoo Finance market data to AI assistants (Claude Code, Claude Desktop, or any MCP-compatible client).

30 tools covering: price history, options chains, news, financials, analyst estimates, holders, screener, sector/industry data, and more.


Quick Start

Install

pip install yfinance-market-mcp

Or run directly without installing (requires uv):

uvx yfinance-market-mcp

For local development (editable install):

git clone https://github.com/hachecito/yfinance-market-mcp.git
cd yfinance-market-mcp
pip install -e .

Verify Installation

yfinance-mcp --help

If the command is found, the server is ready.


Usage

With Claude Code

Create a .mcp.json file in your project root:

Using pip:

{
  "mcpServers": {
    "yfinance": {
      "command": "yfinance-mcp"
    }
  }
}

Using uvx (no install needed):

{
  "mcpServers": {
    "yfinance": {
      "command": "uvx",
      "args": ["yfinance-market-mcp"]
    }
  }
}

Then restart Claude Code. The 30 tools will be available automatically — just ask Claude about any stock, options chain, or market news.

With Claude Desktop

Edit %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

Using pip:

{
  "mcpServers": {
    "yfinance": {
      "command": "yfinance-mcp"
    }
  }
}

Using uvx:

{
  "mcpServers": {
    "yfinance": {
      "command": "uvx",
      "args": ["yfinance-market-mcp"]
    }
  }
}

Restart Claude Desktop. Done.

With Any MCP Client

The server uses stdio transport. Launch it with:

yfinance-mcp
# or
uvx yfinance-market-mcp

Connect your MCP client to stdin/stdout of that process.


Available Tools (30)

Price

Tool Description
get_price_history OHLCV data (configurable period, interval, date range)
get_dividends Dividend history
get_splits Stock split history

Info

Tool Description
get_ticker_info Full company info (sector, industry, description, financials)
get_fast_info Quick snapshot (price, volume, market cap, 52w range)
get_ticker_summary Composite: price + fundamentals + news + analyst targets

News

Tool Description
get_ticker_news Recent news articles for a ticker
search_news General market news search by keyword

Options

Tool Description
get_options_expirations Available expiration dates
get_options_chain Calls/puts with strike, bid, ask, volume, OI, IV

Financial Statements

Tool Description
get_income_statement Income statement (yearly/quarterly/trailing)
get_balance_sheet Balance sheet (yearly/quarterly)
get_cash_flow Cash flow statement (yearly/quarterly)

Analysis & Estimates

Tool Description
get_analyst_price_targets Price targets (low, high, mean, median, current)
get_recommendations Buy/sell/hold ratings over time
get_upgrades_downgrades Analyst rating changes
get_earnings_estimate EPS estimates by period
get_revenue_estimate Revenue estimates by period
get_growth_estimates Growth rate estimates
get_eps_trend EPS trend / estimate revisions

Holders

Tool Description
get_institutional_holders Top institutional holders
get_insider_transactions Recent insider buys/sells
get_major_holders Major holder breakdown

Events & Search

Tool Description
get_earnings_dates Upcoming/past earnings dates
get_calendar Upcoming events (dividends, earnings)
search_tickers Search tickers by company name or keyword

Sector & Industry

Tool Description
get_sector_data Sector overview, top companies, and industry breakdown
get_industry_data Industry overview, top companies, and top growth companies

Screener

Tool Description
screen_stocks Predefined screeners (most actives, day gainers/losers, undervalued, etc.)

Batch

Tool Description
batch_download Download OHLCV data for multiple tickers at once

Example Prompts

Once connected, just ask Claude naturally:

  • "Show me AAPL's options chain for the nearest expiration"
  • "What's the latest news on TSLA?"
  • "Compare MSFT and GOOGL fundamentals"
  • "Get analyst price targets for NVDA"
  • "Show me AMZN's quarterly income statement"
  • "What are the most active stocks today?"
  • "Show me the top companies in the semiconductor industry"

Publishing to PyPI

1. Prerequisites

Create a PyPI account at pypi.org and generate an API token:

  1. Go to pypi.org/manage/account
  2. Scroll to API tokens > Add API token
  3. Name: yfinance-market-mcp, Scope: Entire account (first time) or project-scoped later
  4. Copy the token (starts with pypi-)

2. Install Build Tools

pip install build twine

3. Build the Package

cd yfinance_mcp
python -m build

4. Publish to PyPI

twine upload dist/*

Credentials:

  • Username: __token__
  • Password: your PyPI API token (the pypi- one from step 1)

Updating Versions

  1. Bump version in pyproject.toml and src/yfinance_mcp/__init__.py
  2. Rebuild: python -m build
  3. Upload: twine upload dist/*

Project Structure

yfinance_mcp/
├── pyproject.toml                  # Package metadata + entry points
├── LICENSE
├── README.md
├── src/
│   └── yfinance_mcp/
│       ├── __init__.py             # Package version
│       ├── server.py               # FastMCP server + 30 tools
│       └── utils.py                # DataFrame/Series serialization
└── tests/
    └── test_server.py              # Unit tests

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yfinance_market_mcp-0.2.1.tar.gz (10.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yfinance_market_mcp-0.2.1-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file yfinance_market_mcp-0.2.1.tar.gz.

File metadata

  • Download URL: yfinance_market_mcp-0.2.1.tar.gz
  • Upload date:
  • Size: 10.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for yfinance_market_mcp-0.2.1.tar.gz
Algorithm Hash digest
SHA256 c125b009706e908bc63cebf044305611faa0b1cde1ce3fafa2b4fa6eb51ad4a6
MD5 182780fcb08fbc67382a9e56192677f8
BLAKE2b-256 df97a0a95a55ae08a811e2146fb055bce9f7e07e0a16e5d62b29815b267bb017

See more details on using hashes here.

File details

Details for the file yfinance_market_mcp-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for yfinance_market_mcp-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e65c67439a91829a4e3b8961854d106f9f0e7b04423bb771d9cd05e8753fc139
MD5 145a5a0f2692ca0633b711b92503ef0d
BLAKE2b-256 33fd67b8aa51b44a0431e8d23964fddfbf69621fb6784132d68b3dc7eebaeff9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page