Skip to main content
Glama
twolven

StockScreen MCP Server

StockScreen MCP サーバー

Yahoo!ファイナンスを通じて包括的な株式スクリーニング機能を提供するモデルコンテキストプロトコル(MCP)サーバー。LLMがテクニカル、ファンダメンタル、オプションの基準に基づいて株式をスクリーニングできるようにし、ウォッチリストの管理と結果の保存をサポートします。

特徴

株式スクリーニング

  • テクニカル分析スクリーニング

    • 価格と数量フィルター

    • 移動平均線(20、50、200 SMA)

    • RSI指標

    • 平均真の範囲(ATR)

    • トレンド分析(1日、5日、20日の変化)

    • MA距離計算

  • 基礎スクリーニング

    • 時価総額フィルター

    • P/E比率分析

    • 配当利回り基準

    • 収益成長指標

    • ETF固有の指標(運用資産残高、経費率)

  • オプションスクリーニング

    • インプライドボラティリティ(IV)フィルター

    • オプション取引量と建玉

    • プット/コール比率分析

    • ビッド・アスク・スプレッド評価

    • 決算日の近接性チェック

データ管理

  • ウォッチリストの作成と管理

  • スクリーニング結果の保存

  • デフォルトのシンボルカテゴリ

    • メガキャップ(2,000億ドル以上)

    • 大型株(100億ドル~2,000億ドル)

    • ミッドキャップ(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 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億ドル

  • 「大型株」: 100億ドル~2,000億ドル

  • 「ミッドキャップ」: 20億ドル~100億ドル

  • 「small_cap」: 3億ドル~20億ドル

  • 「マイクロキャップ」: <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
}

クロードの使用プロンプト

株式スクリーニング機能を提供するストックスクリーンツールを有効にしました。主に3つの機能をご利用いただけます。

  1. さまざまな基準タイプで株式をスクリーニングします。

    • テクニカル指標: 価格、出来高、RSI、移動平均、ATR

    • ファンダメンタルズ:時価総額、PER、配当、成長

    • オプション: IV、出来高、決算日

    • カスタム: 複数の条件タイプを組み合わせる

  2. ウォッチリストを管理する:

    • シンボルリストの作成と更新

    • 既存のウォッチリストを削除する

    • ウォッチリストの内容を取得する

  3. 保存されたスクリーニング結果にアクセスします。

    • 前の画面の結果を読み込む

    • 一致したシンボルと基準を確認する

すべての機能には、エラー処理、詳細な市場データ、包括的な対応が含まれます。

要件

  • Python 3.12以上

  • MCPサーバー

  • yファイナンス

  • パンダ

  • ナンピー

  • 非同期

制限事項

  • データはYahoo Financeから取得しており、遅延の可能性があります

  • Yahoo Finance API 制限に基づくレート制限

  • オプションデータの利用可能時間は市場時間によって異なります

  • 一部の財務指標は遅延または利用できない場合があります

貢献

貢献を歓迎します!お気軽にプルリクエストを送信してください。

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

著者

トッド・ウルブン - ( https://github.com/twolven )

謝辞

  • Anthropicのモデルコンテキストプロトコル(MCP)を使用して構築

  • データはYahoo Financeより提供

  • アントロピックのクロードとの使用のために開発されました

-
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