关于 Yahoo Finance
Yahoo Finance MCP Server 基于 Yahoo Finance 提供股票报价、历史价格、财务报表、分析师评级等数据,适合在 Claude Desktop 等客户端中以自然语言查询市场信息。
主要功能
- 01实时股票报价与市场数据
- 02OHLCV 历史价格与汇总统计
- 03公司概况与财务报表查询
- 04分析师评级与目标价
- 05多只股票并列对比
- 06可选 HTTP 模式,支持 /mcp 端点
适用场景
- 01用自然语言查询个股报价与历史走势
- 02并排比较多只股票的关键指标
- 03查看期权链或机构持股情况
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露报价、历史价格、财务报表和新闻等 13 个工具,可通过 stdio 或 HTTP 方式连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Yahoo Finance MCP 服务 📈
由 Yahoo Finance 提供支持,为 Claude Desktop 和任何兼容 MCP 的客户端提供实时股票市场数据。通过自然语言获取报价、历史价格、公司简介、财务报表、分析师评级和多股票比较。
npm 包:
yahoo-finance-mcp-server· GitHub 仓库:danishashko/yahoo-finance-mcp。仓库名称比包名称短;两者都指向此项目。
🎯 你将获得
- 📊 实时股票报价,包含完整市场数据
- 📈 历史价格(OHLCV),附带汇总统计数据
- 🏢 公司简介、高管信息和关键统计数据
- 💰 财务报表(损益表、资产负债表、现金流量表)
- 🎯 分析师评级、目标价和近期评级趋势
- ⚖️ 多股票比较,并排展示
- 📰 每只股票的最新财经新闻
- 🧾 期权链(看涨期权/看跌期权、行权价、IV、未平仓合约)
- 🏦 持有情况数据——机构、共同基金和内部人士活动
- 💵 股息与拆股历史
- 🔮 分析师未来预估(目标价、EPS/营收、增长)
- 🔎 按公司名称或关键词搜索代码
- 🕒 市场状态(开盘/休市)和指数摘要
默认情况下,每个工具都返回易读的 markdown,也可按需返回结构化 JSON(response_format: "json")。请求共用一个模拟浏览器的 HTTP 会话,以减少 Yahoo Finance 的速率限制。
🚀 快速开始
将以下内容添加到 Claude Desktop 配置中,然后重启 Claude:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"yahoo-finance": {
"command": "npx",
"args": ["-y", "yahoo-finance-mcp-server"]
}
}
}
就这样。首次启动时,npx 封装程序会创建隔离的 Python 环境并为你安装依赖项(这是一次性操作,可能需要一分钟)。你只需在计算机上安装 Python 3.10+ 和 Node.js 16+。
更喜欢全局安装?
npm install -g yahoo-finance-mcp-server
{
"mcpServers": {
"yahoo-finance": {
"command": "yahoo-finance-mcp-server"
}
}
}
🌐 HTTP 模式(n8n、远程 Agent,以及任何可连接到 URL 的客户端)
有些客户端会将 MCP 服务作为子进程启动,并通过 stdio 与其通信; 另一些客户端只接受 URL。n8n 的 MCP Client Tool 节点属于第二种——它 支持 HTTP Streamable 和 SSE,但无法启动命令——因此仅使用 stdio 会导致无法访问该服务。
--http 会通过 /mcp 上的 Streamable HTTP 提供相同的 13 个工具:
npx -y yahoo-finance-mcp-server --http
# -> http://127.0.0.1:8000/mcp
| 标志 | 默认值 | 作用 |
|---|---|---|
--http | off | 在 /mcp 上提供 Streamable HTTP,而非 stdio |
--host | 127.0.0.1 | 要绑定的接口 |
--port | 8000 | 要绑定的端口 |
--allowed-host | 见下文 | 要接受的 Host 标头,可重复指定 |
--stateful | off | 为每个客户端保留会话,而非使用无状态模式 |
此模式不会添加身份验证,因此请将其绑定到你信任的接口。
从容器访问
Docker 中的 n8n 不在你的回环接口上,因此需要绑定到更广泛的接口并使用 主机别名:
npx -y yahoo-finance-mcp-server --http --host 0.0.0.0 --port 8931
然后将 MCP Client Tool 节点指向 http://host.docker.internal:8931/mcp
并将身份验证设为 None。
绑定到更广泛的接口时,DNS 重绑定防护仍会启用。默认情况下,绑定端口上的
localhost、127.0.0.1 和 host.docker.internal 都会被接受;其他名称
需要使用 --allowed-host name:port,使用未列出的名称发出的请求会收到
421 Misdirected Request。
🔧 可用工具
| 工具 | 返回内容 | 参数 |
|---|---|---|
get_stock_quote | 当前价格、涨跌幅、当日和 52 周价格区间、成交量、市值、市盈率、每股收益、股息率 | ticker |
get_historical_prices | OHLCV 历史数据,含摘要统计和总回报 | ticker、period、interval |
get_company_info | 业务摘要、主要高管、估值和财务概要 | ticker |
get_financial_statements | 年度利润表、资产负债表和现金流量表 | ticker |
compare_stocks | 并列展示多个股票代码的关键指标,并提供简要分析 | tickers(2 到 10 个) |
get_analyst_recommendations | 目标价、共识评级、评级趋势,以及近期上调/下调评级 | ticker |
get_market_news | 最新新闻标题,含来源、日期、摘要和链接 | ticker、count |
get_options_chain | 到期日列表,或看涨/看跌期权链(行权价、买价/卖价、成交量、未平仓合约、隐含波动率) | ticker、expiration_date、option_type |
get_holders | 机构、共同基金或主要持有人,或内部人交易 | ticker、holder_type |
get_dividends_splits | 股息支付历史(含摘要)和股票拆分历史 | ticker |
get_analyst_estimates | 远期目标价、各时期的每股收益/营收预估,以及增长预估 | ticker |
search_symbols | 按公司名称或关键词查找股票代码 | query、count |
get_market_status | 市场是否开市/休市,含时间信息和主要指数摘要 | region |
每个工具都接受 response_format("markdown" 为默认值,也可使用 "json")。
get_historical_prices 选项:
period:1d、5d、1mo、3mo、6mo、1y、2y、5y、10y、ytd、maxinterval:1m、2m、5m、15m、30m、60m、90m、1h、1d、5d、1wk、1mo、3mo
get_options_chain: 不传 expiration_date 调用以列出可选日期,然后再传入日期调用。option_type 可设为 calls、puts 或 both。
get_holders: holder_type 可设为 institutional、mutualfund、major 或 insider_transactions。
💬 示例提示词
连接服务后,直接向 Claude 提问:
- “Apple 股票的当前价格是多少?”
- “展示 Amazon 过去一年的股价表现。”
- “介绍一下 Tesla 这家公司,以及由谁管理。”
- “展示 Apple 的利润表。”
- “比较 AAPL、MSFT 和 GOOGL。”
- “分析师怎么看 Amazon?目标价是多少?”
- “NVIDIA 的最新消息是什么?”
- “展示下个月到期的 SPY 看涨期权。”
- “Apple 最大的机构持有人有哪些?”
- “Coca-Cola 的股息历史是什么?”
🐛 故障排除
“Command not found” / “Python not found”
确保已安装 Python 和 Node.js,并且它们位于 PATH 中。在 macOS/Linux 上,尝试在配置中使用 python3 而不是 python。
“Module not found: yfinance”(仅限手动安装) 安装依赖项:
pip install yfinance curl_cffi pandas tabulate mcp pydantic httpx
Claude 中未显示工具
- 确认配置文件是有效的 JSON(没有尾随逗号)。
- 完全退出并重新打开 Claude Desktop。
- 检查配置中的路径确实存在。
“Error fetching data”
- 检查互联网连接。
- 确认股票代码(例如
AAPL,而不是Apple)。 - 一些规模较小的公司数据有限,且 Yahoo Finance 可能会短暂不可用。
使用其他模型或提供商(LiteLLM、OpenRouter、NVIDIA NIM、本地模型)
此服务不会与模型通信。客户端会将其作为本地进程启动,并通过 stdin/stdout
进行 JSON-RPC 通信,因此更改 ANTHROPIC_BASE_URL 或替换客户端使用的模型不会影响它。如果切换后工具停止运行,请检查两件事:模型必须支持函数调用;代理如果配置为丢弃不支持的参数,可能会悄无声息地移除工具定义,且完全不报错。在怀疑服务本身之前,先在客户端中运行 /mcp(或运行 claude mcp list),确认服务已连接。
🛠️ 手动安装(替代方式)
如果你更愿意直接运行 Python 文件,而不是通过 npx 运行:
1. 下载服务
将 yahoo_finance_mcp.py 保存到计算机上的某个位置,并安装依赖项:
pip install yfinance curl_cffi pandas tabulate mcp pydantic httpx
(在 macOS/Linux 上使用 pip3)
2. 将 Claude Desktop 指向该文件
{
"mcpServers": {
"yahoo-finance": {
"command": "python3",
"args": ["/absolute/path/to/yahoo_finance_mcp.py"]
}
}
}
在 Windows 上,使用 "command": "python",并指定类似 "C:\\path\\to\\yahoo_finance_mcp.py" 的路径(使用双反斜杠或正斜杠)。
3. 重启 Claude Desktop。
🔒 隐私与速率限制
- 通过
yfinance库使用免费的 Yahoo Finance API。 - 请求直接发送至 Yahoo Finance。不会存储或代理任何内容。
- Yahoo Finance 对每个 IP 的请求速率限制约为每小时 2,000 次。
- 适用于个人、教育和研究用途。
📝 备注
- 股票代码请使用大写字母(
AAPL、MSFT、TSLA)。 - 部分报价可能延迟 15 至 20 分钟。
- 大型上市公司的财务报表通常都可获取。
📋 更新日志
完整版本历史请参阅 CHANGELOG.md。核心修复(工具输入验证、分析师建议、股息收益率、可用的 npx 安装)已在 v1.1.0 中推出。
📚 资源
⚖️ 法律免责声明
此工具通过 yfinance 库使用 Yahoo Finance 公开提供的数据。Yahoo!、Y!Finance 和 Yahoo! Finance 是 Yahoo, Inc. 的注册商标。此工具与 Yahoo, Inc. 无关联,也未获得其认可或审查。有关你使用这些数据的权利详情,请参阅 Yahoo! 的使用条款。
👤 作者
Daniel Shashko
- GitHub: @danishashko
- LinkedIn:daniel-shashko
- npm:danielshashko
📄 许可证
MIT © Daniel Shashko
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。