mcpField
M
MCP Order Flow Server

MCP Order Flow Server

ローカル
github.com/fintools-ai金融データ271 週間前に更新

MCP Order Flow Server について

MCP Order Flow Serverは、市場のマイクロストラクチャーデータを使うアルゴリズム取引向けに、リアルタイムのオーダーフロー分析を提供します。gRPCで市場データを取得し、パターン、主要価格水準、売買の勢いを分析します。

主な機能

  1. 01リアルタイムのオーダーフロー分析
  2. 02gRPCによる市場データ取得
  3. 03吸収、積み上げ、スイープの検出
  4. 04サポート・レジスタンス水準の算出
  5. 05売買動向と数量加速の指標

活用シーン

  1. 01株式やETFのティッカー別オーダーフロー分析
  2. 02短い時間幅での市場パターン確認
  3. 03アルゴリズム取引向けのサポート・レジスタンス取得

MCP 対応

MCPサーバーはオーダーフロー分析ツールを公開し、ティッカー、履歴時間幅、パターン検出の有無を指定できます。

設定

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

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

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

リポジトリ

ツール

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

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

詳細

MCP Order Flow Server

アルゴリズム取引アプリケーション向けに、リアルタイムのオーダーフロー分析を提供する高性能な Model Context Protocol(MCP)サーバーです。このサーバーは gRPC を介して市場データブローカーに接続し、機関投資家水準のマーケットマイクロストラクチャ分析情報を提供します。

Python 3.10+ gRPC MCP

機能

  • リアルタイムのオーダーフロー分析:ライブのマーケットマイクロストラクチャデータ処理
  • 高性能な gRPC 統合:サブミリ秒の遅延でデータを取得
  • 機関投資家のパターン検出:吸収、積み上げ、スイープのパターン
  • サポート/レジスタンス水準:アルゴリズムによって導出される主要な価格水準
  • 市場モメンタム指標:買い気配/売り気配の動向と数量の加速
  • MCP プロトコル準拠:AI エージェントや LLM とシームレスに統合

クイックスタート

前提条件
  • Python 3.10 以降
  • 互換性のある市場データブローカー(gRPC エンドポイント)
  • マーケットマイクロストラクチャの概念に関する基本的な知識
インストール
  1. リポジトリをクローンします:

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

    pip install -r requirements.txt
    
  3. protobuf ファイルを生成します(gRPC データソースを使用する場合):

    ./generate_proto.sh
    
  4. 環境を設定します(任意):

    export DATA_BROKER_GRPC_URL=localhost:9090
    export LOG_LEVEL=INFO
    
  5. サーバーを起動します:

    python src/mcp_server.py
    

使用方法

MCP ツール:analyze_order_flow_tool

このサーバーは、オーダーフロー分析用の MCP ツールを 1 つ公開します。

パラメーター
パラメーター型デフォルト説明
tickerstring必須株式/ETF のティッカーシンボル(例:"SPY"、"QQQ")
historystring"5mins"分析対象の時間枠(例:"30s"、"10mins"、"1h")
include_patternsbooleantrue応答にパターン検出結果を含めるかどうか
リクエスト例
{
  "method": "tools/call",
  "params": {
    "name": "analyze_order_flow_tool",
    "arguments": {
      "ticker": "SPY",
      "history": "5mins",
      "include_patterns": true
    }
  }
}
応答例
<order_flow_data ticker="SPY" timestamp="2024-01-15T10:30:00" current_price="485.24">
    <data_summary>
        <quote_count>1847</quote_count>
        <history_window>300s</history_window>
        <pattern_count>3</pattern_count>
    </data_summary>
    
    <current_quote>
        <bid_price>485.230</bid_price>
        <ask_price>485.250</ask_price>
        <bid_size>1800</bid_size>
        <ask_size>1200</ask_size>
        <spread>0.020</spread>
    </current_quote>
    
    <metrics window="10s">
        <momentum>
            <bid_movement>0.050</bid_movement>
            <ask_movement>0.045</ask_movement>
            <bid_lifts>3</bid_lifts>
            <ask_lifts>2</ask_lifts>
        </momentum>
        <size_dynamics>
            <avg_bid_size>1650</avg_bid_size>
            <avg_ask_size>1250</avg_ask_size>
            <large_bids>1</large_bids>
            <large_asks>0</large_asks>
        </size_dynamics>
        <behaviors>
            <bid_stacking>YES</bid_stacking>
            <momentum_building>YES</momentum_building>
        </behaviors>
    </metrics>
    
    <significant_levels>
        <bid_levels>
            <level price="485.20" appearances="15" total_size="45000" />
            <level price="485.15" appearances="12" total_size="38000" />
        </bid_levels>
        <ask_levels>
            <level price="485.30" appearances="12" total_size="38000" />
            <level price="485.35" appearances="9" total_size="28000" />
        </ask_levels>
    </significant_levels>
    
    <detected_patterns>
        <pattern type="absorption">
            <subtype>bullish</subtype>
            <strength>strong</strength>
            <description>Strong bid absorption at 485.20</description>
        </pattern>
    </detected_patterns>
