Skip to main content
Glama
twolven

StockScreen MCP Server

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

Related MCP server: Yahoo Finance MCP for LLaMA 3.2 3B

安装

# Install dependencies
pip install -r requirements.txt

# Clone the repository
git clone https://github.com/twolven/mcp-stockscreen.git
cd mcp-stockscreen

用法

  1. 添加到您的 Claude 配置:在您的claude-desktop-config.json中,将以下内容添加到mcpServers部分:

{
    "mcpServers": {
        "stockscreen": {
            "command": "python",
            "args": ["path/to/stockscreen.py"]
        }
    }
}

将“path/to/stockscreen.py”替换为保存 stockscreen.py 文件的完整路径。

可用工具

可用工具

  1. 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 工具

  1. 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
}
  1. 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 工具。您可以使用以下三个主要功能:

  1. 使用多种标准类型筛选股票:

    • 技术面:价格、成交量、RSI、移动平均线、ATR

    • 基本面:市值、市盈率、股息、增长

    • 选项:IV、交易量、收益日期

    • 自定义:组合多种条件类型

  2. 管理关注列表:

    • 创建和更新符号列表

    • 删除现有的关注列表

    • 检索监视列表内容

  3. 访问已保存的筛选结果:

    • 加载上一屏结果

    • 审查匹配的符号和标准

所有功能包括错误处理、详细的市场数据和全面的响应。”

要求

  • Python 3.12+

  • MCP 服务器

  • yfinance

  • 熊猫

  • numpy

  • 异步

限制

  • 数据来源于雅虎财经,可能会有延迟

  • 基于 Yahoo Finance API 限制的速率限制

  • 期权数据的可用性取决于市场时间

  • 某些财务指标可能会延迟或不可用

贡献

欢迎贡献代码!欢迎提交 Pull 请求。

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。

作者

托德·沃尔文 - ( https://github.com/tolven )

致谢

  • 使用 Anthropic 的模型上下文协议 (MCP) 构建

  • 数据由雅虎财经提供

  • 专为与 Anthropic 的 Claude 配合使用而开发

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/twolven/mcp-stockscreen'

If you have feedback or need assistance with the MCP directory API, please join our Discord server