OptionsFlow MCP Server について
OptionsFlow MCP Server は FastMCP で構築された MCP サーバーで、Yahoo Finance のデータを用いてオプション戦略を分析します。CCS、PCS、CSP、CC の各戦略を評価したいユーザー向けで、stdio と Streamable HTTP の両方のトランスポートに対応しています。
主な機能
- 01analyze_basic_strategies 戦略分析ツール
- 02Greeks とブレークイーブン価格の算出
- 03最大利益、最大損失、資本収益率
- 04コンテナ化された Streamable HTTP デプロイ
- 05Host と Origin ヘッダーの検証
活用シーン
- 01カバードコールやキャッシュセキュアドプットの評価
- 02Claude.ai などのクライアントからのリスク指標の照会
- 03コンテナでのオプション分析サービスの運用
MCP 対応
本プロジェクトは MCP サーバーであり、analyze_basic_strategies ツールを通じてオプション戦略分析機能を stdio または Streamable HTTP 経由で MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OptionsFlow MCP
Yahoo Finance のデータからオプション戦略を分析する、型付きの FastMCP サーバーです。ローカルの stdio と、コンテナ化された Streamable HTTP トランスポートに対応しています。
ツール
analyze_basic_strategies(symbol, strategy, expiration_date, delta_target=0.3, width_pct=0.05) は、元の公開ツール名、必須引数、デフォルト値、および戦略の値である ccs、pcs、csp、cc を維持します。価格とペイオフの値は、1 株あたりの金額と標準的な 100 株の契約乗数を区別します。結果には、損益分岐点、最大利益/損失、投下資本利益率、実際の損益分岐点で評価した確率、ポジションのグリークス、プロバイダー/基準日時のメタデータ、警告、却下理由が含まれます。
uv sync --locked
uv run python optionsflow.py
サーバーは stdio を使用し、プロトコルに関係のない内容を stdout に書き込みません。Black-Scholes の値は理論上のヨーロピアンモデルによる推定値です。配当やアメリカンスタイルの早期割り当てにより、実現結果と大きく異なる場合があります。Yahoo Finance は非公式の個人利用向けデータソースであり、遅延、不完全、レート制限、または構造変更が生じる場合があります。返される情報は投資助言ではなく、リアルタイムデータを保証するものでもありません。
Docker / Streamable HTTP
コンテナは非特権ユーザーとして実行され、ロックされた本番用依存関係をインストールして、http://127.0.0.1:8000/mcp で MCP を提供します。次のコマンドで起動します。
docker compose up --build -d
Invoke-RestMethod http://127.0.0.1:8000/health
Streamable HTTP 対応の MCP クライアントを http://127.0.0.1:8000/mcp に接続します。複数のサーバーを実行する際にポートの競合を避けるには、Compose の起動前に MCP_HOST_PORT を設定します。たとえば、$env:MCP_HOST_PORT=8001 のようにします。docker compose down でコンテナを停止して削除します。
Compose のポートマッピングは意図的に localhost にバインドしています。このエンドポイントには認証も TLS もないため、適切に設定したリバースプロキシとアクセス制御なしに、信頼できないネットワークへ公開してはなりません。
ループバックのみにバインドしても、エンドポイントがプライベートになるわけではありません。ブラウザーは DNS リバインディングを通じて引き続きアクセスできるため、サーバーはリクエストが MCP セッションに到達する前に Host と Origin ヘッダーを検証します。外部の Host を含むリクエストには 421 Misdirected Request を、外部の Origin を含むリクエストには 403 Forbidden を返します。一方、同一オリジンのループバック通信と、Origin を送信しない非ブラウザークライアントには影響しません。
| 変数 | デフォルト | 用途 |
|---|---|---|
MCP_TRANSPORT | stdio | stdio、http、または streamable-http。 |
MCP_HOST | 127.0.0.1 | HTTP サーバーがバインドするインターフェース。 |
MCP_PORT | 8000 | コンテナ内のポート。 |
MCP_PATH | /mcp | Streamable HTTP エンドポイントのパス。 |
MCP_HOST_PORT | 8000 | Compose が 127.0.0.1 上に公開するホストポート。 |
MCP_HOST_ORIGIN_PROTECTION | true | true、auto、または false。同じ検証を行うプロキシの背後にある場合に限り、無効にしてください。 |
MCP_ALLOWED_HOSTS | 未設定 | Host で許可する追加のホスト名をカンマ区切りで指定します。 |
MCP_ALLOWED_ORIGINS | 未設定 | Origin で許可する追加のブラウザーオリジンをカンマ区切りで指定します。 |
コンテナの前段にリバースプロキシを置く場合は、プロキシ経由の Host がガードによって拒否されないよう、リバースプロキシのホスト名を MCP_ALLOWED_HOSTS に設定してください。Docker 外では、uv run python optionsflow.py が引き続き stdio 対応のデフォルトです。
uv lock --check、uv run ruff check .、uv run mypy .、uv run pytest、uv build、uv run python scripts/verify_wheel.py を実行して検証します。CI ではコンテナもビルドし、Streamable HTTP 経由でヘルスチェックと MCP ツールの検出チェックを実行します。ドメイン/プロバイダーの分岐網羅率は 90% が必須です。価格をアサーションしないライブスモークテストを実行するには、YFINANCE_LIVE=1 を設定します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。