关于 yfinance-ai: Yahoo Finance
yfinance-ai: Yahoo Finance 是面向金融研究者的 MCP 服务,通过 yfinance 提供股票、基金、加密货币、外汇和商品等市场数据。它还涵盖财务报表、分析师预测、期权及市场日历,所有工具均为只读。
主要功能
- 01查询报价、历史价格和公司信息
- 02获取财务报表、比率与估值
- 03查看分析师预测和评级
- 04查询持有人、内部人及期权数据
- 05获取市场概览与事件日历
适用场景
- 01比较多只股票的指标和历史表现
- 02查看公司财务与分析师目标价
- 03追踪分红、内部人交易和持仓
- 04查询即将发布的财报和经济事件
MCP 相关
该 MCP 服务通过 stdio 向兼容客户端提供 Yahoo Finance 数据工具。所有工具均为只读。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
68收录的工具列表 · 更新于 1 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| tickers | string | 是 | 以逗号分隔的股票代码列表(例如:'AAPL,MSFT,GOOGL') |
详细介绍
yfinance-ai MCP 服务
全球首个 AI 驱动的 Yahoo Finance 集成:通过一个 Python 文件提供 68 个工具,支持股票、ETF、共同基金、加密货币、外汇和大宗商品。
🚀 在 ClawHub 和 OpenWebUI 上有数千次下载
价格和历史数据、财务报表、比率和估值历史、分析师预估和目标价、财报、股息、期权、持有人和内部人士、基金和 ETF、市场异动、板块和行业,以及财报、IPO、经济和拆股日历。
| 使用方式 | 安装 | 仓库 |
|---|---|---|
| Claude、Cursor、VS Code、LangChain、Google ADK、Strands Agents 和其他 MCP 客户端 | uvx yfinance-ai@latest | yfinance-ai-mcp |
| OpenClaw 的 ClawHub 技能 🚀 数千次下载 | openclaw skills install @lkcair/stocks | yfinance-ai-skill |
| OpenWebUI 工具 🚀 数千次下载 | 前往 openwebui.com 获取 | yfinance-ai |
| Python | from yfinance_ai import Tools | yfinance-ai |
安装
需要 uv。无需 API 密钥。
Claude Code:
claude mcp add yfinance-ai -- uvx yfinance-ai@latest
VS Code:
code --add-mcp '{"name":"yfinance-ai","type":"stdio","command":"uvx","args":["yfinance-ai@latest"]}'
Claude Desktop、Cursor、Windsurf 和其他客户端,请在客户端的 MCP 配置文件中添加:
{
"mcpServers": {
"yfinance-ai": {
"command": "uvx",
"args": [
"yfinance-ai@latest"
]
}
}
}
@latest 会在客户端启动时获取新版本。不使用 uv 时:运行 pip install yfinance-ai,然后使用 "command": "yfinance-ai",无需参数。
已在 MCP Registry 中登记,名称为 io.github.lkcair/yfinance-ai。所有工具均为只读。
Agent 框架
该服务通过 stdio 使用 uvx yfinance-ai@latest 运行,因此任何支持 MCP 的框架都可以加载其中的所有工具。
LangChain:pip install "langchain[mcp]" langchain-anthropic
import asyncio
from langchain.agents import create_agent
from langchain.mcp import MCPAdapter
async def main():
config = {"mcpServers": {"yfinance-ai": {
"command": "uvx", "args": ["yfinance-ai@latest"],
}}}
async with MCPAdapter(config) as adapter:
tools = await adapter.list_tools()
agent = create_agent("claude-sonnet-5", tools)
result = await agent.ainvoke({"messages": [{"role": "user", "content": "What is Apple's P/E, and how does it compare with Microsoft and Google?"}]})
print(result["messages"][-1].content)
asyncio.run(main())
Google ADK:pip install "google-adk[mcp]"
from google.adk.agents import LlmAgent
from google.adk.tools.mcp_tool import McpToolset
from google.adk.tools.mcp_tool.mcp_session_manager import StdioConnectionParams
from mcp import StdioServerParameters
root_agent = LlmAgent(
model="gemini-flash-latest",
name="yfinance_ai",
instruction="Answer with the yfinance-ai tools.",
tools=[McpToolset(connection_params=StdioConnectionParams(
server_params=StdioServerParameters(command="uvx", args=["yfinance-ai@latest"]),
timeout=60,
))],
)
Strands Agents:pip install strands-agents
from mcp import stdio_client, StdioServerParameters
from strands import Agent
from strands.tools.mcp import MCPClient
yfinance_ai = MCPClient(lambda: stdio_client(StdioServerParameters(
command="uvx", args=["yfinance-ai@latest"],
)))
agent = Agent(tools=[yfinance_ai])
agent("What is Apple's P/E, and how does it compare with Microsoft and Google?")
示例问题
- Apple 的市盈率是多少?与 Microsoft 和 Google 相比如何?
- 分析师对 NVIDIA 有何看法?目标价和近期评级上调情况如何?
- 本周有哪些公司发布财报?
- 今天的比特币价格、EUR/USD 汇率和黄金价格是多少?
MCP 工具(68 个)
报价和历史数据
| 工具 | 参数 | 描述 |
|---|---|---|
get_stock_price | ticker | 获取股票代码对应的当前股价和关键指标 |
get_stock_quote | ticker | 获取详细报价,包含买卖价、当日区间和交易信息 |
get_fast_info | ticker | 快速获取股票代码信息(轻量、响应迅速) |
get_historical_data | ticker, period="1y", interval="1d" | 获取股票的历史价格数据 |
get_historical_price_on_date | ticker, date | 获取指定日期的历史价格 |
download_multiple_tickers | tickers, period="1mo", interval="1d" | 一次获取多个股票代码的历史数据 |
公司
| 工具 | 参数 | 描述 |
|---|---|---|
get_company_info | ticker | 获取详细的公司信息和业务描述 |
get_company_overview | ticker | 获取公司概览,并提供每项指标的背景说明 |
get_company_officers | ticker | 获取公司高管和关键管理人员信息 |
get_isin | ticker | 获取股票代码对应的国际证券识别码(ISIN) |
财务数据
| 工具 | 参数 | 说明 |
|---|---|---|
get_income_statement | ticker, period="annual" | 获取利润表数据 |
get_balance_sheet | ticker, period="annual" | 获取资产负债表数据 |
get_cash_flow | ticker, period="annual" | 获取现金流量表数据 |
get_ttm_financials | ticker | 获取过去 12 个月(TTM)的利润表和现金流数据 |
get_key_ratios | ticker | 获取关键财务比率和估值指标 |
get_valuation_history | ticker | 获取当前及过去几个季度的估值指标(市值、EV、P/E、PEG、P/S、P/B、EV/EBITDA) |
get_financial_summary | ticker | 获取股票全面的一页式财务摘要 |
get_shares_history | ticker, years=3 | 获取随时间变化的流通股数(稀释或回购) |
盈利和预测
| 工具 | 参数 | 说明 |
|---|---|---|
get_earnings_dates | ticker | 获取即将公布和过去的财报日期及预测数据 |
get_earnings_history | ticker | 获取历史盈利数据,包括年度和季度数据 |
get_earnings_calendar | ticker | 获取财报日历,包括下一次财报发布日期和股息日期 |
get_analyst_estimates | ticker | 获取分析师对盈利、营收和 EPS 的预测 |
get_growth_estimates | ticker | 获取分析师的增长预测 |
get_eps_trend | ticker | 获取 EPS(每股收益)趋势数据,展示预测值的变化 |
get_eps_revisions | ticker | 获取 EPS 修正数据,展示分析师预测的变化 |
分析师
| 工具 | 参数 | 说明 |
|---|---|---|
get_analyst_recommendations | ticker | 获取分析师的建议和评级 |
get_analyst_price_targets | ticker | 获取分析师对股票的详细目标价 |
get_upgrades_downgrades | ticker, limit=20 | 获取分析师评级上调和下调的详细历史记录 |
持有人和内部人士
| 工具 | 参数 | 说明 |
|---|---|---|
get_institutional_holders | ticker | 获取主要机构持有人及其持股情况 |
get_major_holders | ticker | 获取主要持有人摘要(机构、内部人士、公众持股) |
get_mutualfund_holders | ticker | 获取共同基金持有人 |
get_insider_transactions | ticker | 获取近期内部人士交易活动 |
get_insider_purchases | ticker | 仅获取内部人士买入记录(筛选买入交易) |
get_insider_roster_holders | ticker | 获取内部人士名册(公司内部人士列表) |
股息和公司行动
| 工具 | 参数 | 说明 |
|---|---|---|
get_dividends | ticker, period="5y" | 获取股息支付历史和当前指标 |
get_stock_splits | ticker | 获取股票拆分历史 |
get_corporate_actions | ticker | 获取所有公司行动(合并股息和股票拆分) |
get_capital_gains | ticker | 获取资本利得分配(主要针对基金和 ETF) |
期权
| 工具 | 参数 | 说明 |
|---|---|---|
get_options_chain | ticker, expiration="" | 获取期权链数据(看涨期权和看跌期权) |
get_options_expirations | ticker | 获取所有可用的期权到期日 |
全市场
| 工具 | 参数 | 描述 |
|---|---|---|
get_market_status | 检查美国股市当前是否开市 | |
get_market_summary | region="US" | 获取某个地区的市场概览:开市/休市状态,以及主要指数、期货、债券和外汇 |
get_market_indices | 获取主要市场指数的当前价格 | |
get_market_movers | category="day_gainers", count=10 | 从 Yahoo Finance 筛选器获取今日市场异动股 |
get_trending_tickers | count=10 | 获取今日交易最活跃(热门)的美国股票代码 |
get_sector_performance | 获取主要市场板块的表现 | |
get_sector_overview | sector="technology" | 获取板块概览:规模、权重、最大公司、行业和板块 ETF |
get_industry_overview | industry="semiconductors" | 获取行业概览:规模最大、表现最佳和增长最快的公司 |
日历
| 工具 | 参数 | 描述 |
|---|---|---|
get_upcoming_earnings | days=7, limit=25 | 获取全市场财报日历(未来 N 天发布财报的公司) |
get_ipo_calendar | days=14, limit=25 | 获取即将进行的 IPO(交易所、预计日期、价格区间、股数) |
get_economic_calendar | days=7, limit=30 | 获取即将发生的经济事件(CPI、就业、GDP、利率决议)及预期值和前值 |
get_splits_calendar | days=14, limit=25 | 获取即将进行的股票拆分 |
基金和 ETF
| 工具 | 参数 | 描述 |
|---|---|---|
get_fund_overview | ticker | 获取 ETF 或共同基金的概览数据 |
get_fund_holdings | ticker, limit=25 | 获取 ETF 或共同基金的主要持仓 |
get_fund_sector_weights | ticker | 获取 ETF 或共同基金的板块配置/权重 |
加密货币、外汇和大宗商品
| 工具 | 参数 | 描述 |
|---|---|---|
get_crypto_price | symbol | 获取加密货币价格和市场数据 |
get_forex_rate | pair | 获取货币对的外汇汇率 |
get_commodity_price | commodity | 获取大宗商品/期货价格数据 |
比较
| 工具 | 参数 | 描述 |
|---|---|---|
compare_stocks | tickers | 比较多只股票的关键指标 |
get_peer_comparison | ticker, peers=null | 按关键指标将一只股票与同业公司进行比较 |
get_historical_comparison | tickers, period="1y" | 比较多只股票的历史价格表现 |
get_complete_analysis | ticker, peers="" | 对一只股票进行完整分析,并调用所有相关工具 |
新闻和文件
| 工具 | 参数 | 描述 |
|---|---|---|
get_stock_news | ticker, limit=10 | 获取有关某只股票的近期新闻文章 |
get_sec_filings | ticker | 获取近期 SEC 文件(10-K、10-Q、8-K 等) |
实用工具
| 工具 | 参数 | 描述 |
|---|---|---|
search_ticker | query | 按公司名称或关键词搜索股票代码 |
validate_ticker | ticker | 验证股票代码是否存在且可交易 |
get_api_status | 获取 API 状态和使用信息 | |
run_self_test | ticker="SPY" | 对 yfinance-ai 工具运行全面自测(64 项检查) |
许可证
MIT。数据通过 yfinance 来自 Yahoo Finance,可能存在延迟。与 Yahoo 无关联。仅供研究和教育使用,不构成投资建议。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。