mcpField
I
Indian Stock Analysis MCP Server

Indian Stock Analysis MCP Server

ローカル
github.com/ingpoc金融データ885 週間前に更新

Indian Stock Analysis MCP Server について

Claude Desktop の利用者向けに、インド株の保有銘柄と市場データを分析する MCP サーバーです。MongoDB、Alpha Vantage、永続的なナレッジグラフを組み合わせ、大規模なポートフォリオは分割して分析します。

主な機能

  1. 01NSE/BSE銘柄の分析
  2. 02MongoDBへの直接アクセス
  3. 03Alpha Vantageの市場データ
  4. 04永続的なナレッジグラフ
  5. 05ポートフォリオの分割分析
  6. 06レスポンスサイズの管理

活用シーン

  1. 01保有銘柄とセクター構成の確認
  2. 02大規模ポートフォリオの分割分析
  3. 03インド株の指標や市場動向の確認

MCP 対応

Claude Desktop などの MCP クライアントに、MongoDB と Alpha Vantage のデータを使うインド株・ポートフォリオ分析ツールを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

インド株分析 MCP サーバー

インド株式市場(NSE/BSE)専用の、ポートフォリオの推奨事項や市場のインサイトを提供するために、MongoDB の株価データと連携する Model Context Protocol(MCP)サーバーです。

概要

この MCP サーバーは、次のものと連携します。

  1. 株価データに直接アクセスする MongoDB データベース(stock_data)
  2. インド市場のデータ(NSE/BSE のみ)を取得する Alpha Vantage API(無料プランには利用制限があります)
  3. インド株分析データを永続的に保存するナレッジグラフ

Claude が、Claude デスクトップアプリからインド株のポートフォリオ保有銘柄にアクセスして株価のパフォーマンスを分析し、個別の推奨事項を提供できるようにします。また、コンテキスト認識の向上に役立つ永続的なナレッジグラフを構築します。

特長

  • インド市場に特化:NSE および BSE 上場銘柄専用に設計されています
  • MongoDB への直接アクセス:API レイヤーを経由せず、MongoDB に直接クエリを実行します
  • ナレッジグラフとの連携:インド株の分析データを永続的に保持します
  • Alpha Vantage のレート制限:自動的にレート制限を行い、無料プランの API 利用制限に対応します
  • モジュール型アーキテクチャ:関心事を分離した、明確で保守しやすいコード構成です
  • 環境設定:簡単に設定できるよう、.env を使用します
  • LLM に最適化されたデータ:Claude が処理しやすいよう、データの応答を自動的に制限および簡略化します
  • 分割ポートフォリオ分析:タイムアウトを防ぐため、大規模なポートフォリオを小さなセグメントに分けて処理します

インストール

前提条件
セットアップ
  1. このリポジトリをクローンします。

    git clone <repository-url>
    cd stock-mcp-server
    
  2. 依存関係をインストールします。

    pip install -r requirements.txt
    
  3. サンプルから .env ファイルを作成します。

    cp .env.example .env
    
  4. .env ファイルを編集し、設定を行います。

    # MongoDB Configuration
    MONGODB_URI=mongodb://localhost:27017
    MONGODB_DB_NAME=stock_data
    
    # Alpha Vantage API
    ALPHA_VANTAGE_API_KEY=your_api_key_here
    
    # Indian Stock Market Settings
    ALPHA_VANTAGE_DEFAULT_EXCHANGE=NSE  # NSE or BSE
    

使用方法

MCP サーバーを起動する
python server.py
Claude デスクトップアプリを設定する

Claude デスクトップアプリは、MCP サーバーへの接続に設定ファイルを使用します。株価分析サーバーの設定を追加するため、このファイルを作成または編集する必要があります。

  1. 次の場所にある設定ファイルを作成または編集します。

    • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows:%APPDATA%\Claude\claude_desktop_config.json
  2. 株価分析 MCP サーバーの設定を追加します。

