MCP Tradovate Server について
MCP Tradovate Server は、取引プラットフォーム Tradovate 向けの MCP サーバーで、Claude Desktop などの AI アシスタントから自然言語で取引口座を管理できます。Go で実装されており、口座、注文、リスク管理、マーケットデータに関するツールを提供します。
主な機能
- 01口座とポジションの照会
- 02注文の発注、取消、約定の照会
- 03リスク制限の設定
- 04銘柄一覧とリアルタイムのマーケットデータ
- 05過去の価格データの取得
活用シーン
- 01自然言語による取引口座とポジションの確認
- 021 日の最大損失などリスク制限の設定
- 03特定の銘柄の過去価格データの取得
MCP 対応
本プロジェクトは MCP サーバーとして、authenticate、get_accounts、place_order などのツールを Claude Desktop などの MCP クライアントに提供し、Tradovate API へのアクセスに利用されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP Tradovate サーバー
Claude Desktop で Tradovate と連携するための Model Context Protocol(MCP)サーバーです。このサーバーを使用すると、AI アシスタントが自然言語でのやり取りを通じて Tradovate の取引口座を管理できます。
機能
- ✅ Tradovate API との完全な連携
- 🔒 安全な認証処理
- 📈 リアルタイムの市場データへのアクセス
- 💼 口座管理
- 📊 リスク管理コントロール
- 🔄 注文の発注と管理
- 📝 包括的なテストカバレッジ
インストール
Smithery 経由でのインストール
Smithery 経由で Claude Desktop 用の Tradovate MCP サーバーを自動的にインストールするには:
npx -y @smithery/cli install @0xjmp/mcp-tradovate --client claude
手動インストール
- リポジトリをクローンします:
git clone https://github.com/0xjmp/mcp-tradovate.git
cd mcp-tradovate
- 依存関係をインストールします:
go mod download
- プロジェクトをビルドします:
go build ./cmd/mcp-tradovate
- 実行します:
./mcp-tradovate
設定
プロジェクトのルートに .env ファイルを作成し、Tradovate の認証情報を設定します:
TRADOVATE_USERNAME=your_username
TRADOVATE_PASSWORD=your_password
TRADOVATE_APP_ID=your_app_id
TRADOVATE_APP_VERSION=your_app_version
TRADOVATE_CID=your_client_id
TRADOVATE_SEC=your_client_secret
利用可能なツール
認証
authenticate:Tradovate API に接続します- パラメーターは不要です
口座管理
-
get_accounts:すべての取引口座を一覧表示します- パラメーターは不要です
-
get_positions:現在のポジションを表示します- パラメーターは不要です
-
get_risk_limits:リスク管理設定を取得します- 必須パラメーター:
account_id:(number)上限を取得する口座 ID
- 必須パラメーター:
-
set_risk_limits:リスク管理設定を構成します- 必須パラメーター:
account_id:(number)上限を設定する口座 IDday_max_loss:(number)1 日の最大損失上限max_drawdown:(number)最大ドローダウン上限max_position_qty:(number)ポジション数量の上限trailing_stop:(number)トレーリングストップの割合
- 必須パラメーター:
取引操作
-
place_order:新しい注文を発注します- 必須パラメーター:
account_id:(number)注文を発注する口座 IDcontract_id:(number)取引する契約 IDorder_type:(string)注文の種類(Market、Limit など)quantity:(number)取引する契約数time_in_force:(string)有効期間(Day、GTC、IOC など)
- オプションのパラメーター:
price:(number)注文価格(Limit 注文では必須)
- 必須パラメーター:
-
cancel_order:既存の注文をキャンセルします- 必須パラメーター:
order_id:(number)キャンセルする注文 ID
- 必須パラメーター:
-
get_fills:特定の注文の約定を取得します- 必須パラメーター:
order_id:(number)約定を取得する注文 ID
- 必須パラメーター:
市場データ
-
get_contracts:利用可能な契約を一覧表示します- パラメーターは不要です
-
get_market_data:リアルタイムの市場データを取得します- 必須パラメーター:
contract_id:(number)市場データを取得する契約 ID
- 必須パラメーター:
-
get_historical_data:過去の価格データを取得します- 必須パラメーター:
contract_id:(number)データを取得する契約 IDstart_time:(string)ISO 8601 形式の開始時刻end_time:(string)ISO 8601 形式の終了時刻interval:(string)時間間隔(1m、5m、15m、1h、1d)
- 必須パラメーター:
開発
テストの実行
カバレッジ付きですべてのテストを実行します:
go test -v -race -coverprofile=coverage.txt -covermode=atomic ./...
コードスタイル
Go のベストプラクティスと慣例に従います:
go fmt ./...
go vet ./...
トラブルシューティング
よくある問題
-
認証の失敗
.envファイルの Tradovate 認証情報を確認してください- Tradovate で API アクセスが有効になっていることを確認してください
-
接続の問題
- インターネット接続を確認してください
- Tradovate API のステータスを確認してください
- ファイアウォールが接続をブロックしていないことを確認してください
-
レート制限
- リクエスト間に適切な遅延を設定してください
- API の使用制限を監視してください
コントリビューション
コントリビューションを歓迎します!お気軽にプルリクエストを送信してください。
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。
サポート
問題が発生した場合や質問がある場合は、GitHub リポジトリで Issue を作成してください。
作者
Jake Peterson (@0xjmp)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。