Yahoo Finance MCP Server
A simple MCP server for Yahoo Finance using yfinance. This server provides a set of tools to fetch stock data, news, and other financial information.
Tools
-
yfinance_get_ticker_info
- Retrieve stock data including company info, financials, trading metrics and governance data.
- Inputs:
symbol(string): The stock symbol.
-
yfinance_get_ticker_news
- Fetches recent news articles related to a specific stock symbol with title, content, and source details.
- Inputs:
symbol(string): The stock symbol.
-
yfinance_search
- Fetches and organizes search results from Yahoo Finance, including stock quotes and news articles.
- Inputs:
query(string): The search query (ticker symbol or company name).search_type(string): Type of search results to retrieve (options: "all", "quotes", "news").
-
yfinance_get_top
- Get top entities (ETFs, mutual funds, companies, growth companies, or performing companies) in a sector.
- Inputs:
sector(string): The sector to get.top_type(string): Type of top companies to retrieve (options: "top_etfs", "top_mutual_funds", "top_companies", "top_growth_companies", "top_performing_companies").top_n(number, optional): Number of top entities to retrieve (default 10).
-
yfinance_get_price_history
- Fetch historical price data for a given stock symbol over a specified period and interval. Can return data as a markdown table or generate professional financial charts using mplfinance, including candlestick charts with volume bars, VWAP overlays, and volume profile analysis.
- Inputs:
symbol(string): The stock symbol.period(string, optional): Time period to retrieve data for (e.g. '1d', '1mo', '1y'). Default is '1mo'.interval(string, optional): Data interval frequency (e.g. '1d', '1h', '1m'). Default is '1d'.chart_type(string, optional): Type of chart to generate. If not specified, returns price data as markdown table. Options:- "price_volume": Candlestick chart with volume bars
- "vwap": Volume Weighted Average Price chart with VWAP overlay
- "volume_profile": Candlestick chart with volume profile showing volume distribution by price level (displayed as a histogram on the right side)
- Output:
- If
chart_typeis not specified: Returns historical price data as a markdown table - If
chart_typeis specified: Returns a base64-encoded WebP image for efficient token usage
- If
Usage
You can use this MCP server via uv (Python package installer), Docker, or local development.
Via uv
- Install uv
- Add the following configuration to your MCP server configuration file:
{
"mcpServers": {
"yfmcp": {
"command": "uvx",
"args": ["yfmcp@latest"]
}
}
}
Via Docker
Add the following configuration to your MCP server configuration file:
{
"mcpServers": {
"yfmcp": {
"command": "docker",
"args": ["run", "-i", "--rm", "narumi/yfinance-mcp"]
}
}
}
Local Development
For local development, add the following configuration to your MCP server configuration file:
{
"mcpServers": {
"yfmcp": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/yfinance-mcp",
"yfmcp"
]
}
}
}
Replace /path/to/yfinance-mcp with the actual path to your local repository.
Demo Chatbot
This repository includes a demo chatbot built with Chainlit that provides a conversational interface to the Yahoo Finance MCP server.
Features
- Interactive chat interface for querying stock information
- Automatic display of financial charts and data visualizations
- Support for both OpenAI and LiteLLM backends
- Tool calling integration with the MCP server
Setup
- Install demo dependencies:
uv sync --extra dev
- Configure environment variables:
# Recommended: start from the template
cp .env.example .env
# For OpenAI
OPENAI_API_KEY=your_openai_api_key
DEFAULT_MODEL=gpt-4.1
# For LiteLLM (alternative)
LITELLM_API_KEY=your_litellm_api_key
LITELLM_BASE_URL=your_litellm_base_url
DEFAULT_MODEL=gpt-4.1
- Run the demo:
uv run chainlit run demo.py
The chatbot will be available at http://localhost:8000.
Example Queries
- "Get AAPL stock information"
- "Show me recent TSLA news"
- "Display NVDA price history for the past month"
- "Show me a candlestick chart for MSFT over the last 3 months"
Metadata
Release files for iflow-mcp_narumiruna-yfinance-mcp 0.8.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_narumiruna_yfinance_mcp-0.8.0.tar.gz | 235.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_narumiruna_yfinance_mcp-0.8.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 248.6 kB
Release files / iflow_mcp_narumiruna_yfinance_mcp-0.8.0.tar.gz
| Download URL | iflow_mcp_narumiruna_yfinance_mcp-0.8.0.tar.gz |
|---|---|
| Size | 235.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
dc668c056f2148cf170db97def2bbe9f15bd0cf0ffe2f11c299d75d62e5e2651
|
|
BLAKE2b-256 checksum How to use checksums |
652df3d00a93e8e7ff975b5ed6a5f5db6ea28c59801d3e6aaa70247c7de4c0da
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_narumiruna_yfinance_mcp-0.8.0-py3-none-any.whl
| Download URL | iflow_mcp_narumiruna_yfinance_mcp-0.8.0-py3-none-any.whl |
|---|---|
| Size | 13.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2c8a7dc00bb63677bbf39f493c774afcdea63ab16d1d071016d7d9573430038c
|
|
BLAKE2b-256 checksum How to use checksums |
7fa40ed4f3b7613eec7c3165ba7785c3e8cf721ad6a62662b3d7475c133d40a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|