</order_flow_data>

設定

環境変数
# Data source configuration
DATA_SOURCE=grpc                    # Use 'grpc' (recommended) or 'redis'
DATA_BROKER_GRPC_URL=localhost:9090 # gRPC endpoint for market data

# Redis fallback (if DATA_SOURCE=redis)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0

# Logging
LOG_LEVEL=INFO                      # DEBUG, INFO, WARNING, ERROR
データソース
ソースレイテンシスループット用途
gRPC0.1-0.5ms2000+ req/s本番環境(推奨)
Redis0.5-2ms500+ req/s開発/フォールバック

アーキテクチャ

┌─────────────────┐    ┌──────────────────┐    ┌───────────────────┐
│   MCP Client    │───▶│  MCP Server      │───▶│  Market Data      │
│  (AI Agent)     │    │  (This Repo)     │    │  Broker (gRPC)    │
└─────────────────┘    └──────────────────┘    └───────────────────┘
                              │
                              ▼
                       ┌──────────────────┐
                       │  Order Flow      │
                       │  Analysis Engine │
                       └──────────────────┘
主なコンポーネント
  • MCP サーバー:ツールリクエストを処理する FastMCP ベースのサーバー
  • gRPC クライアント:市場データブローカーから高性能にデータを取得
  • 状態マネージャー:XML 応答のフォーマットとデータ集約
  • パターン検出器:機関投資家のパターンをリアルタイムで認識

開発

プロジェクト構成
mcp-order-flow-server/
├── src/
│   ├── mcp_server.py           # Main MCP server entry point
│   ├── config.py               # Configuration management
│   ├── proto/                  # Generated protobuf files
│   ├── storage/
│   │   ├── grpc_client.py     # gRPC data client
│   │   └── redis_client.py    # Redis fallback client
│   ├── formatters/
│   │   └── state_manager.py   # XML response formatting
│   └── tools/
│       └── order_flow_tool.py # MCP tool implementation
├── generate_proto.sh           # Protobuf generation script
├── test_tool.py               # Development testing
└── requirements.txt           # Python dependencies
テスト
# Run development tests
python test_tool.py

# Test specific ticker
python -c "
import asyncio
from src.tools.order_flow_tool import analyze_order_flow
result = asyncio.run(analyze_order_flow('SPY', '1min', True))
print(result)
"
protobuf ファイルの再生成

市場データブローカーの protobuf 定義が変更された場合:

./generate_proto.sh

パフォーマンス

ベンチマーク
  • 分析レイテンシ:リクエストあたり < 1ms(gRPC モード)
  • 同時リクエスト数:2000 件以上の分析を同時に実行
  • メモリ使用量:基本約 50MB + アクティブなティッカーごとに 1KB
  • CPU 使用率:最新のハードウェアで < 5%
最適化のヒント
  1. 本番環境へのデプロイには gRPC モードを使用します
  2. 応答を速くするには 履歴の時間枠を短くします
  3. 不要な場合は パターン検出を無効にします(include_patterns=false)
  4. 複数のティッカーを分析する場合は リクエストをまとめて送信します

エラー処理

このサーバーは、一般的な問題について詳細なエラー応答を返します。

<order_flow_data ticker="INVALID" error="true">
    <error_message>No data available for ticker</error_message>
    <possible_causes>
        <cause>Invalid ticker symbol</cause>
        <cause>Market data broker not running</cause>
        <cause>Network connectivity issues</cause>
    </possible_causes>
    <suggestions>
        <suggestion>Verify ticker symbol is correct</suggestion>
        <suggestion>Check market data broker status</suggestion>
        <suggestion>Ensure network connectivity</suggestion>
    </suggestions>
</order_flow_data>

コメント

MCP は初めてですか?

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

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