Yahoo Finance

io.github.danishashko由 GitHub 账号 danishashko 发布v1.6.2更新于 Nov 7, 2026

Yahoo Finance data: quotes, financials, earnings, screeners, funds, sectors, options, and news.

发布方自己的服务:Finance Foundation

已验证STDIO仅桌面金融数据与分析

概览

AI 生成的概览

本地运行、只读的 MCP 服务器,让助手获取雅虎财经的行情、财报、盈利、期权、持股、筛选器、基金与新闻数据。

可以做什么
  • 查询实时行情、历史 OHLCV 价格、公司简介与关键统计
  • 读取年度利润表、资产负债表、现金流量表、分红与拆股记录
  • 查看分析师评级、目标价、前瞻预测、财报日期与财报日历
  • 查看期权链、机构与基金持股、内部人交易,以及 ETF 或共同基金持仓
  • 按预设列表筛选股票,浏览行业与板块概览,并对比最多十只股票
  • 搜索股票代码并按标的获取新闻;结果可为 markdown 或 JSON,并附带结构化内容
适用场景
适合让助手回答市场问题、研究公司、对比多只股票,或获取财报、期权与持股数据,而无需付费数据订阅或 API 密钥。
运行要求
通过 npx 本地运行,需要 Node.js 16+ 与 Python 3.10+(首次启动时包装器会创建 Python 环境)。无需 API 密钥、账号或注册。需要能访问雅虎财经的网络。可选以 Streamable HTTP 在本地端口提供服务,供只支持 URL 的客户端使用。
安装前请注意
所有工具均为只读,不能下单或修改任何内容。请求直接发往雅虎财经,因此查询内容与 IP 对其可见;不存储也不代理。雅虎按 IP 限制约每小时 2,000 次请求,部分行情可能延迟 15 至 20 分钟。HTTP 模式不附带身份验证,应仅绑定在可信接口上。数据使用受雅虎条款约束,本项目与雅虎无关联。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Yahoo Finance,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Yahoo Finance MCP Server 📈

[npm version] [npm downloads] [Python] [License: MIT]

Free Yahoo Finance MCP server with no API key. 18 read-only tools give Claude, Claude Code, Cursor, VS Code, Windsurf, Codex, n8n or any other MCP client live stock quotes, historical prices, financial statements, earnings dates and calendars, analyst ratings and estimates, options chains, insider and institutional holders, stock screeners, ETF and fund holdings, sector overviews and market news. Runs locally with one npx command, over stdio or Streamable HTTP.

npm package: yahoo-finance-mcp-server · GitHub repo: danishashko/yahoo-finance-mcp. The repo name is shorter than the package name; both refer to this project.

🎯 What You Get

  • 📊 Real-time stock quotes with full market data
  • 📈 Historical prices (OHLCV) with summary statistics
  • 🏢 Company profiles, officers, and key statistics
  • 💰 Financial statements (income, balance sheet, cash flow)
  • 🎯 Analyst ratings, price targets, and the recent recommendation trend
  • ⚖️ Multi-stock comparisons side by side
  • 📰 Latest financial news per ticker
  • 🧾 Options chains (calls/puts, strikes, IV, open interest)
  • 🏦 Ownership data — institutional, mutual fund, and insider activity
  • 💵 Dividend & split history
  • 🔮 Forward analyst estimates (price targets, EPS/revenue, growth)
  • 🔎 Symbol search by company name or keyword
  • 🕒 Market status (open/closed) and index summary
  • 📅 Earnings dates: next report, beat/miss history, and a market-wide earnings calendar
  • 🧲 Stock screeners: day gainers/losers, most active, most shorted, undervalued growth, top ETFs
  • 🧺 ETF and fund data: holdings, expense ratio, sector weights
  • 🏭 Sector and industry overviews with their largest, fastest-growing and best-performing companies

Every tool returns human-readable markdown by default, or structured JSON on request (response_format: "json"). Requests share a single browser-impersonating HTTP session to reduce Yahoo Finance rate-limiting.

🚀 Quick Start

Add this to your Claude Desktop config and restart Claude:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{  "mcpServers": {    "yahoo-finance": {      "command": "npx",      "args": ["-y", "yahoo-finance-mcp-server"]    }  }}

That is it. On first launch the npx wrapper creates an isolated Python environment and installs the dependencies for you (a one-time step that can take a minute). You only need Python 3.10+ and Node.js 16+ on your machine.

Other clients

Claude Code

bash
claude mcp add yahoo-finance -- npx -y yahoo-finance-mcp-server

Cursor (~/.cursor/mcp.json), Windsurf (~/.codeium/windsurf/mcp_config.json) and Gemini CLI (~/.gemini/settings.json) take the same mcpServers block as Claude Desktop above.

VS Code (.vscode/mcp.json)

json
{  "servers": {    "yahoo-finance": {      "type": "stdio",      "command": "npx",      "args": ["-y", "yahoo-finance-mcp-server"]    }  }}

Codex CLI (~/.codex/config.toml)

toml
[mcp_servers.yahoo-finance]command = "npx"args = ["-y", "yahoo-finance-mcp-server"]

