MCP server for Yahoo Finance market data over stdio
yahoo-finance-mcp
MCP server that fetches market data from Yahoo Finance over stdio. Tools return JSON strings.
Requirements: Python 3.10+
Install
git clone https://github.com/mark-oskin/yahoo-finance-mcp.git
cd yahoo-finance-mcp
python3 -m venv .venv # or: uv venv --python 3.12
source .venv/bin/activate
pip install -e . # or: uv pip install -e .
The console entry point is yahoo-finance-mcp.
Connect in Cursor
Add to MCP config (use the full path to your venv binary):
{
"mcpServers": {
"yahoo-finance": {
"command": "/absolute/path/to/yahoo_finance_mcp/.venv/bin/yahoo-finance-mcp",
"args": [],
"env": {}
}
}
}
Or run via module:
{
"mcpServers": {
"yahoo-finance": {
"command": "/absolute/path/to/yahoo_finance_mcp/.venv/bin/python",
"args": ["-m", "yahoo_finance_mcp.server"],
"env": {}
}
}
}
Tools
| Tool | Description |
|------|-------------|
| finance_get_stock_price | Latest price for a ticker symbol |
| finance_get_option_data | Options chain (calls/puts) for an expiration |
finance_get_stock_price
Example response:
{
"symbol": "AAPL",
"price": 198.42,
"currency": "USD",
"exchange": "NMS",
"as_of": "2026-05-21T12:00:00+00:00"
}
finance_get_option_data
Parameters: symbol, optional expiration (YYYY-MM-DD), option_type (calls | puts | both), optional strike_min / strike_max, limit (per side, default 100, max 500).
Returns available expirations, the selected expiration, and contract rows. Each contract includes volume and open_interest (integers, or null when unavailable), plus strike, bid, ask, implied volatility, and related fields.