🚀 QuantConnect MCP Server
QuantConnectのアルゴリズムトレードプラットフォーム向けの本番環境対応型モデルコンテキストプロトコルサーバー
QuantConnectの研究環境、統計分析、ポートフォリオ最適化をあなたのAIワークフローに統合します。ローカルホストで動作し、安全で生産性を大幅に向上させることができます。
デモ – Claude
🚀 クイックスタート
2分以内でサーバーを起動して使用できるようになります。
⚠️ 重要提示
サーバーを起動する前に、QuantConnectの資格情報(ユーザーIDとAPIトークン)が必要です。適切な認証がないとサーバーは機能しません。これらの資格情報の取得方法の詳細については、認証セクションを参照してください。
uvxを使用したインストール(推奨)
uvx quantconnect-mcp
uv pip install quantconnect-mcp
pip install quantconnect-mcp
ワンクリックでのClaudeデスクトップインストール(推奨)
- ダウンロード: 「Releases」ページから最新の
quantconnect-mcp.dxt
を取得します。
- インストール: ファイルをダブルクリックすると、Claudeデスクトップが開き、「インストール」を促すメッセージが表示されます。
- 設定: Claudeデスクトップ → 「設定」 → 「拡張機能」 → 「QuantConnect MCP」で、ユーザーIDとAPIトークンを貼り付けます。
- 使用: 新しいClaudeチャットを開始し、QuantConnectのツールを呼び出します。
なぜDXTを使うのか?
デスクトップ拡張機能(.dxt
)は、サーバー、依存関係、マニフェストをバンドルしているため、ユーザーはダウンロードから動作するMCPまでをワンクリックで完了できます。ターミナル操作やJSON編集、バージョンの競合はありません。
2. QuantConnectの資格情報を設定(必須)
サーバーを正常に機能させるには、以下の環境変数が必要です。
export QUANTCONNECT_USER_ID="your_user_id"
export QUANTCONNECT_API_TOKEN="your_api_token"
export QUANTCONNECT_ORGANIZATION_ID="your_org_id"
3. サーバーを起動
uvx quantconnect-mcp
MCP_TRANSPORT=streamable-http MCP_PORT=8000 uvx quantconnect-mcp
4. 自然言語での対話
プログラム的にツールを呼び出す代わりに、接続されたAIクライアント(Claude、GPTなどのMCP互換インターフェース)を使用して自然言語で対話できます。
"研究環境を初期化し、GOOGL、AMZN、MSFTを追加して、2023年についてPCA分析を実行してください。"
✨ 主な機能
QuantConnect MCPは、以下の機能を提供します。
- プロジェクトのライフサイクル管理:
Create
、read
、update
、compile
を使用して、QuantConnectのプロジェクトとファイルをプログラムで管理できます。
- エンドツーエンドのバックテスト: プロジェクトを
compile
し、create backtests
を作成し、詳細な結果をread
し、charts
、orders
、insights
を分析できます。
- インタラクティブな研究:
QuantBook
を完全に統合して、動的な金融分析を行うことができます。これには、過去のデータやalternative data
の取得も含まれます。
- 高度な分析:
Principal Component Analysis (PCA)
、Engle-Granger cointegration tests
、mean-reversion analysis
、correlation studies
を実行できます。
- ポートフォリオ最適化: 洗練された
sparse optimization
を使用して、Huber Downward Riskを最小化し、パフォーマンスを計算し、戦略をベンチマークできます。
- ユニバース選択: 複数の基準で資産を動的に
screen
し、ETF constituents
を分析し、相関に基づいて資産を選択できます。
- エンタープライズグレードのセキュリティ: SHA-256で認証されたAPIを使用して、QuantConnectと安全に統合できます。
- 高性能コア:
async-first
の設計で構築されており、並行データ処理と応答性に優れています。
- AIネイティブインターフェース: 高度なAIクライアントで
natural language
を介してシームレスに対話できるように設計されています。
📦 インストール
資格情報の取得
資格情報 |
取得場所 |
必須 |
ユーザーID |
サインアップ時に受け取ったメール |
◉ はい |
APIトークン |
QuantConnect設定 |
◉ はい |
組織ID |
組織URL: /organization/{ID} |
◦ オプション |
設定方法
方法1: 環境変数(推奨)
export QUANTCONNECT_USER_ID="123456"
export QUANTCONNECT_API_TOKEN="your_secure_token_here"
export QUANTCONNECT_ORGANIZATION_ID="your_org_id"
デモ – Roo Code
💻 使用例
自然言語による複雑な金融分析タスクの指示例
ファクター駆動型ポートフォリオ構築パイプライン
“2025年用のグローバル株式ロング/ショートポートフォリオを構築してください。
- 2024年12月31日時点のQQQ、SPY、EEMの構成銘柄を取得してください(生存バイアスなし)。
- 各銘柄について、2022年1月1日から2024年12月31日までの日次データを使用して、Fama-French 5ファクターとquality-minus-junkのローディングを計算してください。
- 銘柄を**価値(B/M)とモメンタム(12-1)**で三分位にランク付けし、上位三分位をロング、下位三分位をショートし、S&P 500に対してベータ中立にしてください。
- 各ブック内で、**Hierarchical Risk Parity (HRP)を適用してポジションサイズを決定し、各レッグの総エクスポージャーを5%**に制限してください。
- 年化事前ボラティリティを10%以下に目標設定し、95%の信頼水準でCVaR最小化を解いてください。
- MSCIワールドをベンチマークとして、2023年1月1日から2024年12月31日までの期間の年化リターン、ボラティリティ、シャープレシオ、ソルティノレシオ、最大ドローダウン、ヒットレート、ターンオーバーを報告してください。
- 最適なウェイトと完全なテアシートを
pdf
とcsv
形式でエクスポートしてください。
- 毎月のリバランスジョブをスケジュールし、シグナルをライブトレードエンドポイントに送信してください。”
堅牢な統計的アービトラージワークフロー
“ペアトレードのアイデアをテストして改良してください。
• ユニバース: 米国の必需品セクター、時価総額が50億ドル以上、価格が10ドル以上。
• データ: 15分足のバー、2023年1月2日から2025年6月30日まで。
• ステップ1 - すべてのペアについて、60日間のローリング距離相関を計算し、dCorが0.80以上のペアを残してください。
• ステップ2 - 残ったペアに対してJohansen共積分(ラグ = 2)を実行し、トレース統計量が5%の臨界値未満のペアを残してください。
• ステップ3 - 各共積分ペアについて:
– 平均回帰の半減期を推定し、7日を超える場合は破棄してください。
– ハースト指数を計算し、H < 0.4が必要です。
• ステップ4 - ベイジアンカルマンフィルタースプレッドをシミュレートして、時間変化するヘッジ比率を可能にしてください。
• エントリー: zスコアが±2をクロスする(2バーの確認); エグジット: z = 0またはt_max = 3 × 半減期。
• リスク: ペアの名目額をNAVの3%に制限し、ポートフォリオの総レバレッジを3倍以下に制限し、z = 4でストップロスを設定してください。
• 出力: トレードログ、損益の帰属、アルファのブートストラップp値、およびLikelihood-Ratioテストのレジームシフト。”
自動化されたプロジェクト、バックテスト、ハイパーパラメータスイープ
“QuantConnectで実験セットを起動してください。
- **‘DynamicPairs_Kalman’**という名前のPythonプロジェクトを作成してください。
- 以下のファイルを追加してください:
•
alpha.py
- シグナル生成(プレースホルダー)
• risk.py
- カスタムポジションサイジング
• config.yaml
- パラメータグリッド:
yaml entry_z: [1.5, 2.0, 2.5] lookback: [30, 60, 90] hedge: ['OLS', 'Kalman']
- 2022 - 23年のインサンプルデータを使用して、‘GridSearch-v1’というラベルの付いたパラメータスイープバックテストをトリガーしてください。
- ジョブが完了したら、情報比率と最大ドローダウンが10%未満でランク付けし、上位3つの設定を保存してください。
- 勝者について、2024年から現在までのアウトオブサンプルバックテストを自動的に起動してください。
- エグゼクティブサマリーを作成してください: テーブル + チャート(エクイティカーブ、ローリングシャープレシオ、エクスポージャーヒストグラム)。
- 最良のモデルをDockerイメージとしてパッケージ化し、レジストリにプッシュし、**1日の損失が3σを超えた場合に停止するキルスイッチ付きでライブトレードクラスターにデプロイしてください。”
統計分析ワークフロー
"コカ・コーラ(KO)とペプシ(PEP)は共積分関係にありますか?2023年から2024年までの期間でテストしてください。共積分関係にある場合は、20日のロークバックで平均回帰特性を分析してください。"
プロジェクトとバックテストの管理
"QuantConnectのプロジェクトを管理する必要があります。まず、'My_Awesome_Strategy'という名前の新しいPythonプロジェクトを作成してください。次に、その中に'main.py'という名前のファイルを作成し、このコードを追加してください: ...your algorithm code here...
。その後、コンパイルして'Initial Run'という名前のバックテストを実行してください。完了したら、パフォーマンス結果を表示してください。"
📚 ドキュメント
◆ 認証ツール
ツール |
説明 |
主要パラメータ |
configure_quantconnect_auth |
API資格情報を設定 |
user_id , api_token , organization_id |
validate_quantconnect_auth |
資格情報の有効性をテスト |
- |
get_auth_status |
認証ステータスを確認 |
- |
test_quantconnect_api |
APIの接続性をテスト |
endpoint , method |
clear_quantconnect_auth |
保存された資格情報をクリア |
- |
◆ プロジェクト管理ツール
ツール |
説明 |
主要パラメータ |
create_project |
新しいQuantConnectプロジェクトを作成 |
name , language , organization_id |
read_project |
プロジェクトの詳細を取得またはすべてのプロジェクトをリスト |
project_id (オプション) |
update_project |
プロジェクトの名前/説明を更新 |
project_id , name , description |
compile_project |
バックテスト用にプロジェクトをコンパイル |
project_id |
◆ ファイル管理ツール
ツール |
説明 |
主要パラメータ |
create_file |
プロジェクト内にファイルを作成 |
project_id , name , content |
read_file |
プロジェクトからファイルを読み取る |
project_id , name (オプション) |
update_file_content |
ファイルの内容を更新 |
project_id , name , content |
update_file_name |
プロジェクト内のファイル名を変更 |
project_id , old_file_name , new_name |
◆ QuantBook研究ツール
ツール |
説明 |
主要パラメータ |
initialize_quantbook |
新しい研究インスタンスを作成 |
instance_name , organization_id , token |
list_quantbook_instances |
すべてのアクティブなインスタンスを表示 |
- |
get_quantbook_info |
インスタンスの詳細を取得 |
instance_name |
remove_quantbook_instance |
インスタンスをクリーンアップ |
instance_name |
◆ データ取得ツール
ツール |
説明 |
主要パラメータ |
add_equity |
単一の株式証券を追加 |
ticker , resolution , instance_name |
add_multiple_equities |
複数の証券を追加 |
tickers , resolution , instance_name |
get_history |
過去の価格データを取得 |
symbols , start_date , end_date , resolution |
add_alternative_data |
代替データを購読 |
data_type , symbol , instance_name |
get_alternative_data_history |
代替データの履歴を取得 |
data_type , symbols , start_date , end_date |
◆ 統計分析ツール
ツール |
説明 |
主要パラメータ |
perform_pca_analysis |
主成分分析 |
symbols , start_date , end_date , n_components |
test_cointegration |
Engle-Granger共積分テスト |
symbol1 , symbol2 , start_date , end_date |
analyze_mean_reversion |
平均回帰分析 |
symbols , start_date , end_date , lookback_period |
calculate_correlation_matrix |
資産の相関分析 |
symbols , start_date , end_date |
◆ ポートフォリオ最適化ツール
ツール |
説明 |
主要パラメータ |
sparse_optimization |
高度なスパース最適化 |
portfolio_symbols , benchmark_symbol , 最適化パラメータ |
calculate_portfolio_performance |
ポートフォリオのパフォーマンス指標を計算 |
symbols , weights , start_date , end_date |
optimize_equal_weight_portfolio |
等加重最適化 |
symbols , start_date , end_date , rebalance_frequency |
◆ ユニバース選択ツール
ツール |
説明 |
主要パラメータ |
get_etf_constituents |
ETFの保有銘柄を取得 |
etf_ticker , date , instance_name |
add_etf_universe_securities |
すべてのETF構成銘柄を追加 |
etf_ticker , date , resolution |
select_uncorrelated_assets |
無相関資産を見つける |
symbols , num_assets , method |
screen_assets_by_criteria |
複数の基準で資産をスクリーニング |
symbols , min_return , max_volatility , など |
◆ バックテスト管理ツール
ツール |
説明 |
主要パラメータ |
create_backtest |
コンパイルから新しいバックテストを作成 |
project_id , compile_id , backtest_name |
read_backtest |
バックテストの結果を取得 |
project_id , backtest_id , chart |
read_backtest_chart |
チャートデータを取得 |
project_id , backtest_id , name |
read_backtest_orders |
注文履歴を取得 |
project_id , backtest_id , start , end |
read_backtest_insights |
インサイトデータを取得 |
project_id , backtest_id , start , end |
🔧 技術詳細
アーキテクチャ
quantconnect-mcp/
├── ◆ quantconnect_mcp/ # メインパッケージディレクトリ
│ ├── main.py # サーバーのエントリポイントと設定
│ └── src/ # ソースコードモジュール
│ ├── ⚙ server.py # FastMCPサーバーのコア
│ ├── ⚙ tools/ # ツールの実装
│ │ ├── ▪ auth_tools.py # 認証管理
│ │ ├── ▪ project_tools.py # プロジェクトのCRUD操作
│ │ ├── ▪ file_tools.py # ファイル管理
│ │ ├── ▪ quantbook_tools.py # 研究環境
│ │ ├── ▪ data_tools.py # データ取得
│ │ ├── ▪ analysis_tools.py # 統計分析
│ │ ├── ▪ portfolio_tools.py # ポートフォリオ最適化
│ │ ├── ▪ universe_tools.py # ユニバース選択
│ │ └── ▪ backtest_tools.py # バックテスト管理
│ ├── ◆ auth/ # 認証システム
│ │ ├── __init__.py
│ │ └── quantconnect_auth.py # 安全なAPI認証
│ └── ◆ resources/ # システムリソース
│ ├── __init__.py
│ └── system_resources.py # サーバーモニタリング
├── ◆ tests/ # 包括的なテストスイート
│ ├── test_auth.py
│ ├── test_server.py
│ └── __init__.py
├── ◆ pyproject.toml # プロジェクト設定
└── ◆ README.md # このファイル
コア設計原則
- ◎ モジュール式アーキテクチャ: 各ツールカテゴリは、保守性のために明確に分離されています。
- ▪ セキュリティ第一: SHA-256で認証されたAPIと安全な資格情報管理を備えています。
- ⚡ 非同期パフォーマンス: 最大スループットを実現するための非ブロッキング操作。
- ◆ 型安全: mypyによる完全な型アノテーションと検証。
- ⚙ 拡張性: プラグインベースのアーキテクチャで、機能の追加が容易です。
高度な設定
環境変数
変数 |
説明 |
デフォルト |
例 |
MCP_TRANSPORT |
トランスポート方法 |
stdio |
streamable-http |
MCP_HOST |
サーバーのホスト |
127.0.0.1 |
0.0.0.0 |
MCP_PORT |
サーバーのポート |
8000 |
3000 |
MCP_PATH |
HTTPエンドポイントのパス |
/mcp |
/api/v1/mcp |
LOG_LEVEL |
ログの詳細度 |
INFO |
DEBUG |
システムリソース
自然言語クエリを使用して、サーバーのパフォーマンスとステータスを監視できます。
"サーバーのシステム情報を表示してください。"
"現在のサーバーのステータスはどうですか?アクティブなQuantBookインスタンスはありますか?"
"利用可能なすべてのツールの概要を教えてください。"
"サーバーの最新のパフォーマンス指標を取得してください。"
"サーバーで実行されている最もリソースを消費する上位10のプロセスは何ですか?"
🔧 テスト
テストスイートの実行
pytest tests/ -v
pytest tests/ --cov=src --cov-report=html
pytest tests/test_auth.py -v
pytest tests/ -n auto
◈ コントリビュート
このプロジェクトへのコントリビューションを歓迎します!このプロジェクトは、最高のPython開発標準に従っています。
開発環境のセットアップ
git clone https://github.com/your-username/quantconnect-mcp
cd quantconnect-mcp
uv sync --dev
pre-commit install
コード品質標準
- ◉ 型ヒント: すべての関数には完全な型アノテーションが必要です。
- ◉ ドキュメント: すべての公開関数には包括的なドキュメント文字列が必要です。
- ◉ テスト: 最低90%のテストカバレッジが必要です。
- ◉ フォーマット: Blackによるコードフォーマットが適用されます。
- ◉ リンティング: Ruffによるリンティングでゼロ警告が必要です。
- ◉ 型チェック: mypyによる検証が必要です。
開発ワークフロー
git checkout -b feature/amazing-new-feature
ruff check src/
black src/ tests/
mypy src/
pytest tests/ --cov=src
git commit -m "feat: add amazing new feature"
git push origin feature/amazing-new-feature
プルリクエストのガイドライン
- ◆ 明確な説明: 何をしたのか、なぜそうしたのかを説明してください。
- ◆ テストカバレッジ: すべての新しい機能にはテストを含めてください。
- ◆ ドキュメント: READMEとドキュメント文字列を必要に応じて更新してください。
- ◆ コードレビュー: すべてのレビューフィードバックに対応してください。
- ◆ CIの通過: すべての自動チェックが通過する必要があります。
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細については、LICENSEファイルを参照してください。