{
  "mcpServers": {
    "stock-analysis-mcp": {
      "command": "/path/to/your/python",
      "args": [
        "/path/to/stock_mcp_server/server.py"
      ],
      "cwd": "/path/to/stock_mcp_server",
      "env": {
        "ALPHA_VANTAGE_API_KEY": "your_api_key_here",
        "MONGODB_URI": "mongodb://localhost:27017",
        "MONGODB_DB_NAME": "stock_data",
        "MONGODB_HOLDINGS_COLLECTION": "holdings",
        "MONGODB_FINANCIALS_COLLECTION": "detailed_financials",
        "MONGODB_KNOWLEDGE_GRAPH_COLLECTION": "stock_knowledge_graph",
        "ALPHA_VANTAGE_BASE_URL": "https://www.alphavantage.co/query",
        "ALPHA_VANTAGE_RATE_LIMIT_MINUTE": "5",
        "ALPHA_VANTAGE_RATE_LIMIT_DAY": "500",
        "ALPHA_VANTAGE_DEFAULT_EXCHANGE": "NSE",
        "MCP_SERVER_NAME": "stock-analysis-mcp",
        "MCP_SERVER_VERSION": "0.1.0",
        "LOG_LEVEL": "INFO",
        "CACHE_ENABLED": "True",
        "CACHE_TTL": "3600"
      }
    }
  }
}

重要な注意事項:

  • Python 実行ファイルの絶対パスを指定してください(例:/usr/bin/python3 または C:\Python39\python.exe)
  • サーバーキー stock-analysis-mcp には、アンダースコアではなくハイフンを使用してください
  • env の MCP_SERVER_NAME はサーバーキーと一致させてください
  • すべてのパスが絶対パスであることを確認してください
  1. Claude デスクトップアプリを起動または再起動します

  2. サーバーへの接続を確認します。

    • Claude デスクトップアプリを開きます
    • インターフェースにツールアイコン(ハンマー)が表示されていることを確認します
    • 新しい会話を開始します(重要:新しいツールは既存の会話に表示されない場合があります)
    • 株式ポートフォリオについて質問してみます
プロンプトの例

設定が完了したら、Claude に次のように質問できます。

  • 「ポートフォリオの概要を教えてください」
  • 「ポートフォリオのセグメント 1 を分析してください」
  • 「segment_size=8 で、ポートフォリオの次のセグメントを分析してください」
  • 「詳細な指標を使って、ポートフォリオのセグメント 3 を分析してください」
  • 「ポートフォリオのセグメント 2 に含まれる銘柄は何ですか?」
  • 「ポートフォリオで最も比率の高いセクターはどれですか?」
  • 「インド株のポートフォリオについて、推奨事項を教えてください」
  • 「ポートフォリオに含まれる銀行株を分析してください」
  • 「今四半期、インド市場で注意すべき市場動向は何ですか?」
  • 「ポートフォリオの中で、売却を検討すべき銘柄はどれですか?」
  • 「現在のポートフォリオを補完する新しい NSE 銘柄はありますか?」
  • 「今週、BSE で最も好調な銘柄を探してください」
  • 「Reliance Industries の株式情報を調べてください」
  • 「TCS 株のテクニカル指標を教えてください」
  • 「インド市場で HDFC 関連の銘柄を検索してください」

トラブルシューティング

MCP ツールが表示されない

サーバーの起動に成功しているにもかかわらず、Claude にツールが表示されない場合:

  1. ログを確認する:

    tail -f ~/Library/Logs/Claude/mcp-server-stock-analysis-mcp.log
    
  2. サーバー名を確認する:

    • claude_desktop_config.json のサーバーキーで、ハイフン(stock-analysis-mcp)を使用していることを確認してください
    • MCP_SERVER_NAME 環境変数がこの名前と一致していることを確認してください
  3. 変更を加えた後、Claude で新しい会話を開始する

  4. Claude の設定で開発者モードを有効にする

  5. パスを確認する:設定内のすべてのパスが絶対パスで正しいことを確認してください

  6. Python のフルパス:Python 実行ファイルのフルパスを使用してください(例:which python を実行して確認します)

  7. Claude アプリのログを確認する:

    tail -f ~/Library/Logs/Claude/app.log
    