n8n and other URL-only clients: see HTTP mode.

Prefer a global install?

bash
npm install -g yahoo-finance-mcp-server
json
{  "mcpServers": {    "yahoo-finance": {      "command": "yahoo-finance-mcp-server"    }  }}

🌐 HTTP mode (n8n, remote agents, anything that connects to a URL)

Some clients spawn an MCP server as a child process and talk to it over stdio; others only take a URL. n8n's MCP Client Tool node is the second kind - it offers HTTP Streamable and SSE and no way to launch a command - so stdio alone puts the server out of reach.

--http serves the same 18 tools over Streamable HTTP at /mcp:

bash
npx -y yahoo-finance-mcp-server --http# -> http://127.0.0.1:8000/mcp
FlagDefaultWhat it does
--httpoffServe Streamable HTTP at /mcp instead of stdio
--host127.0.0.1Interface to bind
--port8000Port to bind
--allowed-hostsee belowHost header to accept, repeatable
--statefuloffKeep a session per client instead of stateless

No authentication is added, so keep it on an interface you trust.

Reaching it from a container

n8n in Docker is not on your loopback interface, so bind wider and use the host alias:

bash
npx -y yahoo-finance-mcp-server --http --host 0.0.0.0 --port 8931

Then point the MCP Client Tool node at http://host.docker.internal:8931/mcp with authentication set to None.

DNS-rebinding protection stays on when you bind wider. localhost, 127.0.0.1 and host.docker.internal on the bound port are accepted by default; any other name needs --allowed-host name:port, and a request arriving under an unlisted name gets 421 Misdirected Request.

🔧 Available Tools

ToolWhat it returnsParameters
get_stock_quoteCurrent price, change, day and 52-week range, volume, market cap, P/E, EPS, dividend yieldticker
get_historical_pricesOHLCV history with summary stats and total returnticker, period, interval
get_company_infoBusiness summary, key executives, valuation and financial highlightsticker
get_financial_statementsAnnual income statement, balance sheet, and cash flowticker
compare_stocksKey metrics for multiple tickers side by side, plus quick insightstickers (2 to 10)
get_analyst_recommendationsPrice targets, consensus, recommendation trend, and recent upgrades/downgradesticker
get_market_newsLatest news headlines with source, date, summary, and linkticker, count
get_options_chainExpiration dates, or the calls/puts chain (strike, bid/ask, volume, OI, IV)ticker, expiration_date, option_type
get_holdersInstitutional, mutual-fund, or major holders, or insider transactionsticker, holder_type
get_dividends_splitsDividend payment history (with summary) and stock-split historyticker
get_analyst_estimatesForward price targets, EPS/revenue estimates by period, and growth estimatesticker
search_symbolsFind ticker symbols by company name or keywordquery, count
get_market_statusWhether a market is open/closed, with timing and a major-index summaryregion
get_earningsNext earnings date (days away, EPS and revenue estimates), ex-dividend date, beat/miss historyticker, limit
get_earnings_calendarEvery company reporting in a date range, with timing and EPS estimatestart_date, end_date, min_market_cap, limit
screen_stocksResults of a Yahoo predefined screener with price, change, relative volume, P/Escreener, count
get_fund_dataETF or mutual fund holdings, expense ratio, sector weights, asset classesticker
get_sector_overviewSector or industry overview, largest companies, industries, top growers and performerssector, industry, limit

Every tool also accepts response_format ("markdown", the default, or "json").

Every result also carries the data as MCP structured content, described by the tool's published outputSchema, whichever text format you ask for. Clients that support structured output read typed fields directly; others read the text. Missing figures are null, and a failed call returns isError: true with a message saying what to change.

get_historical_prices options:

  • period: 1d, 5d, 1mo, 3mo, 6mo, 1y, 2y, 5y, 10y, ytd, max
  • interval: 1m, 2m, 5m, 15m, 30m, 60m, 90m, 1h, 1d, 5d, 1wk, 1mo, 3mo

get_options_chain: call without expiration_date to list available dates, then again with a date. option_type is calls, puts, or both. A chain returns the strikes nearest the current price.

get_holders: holder_type is institutional, mutualfund, major, insider_transactions, insider_purchases (6-month net insider buying), or insider_roster.

screen_stocks: screener is one of day_gainers, day_losers, most_actives, most_shorted_stocks, small_cap_gainers, aggressive_small_caps, growth_technology_stocks, undervalued_growth_stocks, undervalued_large_caps, top_etfs_us, top_performing_etfs, technology_etfs, bond_etfs, top_mutual_funds, solid_large_growth_funds, solid_midcap_growth_funds, conservative_foreign_funds, high_yield_bond, portfolio_anchors.

get_sector_overview: sector is one of basic-materials, communication-services, consumer-cyclical, consumer-defensive, energy, financial-services, healthcare, industrials, real-estate, technology, utilities. Call without industry to get the list of industry keys.

💬 Example Prompts

