雅虎金融MCP服务器
一个全面的MCP(模型上下文协议)服务器,使用雅虎财经提供财务数据和分析工具。该服务器使AI助手能够访问实时股票数据、执行技术分析、管理投资组合等等。
雅虎财经提供了一套全面的财务数据,包括来自100多家全球交易所的实时和历史股票报价、市场指数、货币和加密货币。它涵盖了5年财务报表(通过晨星)、分析师建议、每股收益/收入估计(通过标准普尔全球)和市场新闻等基本数据。
- 涵盖的资产类别:股票、世界指数、ETF、货币/外汇、加密货币
:
- 市场数据:股票、ETF、加密货币、外汇汇率的实时(有一些延迟)和历史价格、股息和分割数据。
- 基本数据:资产负债表、损益表、现金流、估值比率、市值和已发行股票。
- 分析与研究:分析师建议、价格目标、收益估算和内幕交易。
- 覆盖范围:覆盖全球,包括主要指数(道琼斯、纳斯达克、标准普尔)和各种国际交易所。
安装
# Install dependencies
pip install -e .需求
- Python>=3.11
- mcp\[cli\]>=1.6.0
- 融资>=0.2.62
- 数值>=1.24.0
运行服务器
python server.py默认情况下,服务器使用stdio传输运行。
______________________________________________________________________
可用工具
核心数据工具
get_historical_stock_prices
获取股票的历史OHLCV(开盘、高、低、收盘、成交量)数据。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码(例如“AAPL”) |
period | str | “1个月” | 有效期:1天、5天、1个月、3个月、6个月、1年、2年、5年、10年、年初至今、最大 |
interval | str | “1d” | 有效间隔:1m、2m、5m、15m、30m、60m、90m、1h、1d、5d、1wk、1mo、3mo |
示例响应:
[
{"Date": "2024-01-15", "Open": 150.25, "High": 152.30, "Low": 149.80, "Close": 151.50, "Volume": 45000000}
]______________________________________________________________________
get_stock_info
获取全面的股票信息,包括价格、公司信息、财务指标等。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
退货: JSON对象,包含股票价格、交易信息、公司信息、财务指标、收益、利润、股息、资产负债表数据、所有权信息、分析师覆盖范围和风险指标。
______________________________________________________________________
get_yahoo_finance_news
获取股票的最新新闻文章。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
退货: 包含标题、摘要、描述和URL的新闻文章列表。
______________________________________________________________________
get_stock_actions
获取股息和股票分割历史记录。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
______________________________________________________________________
get_financial_statement
获取财务报表(损益表、资产负债表或现金流量表)。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
financial_type | str | 必填 | 以下之一: income_stmt, quarterly_income_stmt, balance_sheet, quarterly_balance_sheet, cashflow, quarterly_cashflow |
______________________________________________________________________
get_holder_info
获取股票的持有人信息。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
holder_type | str | 必填 | 以下之一: major_holders, institutional_holders, mutualfund_holders, insider_transactions, insider_purchases, insider_roster_holders |
______________________________________________________________________
get_option_expiration_dates
获取股票的可用期权到期日期。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
______________________________________________________________________
get_option_chain
获取特定到期日的期权链数据(看涨或看跌)。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
expiration_date | str | 必填 | 到期日期(YYYY-MM-DD格式) |
option_type | str | required | “calls”或“put” |
______________________________________________________________________
get_recommendations
获取分析师建议和升级/降级。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
recommendation_type | str | 必填 | “推荐”或“升级_降级” |
months_back | int | 12 | 升级/降级返回的月数 |
______________________________________________________________________
技术分析工具
get_moving_averages
计算简单移动平均(SMA)和指数移动平均(EMA)。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
periods | list\[int\] | \[20,50200\] | 要计算的时段列表 |
ma_type | str | “两者” | “sma”、“ema”或“两者” |
示例响应:
{
"ticker": "AAPL",
"currentPrice": 185.50,
"movingAverages": {
"20day": {"SMA": 182.30, "EMA": 183.10, "priceVsSMA": "1.75%"},
"50day": {"SMA": 178.50, "EMA": 179.20, "priceVsSMA": "3.92%"}
}
}______________________________________________________________________
get_rsi
计算相对强弱指数(RSI)。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
period | int | 14 | RSI计算期 |
退货: 当前RSI值、信号(超买/超卖/中性)和最近的RSI值。
______________________________________________________________________
get_macd
计算MACD(移动平均线收敛发散)指标。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
fast_period | int | 12 | 快速EMA周期 |
slow_period | int | 26 | EMA周期缓慢 |
signal_period | int | 9 | 信号线周期 |
退货: MACD线、信号线、直方图和信号(看涨/看跌/交叉)。
______________________________________________________________________
get_bollinger_bands
计算布林带。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
period | int | 20 | 中频段SMA周期 |
std_dev | int | 2 | 标准偏差数 |
退货: 高频带、中频带、低频带、%B指示符、带宽和信号。
______________________________________________________________________
get_support_resistance_levels
使用枢轴点计算支撑位和阻力位。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
period | str | “6mo” | 历史时期分析 |
退货: 枢轴点、R1/R2阻力位、S1/S2支撑位和52周高点/低点。
______________________________________________________________________
get_technical_summary
获取包含多个指标的全面技术分析摘要。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
退货: 移动平均线(SMA/EMA)、振荡指标(RSI、MACD)、布林带、成交量分析、组合信号和整体信号(看涨/看跌/中性)。
______________________________________________________________________
投资组合管理工具
calculate_portfolio_value
计算投资组合的当前价值。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
holdings | dict | required | ticker字典:数量对,例如。, {"AAPL": 10, "GOOGL": 5} |
退货: 投资组合总价值、单个头寸价值和投资组合权重。
______________________________________________________________________
get_portfolio_allocation
获取投资组合的部门和行业细分。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
holdings | dict | 必填 | 股票代码字典:数量对 |
退货: 部门分配、行业分配、多元化得分和顶级部门。
______________________________________________________________________
calculate_portfolio_returns
计算指定时期内的投资组合回报。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
holdings | dict | 必填 | 股票代码字典:数量对 |
period | str | “1个月” | 周期:“1天”、“5天”、 |
退货: 起始/结束值、总回报百分比、损益和每个头寸的回报。
______________________________________________________________________
get_portfolio_risk_metrics
计算投资组合风险指标,包括波动率、贝塔系数和夏普比率。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
holdings | dict | 必填 | 股票代码字典:数量对 |
benchmark | str | “SPY” | 用于比较的基准股票代码 |
退货: 年化波动率、投资组合贝塔系数、夏普比率、预期年回报率、风险价值(95%)和个股风险指标。
______________________________________________________________________
get_correlation_matrix
计算多个股票的相关矩阵。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tickers | list\[str\] | 必填 | 股票代码列表 |
period | str | “1y” | 相关性计算的历史时期 |
退货: 相关矩阵、高度相关对、平均相关性和多样化洞察力。
______________________________________________________________________
收益和活动工具
get_earnings_calendar
获取即将到来和最近的收益日期。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
______________________________________________________________________
get_earnings_history
获取历史收益数据(每股收益实际值与估计值)。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
退货: 收益历史、季度收益和年度收益数据。
______________________________________________________________________
get_analyst_estimates
获取分析师的收益和收入估算。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
退货: 收益估计、收入估计、每股收益趋势和增长估计。
______________________________________________________________________
get_upcoming_events
获取多只股票的近期活动。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tickers | list\[str\] | 必填 | 股票代码列表 |
退货: 收益日期、除息日期和其他即将发生的事件。
______________________________________________________________________
同行比较和行业分析
get_sector_performance
使用行业ETF获取主要市场部门的绩效指标。
无需参数。
退货: 技术(XLK)、医疗保健(XLV)、金融(XLF)和其他主要行业的业绩数据,包括年初至今回报率、月度回报率和52周范围。
______________________________________________________________________
get_industry_peers
寻找同行业的同行公司。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
limit | int | 10 | 要返回的最大对等体数 |
退货: 具有市值和市盈率的同行公司列表。
______________________________________________________________________
compare_to_peers
将股票的关键指标与同行进行比较。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 要比较的主要库存 |
peer_tickers | list\[str\] | 必填 | 同行股票代码列表 |
metrics | list\[str\] | \[“pe”、“pb”、“ps”、“利润率”、“增长”、“股息”\] | 要比较的指标 |
______________________________________________________________________
估价工具
get_valuation_ratios
获取全面的估值比率。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
退货: 价格倍数(P/E、P/B、P/S、PEG)、企业价值指标(EV/收入、EV/EBITDA)和盈利能力比率(ROE、ROA、利润率)。
______________________________________________________________________
get_dcf_inputs
获取DCF(贴现现金流)估值所需的输入。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
退货: 自由现金流历史、增长率、风险指标和建议的加权平均资本成本/终端增长率范围。
______________________________________________________________________
calculate_intrinsic_value
使用简化的DCF模型计算估计的内在价值。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
growth_rate | 浮动 | 0.10 | 预期年增长率(例如,0.10=10%) |
discount_rate | 浮动 | 0.10 | 贴现率/WACC |
terminal_growth | 浮动 | 0.025 | 终端增长率 |
退货: 预计自由现金流、现值计算、每股内在价值和买入/卖出建议。
______________________________________________________________________
货币和加密工具
get_exchange_rate
获取两种货币之间的汇率。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
from_currency | str | 必填 | 源货币(例如“USD”) |
to_currency | str | 必填 | 目标货币(例如“欧元”) |
退货: 当前汇率、每日变化、历史汇率(周/月前)和转换示例。
______________________________________________________________________
get_crypto_price
获取加密货币价格和信息。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
symbol | str | 必填 | 带有货币对的加密货币符号(例如,“BTC-USD”、“ETH-USD”) |
退货: 当前价格、当日OHLCV、月份统计数据和回报(日/周/月)。
______________________________________________________________________
get_crypto_comparison
比较多种加密货币。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
symbols | list\[str\] | 必填 | 加密符号列表(例如,\[“BTC-USD”,“ETH-USD”\]) |
退货: 价格、市值、年回报率和波动性的比较。
______________________________________________________________________
指数和ETF工具
get_major_indices
获取主要市场指数的当前值和表现。
无需参数。
退货: 标准普尔500指数、道琼斯指数、纳斯达克指数、罗素2000指数、波动率指数、10年期国债数据,包括当前值和每日变化。
______________________________________________________________________
get_etf_holdings
获取ETF信息和顶级持股。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
etf_ticker | str | 必填 | ETF股票代码(例如“SPY”、“QQQ”) |
退货: ETF名称、类别、总资产、费用比率和回报指标。
______________________________________________________________________
compare_to_benchmark
将股票的表现与基准进行比较。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 要比较的股票代码 |
benchmark | str | “SPY” | 基准股票代码 |
period | str | “1y” | 比较期 |
退货: 股票与基准回报率、波动率比较、贝塔系数、阿尔法系数和跑赢大盘分析。
______________________________________________________________________
警报和监视列表功能
check_price_targets
检查库存是否已达到指定的价格目标。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
watchlist | dict | required | ticker字典:target_price对,例如。, {"AAPL": 200, "GOOGL": 150} |
退货: 与目标距离相关的已触发和待处理警报。
______________________________________________________________________
get_52_week_alerts
获取接近52周高点或低点的股票警报。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tickers | list\[str\] | 必填 | 股票代码列表 |
threshold | float | 5 | 从高到低的百分比阈值 |
退货: 股票接近52周高点和低点,距离百分比。
______________________________________________________________________
get_unusual_volume
检测交易量异常的股票。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tickers | list\[str\] | 必填 | 股票代码列表 |
threshold | 浮动 | 2.0 | 体积比阈值(例如,2.0=2x平均值) |
退货: 成交量、成交量比率和价格变化异常的股票。
______________________________________________________________________
get_significant_movers
购买价格波动较大的股票。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tickers | list\[str\] | 必填 | 股票代码列表 |
threshold | float | 3.0 | 最小移动百分比 |
退货: 价格变动的最大赢家和输家。
______________________________________________________________________
历史分析工具
calculate_returns
计算不同时期的回报。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
periods | list\[str\] | \[“1d”、“5d”、“1mo”、“3mo”、”6mo“、”1y“、”ytd“\] | 要计算的周期 |
退货: 每个指定时间段的返回值。
______________________________________________________________________
get_volatility_analysis
获得全面的波动性分析。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
period | str | “1y” | 历史时期分析 |
退货: 日/年波动率、滚动波动率、ATR、价格区间、贝塔系数和波动率评级。
______________________________________________________________________
get_max_drawdown
计算股票的最大跌幅。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
ticker | str | 必填 | 股票代码 |
period | str | “1y” | 历史时期分析 |
退货: 最大提款百分比、峰值/低谷日期和值、恢复天数和当前提款。
______________________________________________________________________
compare_performance
比较多只股票的表现。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tickers | list\[str\] | 必填 | 股票代码列表 |
period | str | “1y” | 比较期 |
退货: 对每只股票的回报率、波动率、夏普比率和最大跌幅进行排名比较。
______________________________________________________________________
筛查工具
filter_stocks_by_price
按价格范围筛选股票。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tickers | list\[str\] | 必填 | 要筛选的股票代码列表 |
min_price | 浮动 | 0 | 最低价格 |
max_price | 浮动 | 无 | 最高价格(无=无限制) |
______________________________________________________________________
filter_stocks_by_market_cap
按市值类别筛选股票。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tickers | list\[str\] | 必填 | 股票代码列表 |
market_cap_category | str | 必填 | “大型”(>2000亿美元)、“大型” |
______________________________________________________________________
filter_stocks_by_pe_ratio
按市盈率范围过滤库存。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tickers | list\[str\] | 必填 | 股票代码列表 |
min_pe | 浮动 | 0 | 最小市盈率 |
max_pe | 浮动 | 无 | 最大市盈率 |
use_forward_pe | bool | False | 使用前向P/E而不是后向P/E |
______________________________________________________________________
filter_stocks_by_dividend_yield
按股息收益率类别筛选股票。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tickers | list\[str\] | 必填 | 股票代码列表 |
dividend_category | str | 必填 | “高收益”(>4%)、“中等收益”(2-4%)、”低收益”(0-2%)、“无股息”(0%) |
______________________________________________________________________
screen_stocks
使用多个标准筛选股票。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tickers | list\[str\] | 必填 | 股票代码列表 |
min_price | 浮动 | 无 | 最低价格 |
max_price | 浮动 | 无 | 最高价格 |
min_market_cap | 浮动 | 无 | 最低市值(单位:十亿) |
max_market_cap | 浮动 | 无 | 最大市值(单位:十亿) |
min_pe | 浮动 | 无 | 最小市盈率 |
max_pe | 浮动 | 无 | 最大市盈率 |
min_dividend_yield | 浮动 | 无 | 最低股息收益率(百分比) |
sector | str | 无 | 按扇区名称筛选 |
______________________________________________________________________
get_stocks_summary
快速比较多只股票的摘要。
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
tickers | list\[str\] | 必填 | 股票代码列表 |
退货: 每只股票的关键指标,包括价格、市值、市盈率、股息率、52周区间、移动平均线、贝塔系数、利润率和收入增长。
______________________________________________________________________
使用示例
MCP配置
添加到MCP客户端配置中:
{
"mcpServers": {
"yahoo-finance": {
"command": "python",
"args": ["path/to/server.py"],
"transport": "stdio"
}
}
}查询示例
获取苹果股票信息:
get_stock_info(ticker="AAPL")技术分析:
get_technical_summary(ticker="MSFT")投资组合分析:
calculate_portfolio_value(holdings={"AAPL": 50, "GOOGL": 20, "MSFT": 30})
get_portfolio_risk_metrics(holdings={"AAPL": 50, "GOOGL": 20, "MSFT": 30})价值型股票筛选:
screen_stocks(
tickers=["AAPL", "MSFT", "GOOGL", "META", "AMZN"],
max_pe=25,
min_dividend_yield=1
)______________________________________________________________________
许可证
MIT许可证
贡献
欢迎投稿!请随时提交拉取请求。