よくある問題
  1. Python が見つからない:設定内の Python のパスが正しいことを確認してください
  2. MongoDB の接続の問題:設定された URI で MongoDB が実行されていることを確認してください
  3. ツールスキーマの問題:すべてのツールに適切なスキーマ定義があることを確認してください
  4. Claude Desktop のバージョン:Claude Desktop を最新バージョンに更新してください
  5. サーバー名の不一致:コード内のサーバー名が設定ファイルと一致している必要があります
  6. 大規模なデータの応答:Claude が大規模なデータセットの処理に苦労する場合は、分割分析を使用してください:
    • まず get_portfolio_summary でポートフォリオの概要を取得します
    • 次に、セグメントパラメーターを使って portfolio_analysis で一度に1つのセグメントを分析します
    • 詳細な分析には、より小さなセグメントサイズ(3~5銘柄)を使用します
大規模なポートフォリオの処理

大規模なポートフォリオ(20銘柄以上)では、サーバーが分割方式を実装しています:

  1. ポートフォリオの概要を取得する:

    • get_portfolio_summary を使用して、ポートフォリオの概要を確認します
    • 銘柄数、セクター数、おすすめの分割方法が表示されます
  2. セグメントごとに分析する:

    • segment パラメーターを指定して portfolio_analysis を使用します
    • セグメント1から始めて、各セグメントを順に分析します
    • 例:「ポートフォリオのセグメント1を分析して」、続けて「セグメント2を分析して」など
  3. セグメントサイズを調整する:

    • デフォルトのセグメントサイズは5銘柄です
    • segment_size パラメーターを使って調整します(1セグメントあたり1~5銘柄)
    • 例:「詳細な分析のため、segment_size=3 でセグメント1を分析して」
  4. 詳細レベルを指定する:

    • 手早く概要を確認するには include_details=false を使用します(デフォルト)
    • 包括的な指標と分析情報を得るには include_details=true を使用します
    • 詳細な分析では、タイムアウトを防ぐためにセグメントサイズが自動的に縮小されます
  5. 応答サイズを管理する:

    • サーバーは応答サイズを自動的に監視し、必要に応じてデータを簡略化します
    • Claude が処理しきれなくなるのを防ぐため、テキストフィールドは切り詰められます
    • 財務指標は、重要な情報に絞るために圧縮されます
    • 応答が大きすぎる場合は、通知とともに自動的に簡略化されます
パフォーマンスの最適化

このサーバーには、Claude が株式データを効率的に処理できるようにするため、複数の最適化が含まれています。

  1. 適応型レスポンスサイズ調整:

    • 処理中のレスポンスサイズを自動的に監視します
    • レスポンスがサイズのしきい値を超えた場合、動的に簡略化します
    • テキストフィールドを最大 50~100 文字に切り詰めます
    • 重要でないデータフィールドを削除します
  2. 財務データの圧縮:

    • 財務データのレスポンスを自動的に圧縮します
    • 過去のデータを直近の 2 期間に制限します
    • メタデータと内部フィールドを削除します
    • 包括的なデータよりも重要な指標を優先します
  3. パラメーターの上限:

    • ポートフォリオ分析:銘柄は最大 15 件、セグメントあたり 5 件(詳細分析では 3 件)
    • 銘柄の推奨:推奨は最大 8 件
    • 削除分析:削除対象の分析は最大 10 銘柄
    • 市場トレンド:トレンド銘柄は最大 8 件
  4. インテリジェントなセグメント分け:

    • 分析の種類に応じてセグメントサイズを自動調整します
    • タイムアウトを防ぐため、詳細分析ではセグメントを小さくします
    • 分析中の進行状況を追跡して、ボトルネックを特定します
  5. レスポンスサイズの管理:

    • 処理中のレスポンスサイズをリアルタイムで監視します
    • レスポンスがサイズのしきい値を超えた場合、自動的に簡略化します
    • レスポンスが大きくなりすぎる場合は、緊急時に最小限のデータに切り替えます
    • トラブルシューティング用にレスポンスサイズを詳細に記録します
  6. インテリジェントな内部処理:

    • 分析関数は内部で完全なデータを使用しながら、簡略化した結果を提示します
    • 市場トレンドの推奨では、すでにポートフォリオに含まれる銘柄を除外します
    • 財務データの圧縮では、重要な指標を保持しながらサイズを削減します

