mcpField
B
backtestport

backtestport

ローカル
github.com/CloudCorpRecords金融データ01 週間前に更新

backtestport について

backtestportは、戦略開発者向けのMCPサーバー兼コマンドラインクライアントで、ホスト型のBacktest360エンジンを利用します。戦略の検証や比較、バックテスト、シグナル評価、市場・マクロデータの取得ができ、取引注文には対応しません。

主な機能

  1. 01戦略ドキュメントの検証
  2. 02バックテストの実行と比較
  3. 03最新シグナルの評価
  4. 04市場・マクロデータの取得
  5. 05インジケーターとテンプレートの参照

活用シーン

  1. 01実行前の戦略チェック
  2. 02同じデータでの戦略比較
  3. 03銘柄の価格履歴の確認
  4. 04マクロ経済系列の検索

MCP 対応

Backtest360エンジン、戦略、バックテスト、市場データ、マクロデータの操作をMCPクライアント向けのツールとして公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-backtestport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/backtestport"
]
}
}
}
起動コマンドnpx -y @reneturcios/backtestport

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/backtestport0.1.0
ocighcr.io/cloudcorprecords/backtestport:0.1.0

ツール

19

掲載時のツール一覧 · 1 週間前に更新

このツールにパラメーターはありません。

詳細

backtestport

独自のエンジンを立ち上げずに、トレーディング戦略をバックテストできます。backtestportは、ホスト型バックテストエンジンBacktest360用の小さなクライアントです。戦略ドキュメントを渡すと、ドキュメントを検証し、バックテストを実行し、最新のシグナルを評価し、同じデータ上で複数の戦略を比較し、エンジンが利用できる市場データとマクロ経済データを取得します。さらに、そもそも戦略を作成するために必要なインジケーターカタログ、テンプレート、参照データも取得できます。

これはバックテスト専用のクライアントです。ライブトレード、注文の発注、口座に関するツールはなく、どの機能も資金を動かしません。

応答はエンジンから返された内容そのままで返されます。以下で説明する出力バイト数の上限を除き、途中で削除、改名、要約されることはありません。

設定

クライアントは4つの環境変数で制御します。

  • BACKTEST360_API_KEY(必須) — すべてのリクエストでX-API-Keyヘッダーとして送信されます。設定されていない場合、リクエストを送信する前に、すべてのツールがBACKTEST360_API_KEY is not setで失敗します。
  • BACKTEST360_ENGINE_URL(任意) — エンジンのベースURLです。デフォルトはhttps://api.backtest360.comです。
  • BACKTEST360_MCP_TIMEOUT(任意) — リクエストごとのタイムアウト時間(秒)です。デフォルトは300です。タイムアウト時間を超えたリクエストはbacktest360 request timed outで失敗します。
  • BACKTEST360_MCP_MAX_OUTPUT_BYTES(任意) — 応答サイズの上限(バイト)です。デフォルトは100000です。本文がこの上限を超える場合、上限まで切り詰めたうえで、末尾に{"truncated_by_mcp": true}が追加されるため、巨大なエクイティカーブで呼び出し元が圧迫されることはありません。

結果の読み方

失敗に見えるエンジンの応答のうち、実際には失敗ではないものが2つあります。

  • 戦略の検証では、ドキュメントに問題がある場合、{valid: false, errors: [...]}が返されます。これは正常な結果です。エラーは構造化され、該当箇所を特定できるため、ドキュメントを修正できます。
  • エンジンが受け付けないバックテストでは、{accepted: false}が返されます。これも正常な結果です。

実際の失敗はエラーとして返されます。エンジンがRetry-Afterヘッダーを送信した場合、HTTP 429はbacktest360 rate limited (HTTP 429); retry after <value>で失敗します(ヘッダーがない場合は末尾の部分が付きません)。その他の2xx以外の応答はbacktest360 error: HTTP <status>で失敗し、エンジンに接続できない場合はbacktest360 unreachableで失敗します。

戦略の引数(strategyおよびstrategiesの各項目)には、JSONオブジェクトまたはJSON文字列を指定できます。送信前に解析されます。解析できない文字列を指定すると、strategy is not valid JSONで失敗します。

バックテストの実行内容は、次の3つの引数で調整できます。

  • response_detail — summary(デフォルト)、stats、またはfull:判定結果のどの程度の詳細を返すかを指定します。
  • max_series_points — 返される系列の長さの上限です。デフォルトは500です。2以上の整数を指定する必要があり、リクエストを送信する前にローカルで検証されます(max_series_points must be an integer >= 2)。
  • include — trades、equity_curve、monthly_returns、yearly_returns、signal_diagnosticsのいずれかを指定すると、それぞれの系列が判定結果に追加されます。

