StockScreen MCP 服务器
模型上下文协议 (MCP) 服务器通过雅虎财经提供全面的股票筛选功能。它使 LLM 能够根据技术、基本面和期权标准筛选股票,并支持关注列表管理和结果存储。
特征
股票筛选
- 技术分析筛选
- 价格和数量过滤器
- 移动平均线(20、50、200 SMA)
- RSI 指标
- 平均真实波动幅度 (ATR)
- 趋势分析(1天、5天、20天变化)
- MA 距离计算
- 基础筛查
- 市值过滤器
- 市盈率分析
- 股息收益率标准
- 收入增长指标
- ETF 特定指标(资产管理规模、费用率)
- 选项筛选
- 隐含波动率(IV)过滤器
- 期权交易量和未平仓合约
- 看跌/看涨比率分析
- 买卖价差评估
- 收益日期临近检查
数据管理
- 监视列表创建和管理
- 筛选结果存储
- 默认符号类别
- 超大市值(>2000亿美元)
- 大盘股(100亿美元-2000亿美元)
- 中型股(20亿美元-100亿美元)
- 小型股(3亿至20亿美元)
- 微型股(<3亿美元)
- ETF
安装
# Install dependencies
pip install -r requirements.txt
# Clone the repository
git clone https://github.com/twolven/mcp-stockscreen.git
cd mcp-stockscreen
用法
- 添加到您的 Claude 配置:在您的
claude-desktop-config.json
中,将以下内容添加到mcpServers
部分:
{
"mcpServers": {
"stockscreen": {
"command": "python",
"args": ["path/to/stockscreen.py"]
}
}
}
将“path/to/stockscreen.py”替换为保存 stockscreen.py 文件的完整路径。
可用工具
可用工具
run_stock_screen
技术筛选标准
{
"screen_type": "technical",
"criteria": {
"min_price": float, # Minimum stock price
"max_price": float, # Maximum stock price
"min_volume": int, # Minimum average volume
"above_sma_200": bool, # Price above 200-day SMA
"above_sma_50": bool, # Price above 50-day SMA
"min_rsi": float, # Minimum RSI value
"max_rsi": float, # Maximum RSI value
"max_atr_pct": float, # Maximum ATR as percentage of price
"category": str # Optional: market cap category filter
},
"watchlist": str, # Optional: name of watchlist to screen
"save_result": str # Optional: name to save results
}
基本筛选标准
{
"screen_type": "fundamental",
"criteria": {
"min_market_cap": float, # Minimum market capitalization
"min_pe": float, # Minimum P/E ratio
"max_pe": float, # Maximum P/E ratio
"min_dividend": float, # Minimum dividend yield (%)
"min_revenue_growth": float, # Minimum revenue growth rate
"category": str, # Optional: market cap category filter
# ETF-specific criteria
"min_aum": float, # Minimum assets under management
"max_expense_ratio": float, # Maximum expense ratio
"min_volume": float # Minimum trading volume
},
"watchlist": str, # Optional: name of watchlist to screen
"save_result": str # Optional: name to save results
}
选项筛选标准
{
"screen_type": "options",
"criteria": {
"min_iv": float, # Minimum implied volatility (%)
"max_iv": float, # Maximum implied volatility (%)
"min_option_volume": int, # Minimum options volume
"min_put_call_ratio": float, # Minimum put/call ratio
"max_spread": float, # Maximum bid-ask spread (%)
"min_days_to_earnings": int, # Minimum days until earnings
"max_days_to_earnings": int, # Maximum days until earnings
"category": str # Optional: market cap category filter
},
"watchlist": str, # Optional: name of watchlist to screen
"save_result": str # Optional: name to save results
}
新闻筛选标准
{
"screen_type": "news",
"criteria": {
"keywords": List[str], # Keywords to search for in news
"exclude_keywords": List[str], # Keywords to exclude from results
"min_days": int, # Minimum days back to search
"max_days": int, # Maximum days back to search
"management_changes": bool, # Filter for management changes
"require_all_keywords": bool, # Require all keywords to match
"category": str # Optional: market cap category filter
},
"watchlist": str, # Optional: name of watchlist to screen
"save_result": str # Optional: name to save results
}
自定义筛选标准
{
"screen_type": "custom",
"criteria": {
"category": str, # Optional: market cap category filter
"technical": {
# Any technical criteria from above
},
"fundamental": {
# Any fundamental criteria from above
},
"options": {
# Any options criteria from above
},
"news": {
# Any news criteria from above
}
},
"watchlist": str, # Optional: name of watchlist to screen
"save_result": str # Optional: name to save results
}
类别值
可供筛选的市值类别:
- “mega_cap”:>2000亿美元
- “large_cap”:100亿美元-2000亿美元
- “中盘股”:20亿美元至100亿美元
- “small_cap”:3亿至20亿美元
- “micro_cap”:<3亿美元
- “etf”:ETF 工具
manage_watchlist
{
"action": str, # Required: "create", "update", "delete", "get"
"name": str, # Required: watchlist name (1-50 chars, alphanumeric with _ -)
"symbols": List[str] # Required for create/update: list of stock symbols
}
get_screening_result
{
"name": str # Required: name of saved screening result
}
响应格式
技术屏幕响应
{
"screen_type": "technical",
"criteria": dict, # Original criteria used
"matches": int, # Number of matching stocks
"results": [ # List of matching stocks
{
"symbol": str,
"price": float,
"volume": float,
"rsi": float,
"sma_20": float,
"sma_50": float,
"sma_200": float,
"atr": float,
"atr_pct": float,
"price_changes": {
"1d": float, # 1-day price change %
"5d": float, # 5-day price change %
"20d": float # 20-day price change %
},
"ma_distances": {
"pct_from_20sma": float,
"pct_from_50sma": float,
"pct_from_200sma": float
}
}
],
"rejected": [ # List of stocks that didn't match
{
"symbol": str,
"rejection_reasons": List[str]
}
],
"timestamp": str
}
克劳德的使用提示
我已启用提供股票筛选功能的 stockscreen 工具。您可以使用以下三个主要功能:
- 使用多种标准类型筛选股票:
- 技术面:价格、成交量、RSI、移动平均线、ATR
- 基本面:市值、市盈率、股息、增长
- 选项:IV、交易量、收益日期
- 自定义:组合多种条件类型
- 管理关注列表:
- 创建和更新符号列表
- 删除现有的关注列表
- 检索监视列表内容
- 访问已保存的筛选结果:
所有功能包括错误处理、详细的市场数据和全面的响应。”
要求
- Python 3.12+
- MCP 服务器
- yfinance
- 熊猫
- numpy
- 异步
限制
- 数据来源于雅虎财经,可能会有延迟
- 基于 Yahoo Finance API 限制的速率限制
- 期权数据的可用性取决于市场时间
- 某些财务指标可能会延迟或不可用
贡献
欢迎贡献代码!欢迎提交 Pull 请求。
执照
该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。
作者
托德·沃尔文 - ( https://github.com/tolven )
致谢
- 使用 Anthropic 的模型上下文协议 (MCP) 构建
- 数据由雅虎财经提供
- 专为与 Anthropic 的 Claude 配合使用而开发