これらの最適化により、Claude は過剰な情報に圧倒されたり、タイムアウトが発生したりすることなく、株式データを効率的に処理できます。

テスト

このリポジトリには、MCP サーバーの機能を検証するための包括的なテストスイートが含まれています。

利用可能なテスト
  • test_mcp_server.py:MCP サーバーのすべてのエンドポイントとツールを検証する包括的なテストスクリプトです。
  • test_client.py:MCP サーバーのエンドポイントをテストするためのシンプルなクライアントです。
  • test_server_startup.sh:サーバーの起動プロセスをテストするスクリプトです
テストの実行
クイック起動テスト

サーバーが正常に起動できることを確認するには、次を実行します。

./test_server_startup.sh
包括的なテストスクリプト

包括的なテストスクリプトを実行するには、次を実行します。

python test_mcp_server.py

これにより、以下を含むサーバーのあらゆる側面がテストされます。

  • MongoDB への接続
  • データベース操作(ポートフォリオの保有銘柄、ナレッジグラフ)
  • インドの銘柄シンボルの書式設定
  • Alpha Vantage API との連携
  • トレンド銘柄の機能
  • MCP ツールハンドラー
Alpha Vantage API テストのスキップ

Alpha Vantage への実際の API 呼び出しを行うテストをスキップする場合(レート制限を避けるため)、次を実行します。

python test_mcp_server.py --skip-alpha-vantage
テスト結果

スクリプトは、コンソールと test_mcp_server.log ファイルの両方に詳細なログを出力します。最後に、テスト結果の概要が表示されます。

=== Test Results Summary ===
database_connection: ✅ PASSED
portfolio_holdings: ✅ PASSED
knowledge_graph: ✅ PASSED
symbol_formatting: ✅ PASSED
alpha_vantage_api: ✅ PASSED
trending_stocks: ✅ PASSED
tools_handler: ✅ PASSED

Overall: 7/7 tests passed
テストのトラブルシューティング

