Backtest360 について
Backtest360 は、Backtest360 エンジン API を AI エージェント向けのツールとして提供する MCP サーバーです。指標の検索、戦略の作成・検証、バックテストの実行と結果確認に対応し、AI や独自の計算機能は含まず、ホスト型 HTTP とローカル stdio を利用できます。
主な機能
- 01指標、テンプレート、戦略スキーマの検索
- 02位置情報付きエラーを返す戦略検証
- 03過去のバックテスト実行と比較
- 04最新シグナルと指標の取得
- 05価格データとマクロ経済データの照会
活用シーン
- 01自然言語の売買案を検証可能な戦略にする
- 02バックテスト結果と戦略の堅牢性を確認する
- 03同じデータで複数戦略を比較する
- 04銘柄の過去データ範囲を確認する
MCP 対応
MCP クライアントに Backtest360 エンジン API のツール、静的リソース、ワークフロープロンプトを公開します。ホスト型 HTTP またはローカル stdio で接続でき、API キーの権限、制限、データアクセスはエンジンのプランに従います。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.backtest360.com/mcpclaude mcp add --transport http com-backtest360-backtest360 https://mcp.backtest360.com/mcp{"mcpServers":{"com-backtest360-backtest360":{"type":"http","url":"https://mcp.backtest360.com/mcp"}}}Cursor で開く{"servers":{"com-backtest360-backtest360":{"type":"http","url":"https://mcp.backtest360.com/mcp"}}}VS Code で開く{"mcpServers":{"com-backtest360-backtest360":{"type":"http","url":"https://mcp.backtest360.com/mcp"}}}{"mcpServers":{"com-backtest360-backtest360":{"serverUrl":"https://mcp.backtest360.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.backtest360.com/mcp認証が必要ツール
20このツールにパラメーターはありません。
詳細
backtest360-mcp
Backtest360 エンジン API を AI エージェント向けのツールとして公開する MCP サーバーです。
MCP 対応の AI クライアントを接続すれば、会話形式で実際のバックテストを実行できます。インジケーターを調べ、戦略を構築して検証し、バックテストを実行して結果を読み取ることができます。すべて、決定論的な Backtest360 エンジンを使用します。このサーバーには AI は含まれておらず、独自に数値を計算することもありません。エンジンの HTTP API を忠実に薄くラップするアダプターです。すべての機能(権限、レート制限、データアクセス)は、お使いのエンジン API キーとプランによって決まります。
トランスポートは 2 種類あります。https://mcp.backtest360.com/mcp にあるホスト型 HTTP エンドポイント(X-API-Key ヘッダーでキーを送信)と、ローカルの stdio(セルフホスト。以下を参照)です。
インストール
pip install backtest360-mcp # or, from a clone: pip install -e .
Python 3.10 以降と Backtest360 API キーが必要です。backtest360.com/api-access から無料ですぐに取得できます。メールアドレスを送信すると、キー(形式は b360_…)がその場で発行され、メールで届きます。承認は不要です。認証方式はAPI キーのみです。無料プランではアップロードしたデータを使ってバックテストを実行できます。エンジンサーバー側で過去の価格データを取得する機能は有料です。
設定
すべて環境変数で設定します。
| 変数 | 必須 | デフォルト | 用途 |
|---|---|---|---|
BACKTEST360_API_KEY | はい | — | X-API-Key として送信するエンジン API キー |
BACKTEST360_ENGINE_URL | いいえ | https://api.backtest360.com | エンジンのベース URL |
BACKTEST360_MCP_TIMEOUT | いいえ | 300 | リクエストごとのタイムアウト(秒) |
BACKTEST360_MCP_MAX_OUTPUT_BYTES | いいえ | 100000 | 1 回のツール結果に対する上限 |
MCP クライアントを接続する
ホスト型(推奨)
MCP クライアントから HTTP 経由でホスト型エンドポイントに接続し、X-API-Key ヘッダーでキーを送信します。
{
"mcpServers": {
"backtest360": {
"type": "streamable-http",
"url": "https://mcp.backtest360.com/mcp",
"headers": {
"X-API-Key": "b360_..."
}
}
}
}
ローカル(stdio)
サーバーを自分で実行し、stdio 経由でクライアントに起動させます(一般的な mcpServers 形式)。
{
"mcpServers": {
"backtest360": {
"command": "backtest360-mcp",
"env": {
"BACKTEST360_API_KEY": "b360_..."
}
}
}
}
キーを設定ファイルに記載したくない場合は、command に、シークレットマネージャーからキーをエクスポートしてから backtest360-mcp を実行する小さなラッパースクリプトを指定してください。最小構成の設定例は examples/mcp.json にあります。
ツール
| ツール | 内容 |
|---|---|
engine_info | エンジンのバージョン、API コントラクト、健全性 |
get_me | 設定済みのキーで実行できること:権限スコープ、制限、現在の使用状況、機能フラグ |
get_catalog | 参照カタログ:演算子、実行モード、停止タイプ、サイズ設定方法、バーの頻度、指標セクション |
list_indicators | インジケーターの検索;インジケーターごとのパラメータスキーマ |
list_templates | 事前設計済みの戦略テンプレート — コンパクトに検索し、1つを全件取得して、すぐに検証・実行できます |
get_strategy_schema | 戦略ドキュメントの JSON Schema |
validate_strategy | 実行せずに戦略を検証します — 場所を特定できる構造化エラーを返します |
run_backtest | 過去データでバックテストを実行します |
get_latest_signal | 最新のバーのみを評価します(損益は計算しません) |
compare_backtests | 同じデータで複数の戦略を並べて実行します |
compute_stats | 外部で生成されたリターン系列から指標セットを計算します |
search_tickers / list_tickers | サーバー側データ取得用のアセット検索 |
get_data_range | シンボルで利用可能な履歴とバー数の推定値 |
get_ticker_info | 1回の呼び出しでシンボルの識別情報とデータの網羅範囲を取得します |
get_quote | シンボルの最新の利用可能価格(有料プラン) |
get_price_history | 指定した日付範囲の OHLCV 価格履歴(有料プラン。長期間の履歴は収まるようにダウンサンプリングされます) |
list_macro_series / get_macro_series | マクロ経済データ:系列カタログを一覧表示してから、1つの系列の観測値を取得します |
低コストの静的カタログは、リソースのアタッチに対応するクライアント向けに、MCP リソース(backtest360://catalog/{name}、backtest360://schema/strategy)としても公開されています。
プロンプト
2つのワークフロープロンプトは、接続された AI がよく使う複数ツールのフローを組み立てます。それぞれ、呼び出すツールとその順序、結果で確認する内容を示します。解釈は行わず、計算もしません。推論は接続された AI が行います。
| プロンプト | 引数 | 組み立てるフロー |
|---|---|---|
robustness_review | symbol、strategy(任意) | バックテスト済みの戦略の堅牢性をレビューします:検証 → 実行 → バイ・アンド・ホールドとの比較 → エビデンスベースの評価(サンプルサイズ、有意性/堅牢性の統計値、警告) → 留保付きの要約 |
build_and_validate | idea | 平易な言葉で書かれたアイデアを検証済みの戦略に変換します:カタログの調査 → スキーマの取得 → 構築 → 検証・修正のループ → ドライラン |
レスポンスの整形
バックテストの全結果はメガバイト単位になりますが、エージェントのコンテキストはそうではありません。run_backtest と
compare_backtests では、response_detail を指定できます:
summary(デフォルト)— 主要指標、警告、件数、資産曲線の開始点と終了点stats— プランで許可されているすべての指標full— さらに系列(ダウンサンプリング済み、開始点と終了点は保持)と取引(ページネーション対応)
run_backtest では、系列のダウンサンプリング上限を上書きする max_series_points(デフォルトは 500、2 以上である必要があります)も指定できます。長期間の実行で系列をフル解像度にしたい場合は値を大きく設定し、今日のデフォルト値を使う場合は指定しないでください。
include=["trades", "equity_curve", "monthly_returns", "yearly_returns", "signal_diagnostics"] を指定すると、詳細レベルに関係なく、特定のブロックが追加されます。
signal_diagnostics は、各バーでどのエントリー/決済条件が成立したかを、条件ごとの発生日リスト(上限あり)として報告します(ダウンサンプリングで破損する、生のバーごとのブール配列ではありません)。また、評価対象となる条件ツリーが実行にない場合(事前計算済みシグナルなど)は、{"available": false, ...} を返します。出力上限を超える結果はさらに縮小され、truncated_by_mcp と明示されます。黙って切り捨てられることはありません。整形では、エンジンが返した内容の選択と間引きのみを行います。値の計算や変更は行いません。
エラーの意味
エージェント向けに設計されています。
- リクエストの変更で修正可能 → 通常の結果として返されます。検証に失敗した場合は、機械可読コードとドキュメント内の位置を含む
{"valid": false, "errors": [...]}が返されます。エンジンに拒否された場合は、ヒントを含む{"accepted": false, "error": ...}が返されます。 - その方法では修正できない → 明確なガイダンスを含むツールエラーになります。レート制限には
Retry-Afterの値が含まれます。エンジンがビジーの場合は、バックオフして再試行するよう示されます。計算タイムアウトの場合は、再試行せず、代わりに範囲を縮小するよう示されます。権限の問題では、不足している機能が明示されます。サポート用にエンジンのリクエスト ID も含まれます。
テストの実行(セルフホスト)
pip install -e ".[dev]"
pytest # unit suite vs a mock engine — no network
質問/フィードバック
質問やフィードバックはこちらまでお寄せください:[email protected] — すべて確認しています。backtest360-mcp は現在活発に開発中です。ぜひ改善にご協力ください。
バグ報告や機能リクエスト:GitHub で issue を作成してください。
ライセンス
MIT — LICENSE をご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。