Once the server is connected, just ask Claude:

  • "What's the current price of Apple stock?"
  • "Show me Amazon's stock performance over the last year"
  • "Tell me about Tesla as a company and who runs it"
  • "Show me Apple's income statement"
  • "Compare AAPL, MSFT, and GOOGL"
  • "What do analysts think about Amazon, and what's the price target?"
  • "What's the latest news on NVIDIA?"
  • "Show me the SPY call options expiring next month"
  • "Who are the biggest institutional holders of Apple?"
  • "What's Coca-Cola's dividend history?"
  • "When does NVIDIA report next, and has it been beating estimates?"
  • "Which large caps report earnings this week?"
  • "What are today's biggest gainers?"
  • "What's inside QQQ and what does it cost?"
  • "Who are the biggest semiconductor companies?"
  • "Are Tesla insiders net buying or selling?"

❓ FAQ

Does it need an API key or a paid plan? No. It reads Yahoo Finance's public data through the yfinance library. There is no key, account or signup.

Is the data real-time? Quotes are near real-time for most US stocks and can be delayed about 15 minutes on some exchanges. Every quote states its exchange, market state and timestamp.

Which tickers work? Any symbol Yahoo Finance lists: US stocks (AAPL), class shares (BRK.B or BRK-B), non-US listings with Yahoo's exchange suffix (7203.T, BP.L, SAP.DE), ETFs and mutual funds (SPY, VFIAX), indices (^GSPC), crypto (BTC-USD) and currencies (EURUSD=X). Case does not matter. If you only have a company name, search_symbols finds the ticker.

Can it place trades or change anything? No. Every tool is read-only.

Does it work with clients other than Claude? Yes. It speaks standard MCP, so any client that supports MCP over stdio or Streamable HTTP can use it. Setup for the common ones is under Quick Start.

How do agents get structured data? Every result carries typed structuredContent matching the tool's outputSchema, whatever text format was asked for. Pass response_format: "json" to get JSON text as well.

Where is the machine-readable summary? llms.txt lists every tool, limit and error behaviour in one page for agents.

🐛 Troubleshooting

"Command not found" / "Python not found" Make sure Python and Node.js are installed and on your PATH. On macOS/Linux, try python3 instead of python in the config.

"Module not found: yfinance" (manual install only) Install the dependencies:

bash
pip install yfinance curl_cffi pandas tabulate mcp pydantic httpx

Tools not showing up in Claude

  1. Confirm the config file is valid JSON (no trailing commas).
  2. Fully quit and reopen Claude Desktop.
  3. Check the path in your config actually exists.

"Error fetching data"

  • Check your internet connection.
  • Verify the ticker symbol (for example AAPL, not Apple).
  • Some smaller companies have limited data, and Yahoo Finance can be briefly unavailable.

Using a different model or provider (LiteLLM, OpenRouter, NVIDIA NIM, a local model) This server never talks to a model. Your client starts it as a local process and speaks JSON-RPC over stdin/stdout, so changing ANTHROPIC_BASE_URL or swapping the model behind your client has no effect on it. If tools stop firing after a switch like that, check two things: the model has to support function calling, and a proxy configured to drop unsupported parameters can silently strip your tool definitions, which produces no error at all. Run /mcp in your client (or claude mcp list) to confirm the server is connected before suspecting the server.

🛠️ Manual Installation (Alternative)

If you would rather run the Python file directly instead of via npx:

1. Download the server

Save yahoo_finance_mcp.py somewhere on your machine and install the dependencies:

bash
pip install yfinance curl_cffi pandas tabulate mcp pydantic httpx

(or pip3 on macOS/Linux)

2. Point Claude Desktop at it

json
{  "mcpServers": {    "yahoo-finance": {      "command": "python3",      "args": ["/absolute/path/to/yahoo_finance_mcp.py"]    }  }}

On Windows use "command": "python" and a path like "C:\\path\\to\\yahoo_finance_mcp.py" (double backslashes or forward slashes).

3. Restart Claude Desktop.

🔒 Privacy & Rate Limits

  • Uses the free Yahoo Finance API via the yfinance library.
  • Requests go straight to Yahoo Finance. Nothing is stored or proxied.
  • Yahoo Finance rate-limits roughly 2,000 requests/hour per IP.
  • Intended for personal, educational, and research use.

📝 Notes

  • Tickers are case-insensitive, and BRK.B is accepted as well as Yahoo's BRK-B.
  • Some quotes may be delayed 15 to 20 minutes.
  • Financial statements are generally available for larger public companies.

📋 Changelog

See CHANGELOG.md for the full version history.

📚 Resources

⚖️ Legal Disclaimer

This tool uses Yahoo Finance's publicly available data through the yfinance library. Yahoo!, Y!Finance, and Yahoo! Finance are registered trademarks of Yahoo, Inc. This tool is not affiliated with, endorsed by, or vetted by Yahoo, Inc. Please refer to Yahoo!'s terms of use for details on your rights to use the data.

👤 Author

Daniel Shashko

📄 License

MIT © Daniel Shashko

来源:README.md,提交 2cf281a

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:服务器未在限时内响应。

版本历史

3
  1. v1.6.2最新Nov 7, 2026
  2. v1.6.0Nov 7, 2026
  3. v1.2.4Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Finance 集成