テストが失敗した場合は、以下を確認してください。

  1. データベース接続:MongoDB が設定済みの URI(デフォルト:mongodb://localhost:27017)で稼働しており、stock_data データベースが存在することを確認してください。

  2. Alpha Vantage API:API キーが .env ファイルに設定されており、レート制限を超過していないことを確認してください。

  3. データの有無:一部のテストでは、MongoDB のコレクションに既存のデータ(例:ポートフォリオの保有銘柄)が必要です。データベースに必要なデータがあることを確認してください。

  4. ネットワークの問題:Alpha Vantage のテストにはインターネット接続が必要です。

終了コード
  • 0:すべてのテストに合格
  • 1:1 つ以上のテストに失敗

これにより、ゼロ以外の終了コードをチェックする継続的インテグレーションのパイプラインにテストを組み込めます。

インド株式市場に関する注意事項

インド株式市場を扱う際は、以下の点に注意してください。

  • NSE のシンボルは NSE:SYMBOL の形式です(例:NSE:RELIANCE)
  • BSE のシンボルは BSE:CODE の形式です(例:BSE:500325)
  • 取引所が指定されていない場合、デフォルトは NSE です
  • Alpha Vantage の無料プランでは、1 分あたり 5 回、1 日あたり 500 回までの呼び出しに制限されています
  • このサーバーはインド株専用に設計されており、他の市場に関するリクエストは処理しません

アーキテクチャ

このプロジェクトは、保守性の向上と関心事の分離のため、モジュール型アーキテクチャを採用しています。

├── server.py           # Main entry point
├── src/                # Source code
│   ├── __init__.py     # Package initialization
│   ├── config.py       # Configuration module
│   ├── handlers/       # MCP handler implementations
│   │   ├── __init__.py
│   │   ├── resources.py  # Resource handlers
│   │   ├── tools.py      # Tool handlers for Indian stock analysis
│   │   └── prompts.py    # Prompt handlers
│   └── utils/          # Utility modules
│       ├── __init__.py
│       ├── database.py   # MongoDB operations
│       └── alpha_vantage.py  # Alpha Vantage API operations for Indian market
├── test_mcp_server.py  # Comprehensive test script
├── test_client.py      # Simple test client
├── requirements.txt    # Dependencies
└── .env.example        # Example environment configuration

ツール

サーバーは、カテゴリ別に整理された以下の MCP ツールを提供します。

ポートフォリオ分析
  • ポートフォリオの保有銘柄を取得:インド株ポートフォリオの現在の保有銘柄と基本情報を取得します
    • パラメーター:
      • limit:取得する保有銘柄の最大数(デフォルト:10、最大:50)
      • summary:簡略化した株式データを返します(デフォルト:true)
  • ポートフォリオの概要を取得:ポートフォリオの全体像を把握します
    • 返される情報:
      • 株式の合計数
      • セクター別内訳
      • セグメント分けのガイド
      • 分析の推奨事項
  • ポートフォリオを分析:指標と推奨事項を用いてポートフォリオの保有銘柄を分析します
    • パラメーター:
      • limit:分析する株式の最大数(デフォルト:10、最大:15)
      • include_details:包括的な指標を含めます(デフォルト:false)
      • segment:分析する株式のセグメント(デフォルト:1)
      • segment_size:セグメントあたりの株式数(デフォルト:5、最大:5)
    • 注意事項:
      • 詳細な分析では、セグメントのサイズは自動的に 3 に縮小されます
      • レスポンスのサイズは監視され、必要に応じて簡略化されます
      • テキストフィールドは最大 50 文字に切り詰められます
株式の推奨
  • 株式の推奨を取得:財務指標に基づき、追加候補となるインド株の推奨を取得します

    • パラメーター:
      • criteria:取得する推奨の種類(例:「成長」「バリュー」「配当」)(デフォルト:"growth")
      • limit:取得する推奨銘柄の最大数(デフォルト:5、最大:8)
    • 注意事項:
      • テキストフィールドの切り詰めにより、Claude 向けにレスポンスが最適化されます
      • すでにポートフォリオに含まれている株式は、推奨対象から除外されます
      • レスポンスのサイズは監視され、必要に応じて簡略化されます
  • 売却推奨を取得:ポートフォリオから除外すべきインド株を特定します

    • パラメーター:
      • limit:分析する株式の最大数(デフォルト:5、最大:10)
    • 注意事項:
      • ポートフォリオの保有銘柄を自動的に分析し、売却候補を特定します
      • 利益の減少、弱気トレンド、または低いファンダメンタルスコアを示す株式を特定します
      • レスポンスのサイズは監視され、必要に応じて簡略化されます
市場トレンド
  • 市場トレンドに基づく推奨を取得:現在の市場トレンドに基づき、購入必須のインド株を見つけます
    • パラメーター:
      • limit:取得する推奨銘柄の最大数(デフォルト:5、最大:8)
    • 注意事項:
      • すでにポートフォリオに含まれている株式は自動的に除外されます
      • 強いモメンタムと良好なテクニカル指標を持つ株式に焦点を当てます
      • レスポンスのサイズは監視され、必要に応じて簡略化されます
ナレッジグラフ
  • ナレッジグラフをクエリ:インド株式のナレッジグラフをクエリし、過去の分析や洞察を取得します
市場データ
  • Alpha Vantage データを取得:無料プランの制限内で、インド株式市場に関する Alpha Vantage API データにアクセスします
  • 株式シンボルを検索:名前またはキーワードでインド株のシンボルを検索します
テクニカル分析
  • テクニカル分析を取得:インド株のテクニカル指標(SMA、RSI)を取得します

    • パラメーター:
      • symbol:分析対象の株式シンボル(例:「NSE:RELIANCE」)
    • 注意事項:
      • このツールでは、Alpha Vantage への API 呼び出しが複数回必要です
      • 短時間に複数の分析リクエストを行うと、レート制限に達する場合があります
  • 最適化されたテクニカル分析を取得:レート制限を回避するスマートなテクニカル分析です

    • パラメーター:
      • symbol:分析対象の株式シンボル(例:「NSE:RELIANCE」)
      • indicators:分析する指標のカンマ区切りリスト(例:「SMA,RSI」)
    • 注意事項:
      • API 呼び出しが可能かどうかを確認する事前チェックを実行します
      • リクエストされた指標に必要な API 呼び出しのみを行います
      • レート制限に達した場合は、学習用コンテンツを提供します
      • 1 分あたり 5 回の呼び出し制限をより効率的に利用できます
API 管理
  • Alpha Vantage API の状態を取得:API 呼び出しとレート制限の現在の状態を確認します
    • 注意事項:
      • 現在の 1 分間の枠内で残っている API 呼び出し回数を表示します
      • 最近の API 呼び出し履歴を表示します
      • 呼び出しを行うタイミングに関する推奨事項を提示します
      • Claude が 1 分あたり 5 回の呼び出し制限を効率的に管理できるよう支援します

ナレッジグラフ

サーバーは、以下を保存するナレッジグラフを MongoDB(コレクション:stock_knowledge_graph)で管理します。

  • インド株の過去の分析
  • NSE および BSE 上場企業のパフォーマンス指標とトレンド
  • ポートフォリオへの追加・除外に関する推奨事項
  • テクニカルおよびファンダメンタル分析の知見
  • インド市場固有のトレンドとパターン

これにより、Claude はお客様のインド株ポートフォリオや関心のある銘柄に関する情報を継続的に保持できます。

Claude 向けのデータ最適化

このサーバーでは、Claude がデータを利用しやすくするために、複数の最適化戦略を実装しています。

  1. データの自動制限:

    • クエリ結果にデフォルトの上限を設け、Claude に過剰な情報を提示しないようにします
    • ポートフォリオの保有銘柄数はデフォルトで 10 銘柄に制限されます(最大 50 銘柄まで設定可能)
    • 推奨銘柄数はデフォルトで 5 銘柄に制限されます
    • ポートフォリオ分析は最大 15 銘柄に制限され、セグメントあたり 5 銘柄を処理します
  2. データの簡素化:

    • ポートフォリオの保有銘柄情報を必要なフィールドのみ(銘柄シンボル、数量、平均価格)に簡素化します
    • 分析に必要な場合は詳細情報を利用できますが、直接表示からは除外されます
    • 財務データを自動的に圧縮し、重要な指標に絞ります
    • Claude に過剰な情報を提示しないよう、テキストフィールドを短縮します
  3. パラメーター制御:

    • 必要に応じてデータ量を調整できるパラメーターをツールで公開します
    • 概要表示と詳細表示を切り替えられます
    • セグメントのサイズや分析対象のセグメントを指定できます
  4. セグメント化処理:

    • 大きなレスポンスを防ぐため、ポートフォリオ分析をセグメントに分けて実行できます
    • 各セグメントでは銘柄の一部を処理します(デフォルト:セグメントあたり 5 銘柄)
    • 接続タイムアウトに達することなく、Claude が大規模なポートフォリオを分析できます
    • 分析の種類に応じて、セグメントのサイズを自動調整します
  5. レスポンスサイズの管理:

    • 処理中にレスポンスサイズをリアルタイムで監視します
    • レスポンスがサイズのしきい値を超えると、自動的に簡素化します
    • レスポンスが大きくなりすぎる場合は、緊急時のフォールバックとして最小限のデータを使用します
    • トラブルシューティング用にレスポンスサイズを詳細に記録します
  6. インテリジェントな内部処理:

    • 分析関数では完全なデータを内部で使用しつつ、簡素化した結果を提示します
    • 市場トレンドに関する推奨から、すでにポートフォリオに含まれている銘柄を除外します
    • 財務データの圧縮では、重要な指標を保持しながらサイズを削減します

これらの最適化により、Claude は過剰な情報に圧倒されたりタイムアウトが発生したりすることなく、お客様の株式データを効率的に処理できます。

Alpha Vantage 無料枠のサポート

このサーバーは、次の内容を含む Alpha Vantage の無料枠 API に最適化されています。

  • 1 分あたり 5 回の API 呼び出しに制限
  • 1 日あたり 500 回の API 呼び出し上限
  • 主なエンドポイントをサポート:
    • GLOBAL_QUOTE - 現在の価格情報
    • TIME_SERIES_DAILY - 日次の価格履歴
    • OVERVIEW - 企業情報
    • SYMBOL_SEARCH - インド株のシンボル検索
    • 基本的なテクニカル指標(SMA、RSI)

サーバーには、これらの上限を超えないように自動レート制限が実装されています。

設定

サーバーでは、以下の環境変数を使用します(.env で定義されています)。

MongoDB の設定
  • MONGODB_URI:MongoDB 接続文字列(デフォルト:mongodb://localhost:27017)
  • MONGODB_DB_NAME:データベース名(デフォルト:stock_data)
  • MONGODB_HOLDINGS_COLLECTION:保有株式コレクション名(デフォルト:holdings)
  • MONGODB_FINANCIALS_COLLECTION:財務情報コレクション名(デフォルト:detailed_financials)
  • MONGODB_KNOWLEDGE_GRAPH_COLLECTION:ナレッジグラフコレクション名(デフォルト:stock_knowledge_graph)
Alpha Vantage API
  • ALPHA_VANTAGE_API_KEY:お使いの Alpha Vantage API キー
  • ALPHA_VANTAGE_BASE_URL:Alpha Vantage API の URL(デフォルト:https://www.alphavantage.co/query)
  • ALPHA_VANTAGE_RATE_LIMIT_MINUTE:1 分あたりに許可する API 呼び出し回数(デフォルト:5)
  • ALPHA_VANTAGE_RATE_LIMIT_DAY:1 日あたりに許可する API 呼び出し回数(デフォルト:500)
  • ALPHA_VANTAGE_DEFAULT_EXCHANGE:インド株のデフォルト取引所(デフォルト:NSE)
MCP サーバーの設定
  • MCP_SERVER_NAME:サーバー名(デフォルト:stock-analysis-mcp)
  • MCP_SERVER_VERSION:サーバーのバージョン(デフォルト:0.1.0)
ロギングの設定
  • LOG_LEVEL:ログレベル(デフォルト:INFO)
  • LOG_FORMAT:ログメッセージの形式
キャッシュの設定
  • CACHE_ENABLED:キャッシュを有効にするかどうか(デフォルト:True)
  • CACHE_TTL:キャッシュの有効期間(秒)(デフォルト:3600)

ライセンス

MIT ライセンス

Alpha Vantage API の管理

このサーバーには、無料枠の上限を超えないように Alpha Vantage API の呼び出しを高度に管理する機能が含まれています。

レート制限の追跡
  • 1 分間の各ウィンドウで行われた API 呼び出しの合計数を管理します
  • Alpha Vantage からのレート制限応答を自動的に検出して処理します
  • get_alpha_vantage_status ツールを通じてステータス情報を提供します
スマートな呼び出し管理
  • 事前チェック:API 呼び出しの前に、ツールはレート制限を超えるかどうかを確認します
  • コストを考慮した処理:API 関数ごとに「コスト」を割り当て、その影響を追跡します
  • 段階的な機能縮退:レート制限に達した場合、ツールは静的データや教育コンテンツを提供します
  • 対象を絞った呼び出し:テクニカル分析では、特定の指標のみを取得するように設定できます
フォールバックの仕組み
  • レート制限に達した場合、システムは代替コンテンツを提供します。
    • 人気銘柄の静的な市場データ
    • テクニカル指標に関する教育コンテンツ
    • 利用可能な場合は過去のデータ
    • 再試行のタイミングを明確に示すメッセージ
使用例

Claude が API を効率的に使用する方法は次のとおりです。

  1. まず API のステータスを確認する:

    • 「続行する前に Alpha Vantage API のステータスを確認します」
    • これにより、5 回の呼び出し上限内で行う呼び出しを計画できます
  2. 最適化されたツールを使用する:

    • 「SMA 指標だけを取得するために、最適化されたテクニカル分析を使用します」
    • これにより、要求された情報に必要な API 呼び出しだけを行います
  3. 類似のリクエストをまとめる:

    • 「まず株式シンボルをすべて集めてから、まとめて問い合わせます」
    • これにより、重複した不要な API 呼び出しを避けられます
  4. 適切な場合は静的データを使用する:

    • 「レート制限中なので、ひとまず静的なトレンドデータを使用します」
    • これにより、API の上限に達した場合でも有用な情報を提供できます

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。