ツール

探索とアカウント:

  • engine_info — エンジンのバージョン、API コントラクト、ヘルス状態。
  • get_me — 設定済みのキーでできること:権限スコープ、制限、現在の使用状況、機能フラグ。
  • get_catalog — 参照カタログ(演算子、実行モード、停止タイプ、サイズ設定方法、バーの頻度、指標セクション)。catalog を渡すと、指定したものだけを取得します。
  • list_indicators — 指標の探索と、指標ごとのパラメータースキーマ。search で一覧を絞り込めます。
  • list_templates — あらかじめ設計された戦略テンプレートを簡潔に一覧表示します。または、id を指定すると、1 件を全体表示します。
  • get_strategy_schema — 戦略ドキュメントの JSON Schema。

戦略と実行:

  • validate_strategy — 実行せずに戦略ドキュメントを確認します。
  • run_backtest — バックテストを実行します。symbol、start、end、上記の整形引数、および data(インラインのバーを含むオブジェクト)はすべて省略可能です。
  • get_latest_signal — 最新のバーのみを評価します。損益は計算しません。
  • compare_backtests — 同じデータで複数の戦略を並べて実行します。
  • compute_stats — 外部で生成された returns 系列から指標セットを計算します。

市場データとマクロデータ:

  • search_tickers / list_tickers — 取得可能なシンボルの一覧。
  • get_data_range — シンボルで利用可能な履歴と、バー数の推定値。
  • get_ticker_info — 1 回の呼び出しでシンボルの識別情報とデータの対象範囲を取得します。
  • get_quote — シンボルで利用可能な最新価格。
  • get_price_history — 日付範囲における OHLCV 履歴(start、end、frequency。サーバー側データではエンジンがバーを 1d に固定します。この引数は受け付けられ、転送されます)。
  • list_macro_series / get_macro_series — マクロ経済系列のカタログと、任意の日付範囲における 1 系列の観測値。
エンドポイントの出典

元プロジェクトの README では、19 個のツール、整形引数のセマンティクス、デフォルト値を含む 4 つの環境変数、X-API-Key ヘッダー、および検証結果とエンジンによる拒否をデータとして扱うルールが明記されています。以下のワイヤーパスは再構成したものであり、その旨を明記しています。GET /engine/info、GET /me、GET /catalogs、GET /indicators、GET /templates[/{id}]、GET /strategy/schema、POST /strategy/validate、POST /backtests、POST /signals/latest、POST /backtests/compare、POST /stats、GET /tickers/search、GET /tickers、GET /tickers/{symbol}/data-range、GET /tickers/{symbol}、GET /tickers/{symbol}/quote、GET /tickers/{symbol}/history、GET /macro、GET /macro/{series}。すべて設定済みのベース URL 配下にあり、パスの各セグメントとクエリ値は URL エンコードされます。

CLI

各ツールは、1 つの JSON 引数文字列を受け取るサブコマンドです。

npx @reneturcios/backtestport engine_info '{}'
npx @reneturcios/backtestport validate_strategy '{"strategy":{"name":"sma-cross","rules":[]}}'
npx @reneturcios/backtestport run_backtest '{"strategy":{"name":"sma-cross"},"symbol":"AAPL","include":["equity_curve"]}'
npx @reneturcios/backtestport get_quote '{"symbol":"AAPL"}'
npx @reneturcios/backtestport --version

出力はツールの結果テキスト(成功時は上流の JSON)です。終了コード:成功時は 0、実行時エラー時(キーの欠落、検証失敗、上流の失敗を含む)は 1、使用方法のエラー時は 2 です。

MCP サーバー

npx -y @reneturcios/backtestport mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "backtestport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/backtestport", "mcp"],
      "env": {
        "BACKTEST360_API_KEY": "<your key>"
      }
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/backtestport
docker run --rm ghcr.io/cloudcorprecords/backtestport get_quote '{"symbol":"AAPL"}'

開発

npm install
npm run build   # tsc -> dist/
npm test        # tsx --test test/*.test.ts (fake fetch only, no network)
npm run dev     # run the CLI from source

ライセンス

MIT — Copyright (c) 2026 Rene Turcios

コメント

MCP は初めてですか?

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

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