MCPサーバー ドキュメント — 16取引所 + MetaTrader 5

AlgoVesta MCPサーバー: Claude、ChatGPT、Cursor、Geminiにあなたの実際の取引所とMetaTrader 5口座を取引させる

これは何か: AlgoVestaはホスト型のModel Context Protocol(MCP)サーバーを運用しており、1本のHTTPSリンクを通じてAIアシスタントに20個の実際の取引ツールを提供します。このリンクをClaude、ChatGPT、Cursor、Claude Code、Gemini CLI、その他MCP対応のクライアントに貼り付けるだけで、アシスタントは残高を読み取り、ポジションを開閉し、ストップロスとテイクプロフィットを移動し、自身の操作を 16の暗号資産取引所とMetaTrader 5の外国為替において同時に監査できます — 使用されるのはAlgoVestaにすでに保存済みのリスク設定であり、どんなプロンプトでも上書きできないサーバー側のポリシーウォールの背後で動作します。すべての接続は5,000ドルのペーパー残高から始まり、すべての操作はed25519署名付きレシートを返します。
ネイティブMCPツール20個 OAuth 2.1(PKCE)またはシークレットリンク ペーパー優先、5,000ドルの仮想資金 Streamable HTTPトランスポート

Model Context Protocolは、AIアシスタントを外部システムに接続するためのオープンスタンダードです。トレーディング関連のMCPサーバーの多くは、市場データをチャットウィンドウにストリーミングするだけです。しかしこのサーバーは 実行します:これは決定論的なリスクエンジンを前段に備えた注文ルーティング層であり、AIは呼び出す側です — 決して権限を持つ側ではありません。

このページで最も重要な考え方。 取引所のAPIキーとMetaTrader 5口座は、AlgoVesta内で一度だけ接続します。リスク設定(ストップロス%、テイクプロフィット%、レバレッジ)もそこで一度だけ設定します。そのうえで、AIアシスタントに渡すのは 1本のリンクだけです。その瞬間から、アシスタントは 接続したすべての口座に、同じリンクを通じて同時にアクセスでき、開くすべての注文は あなた自身の 保存済みの設定を継承します — 手動パネルやTelegramボットが使うのとまったく同じ設定です。あなたはAIにAPIキーを渡しているわけではありません。渡しているのは、あなたがすでに管理している口座への、スコープが限定され、取り消し可能で、レート制限があり、ポリシーで検証されるドアです。

クイックスタート

セットアップは3ステップで、コードは一切不要です。フロー全体は MCP接続 タブ内で完結します(AlgoVestaパネル内)。

ステップ1

以下を開き MCP接続 タブでキーを生成します。新しいキーはデフォルトで paper スコープになります。フルリンクは一度だけ表示されるので、その場でコピーしてください。

ステップ2

そのリンクをAIクライアントにカスタムMCPサーバーとして貼り付けます。APIキーがAlgoVestaの外に出ることはなく、コードもローカルインストールも不要です。

ステップ3

話しかけてみましょう。“私のポートフォリオはどうなっていますか?” “ETHUSDTで5倍レバレッジ、200ドルのロングをシミュレートして” “BTCポジションの半分をクローズして”

接続用URLは次のような形式です:

https://api.algovesta.com/u/avmcp_<your-key>/mcp

このURLは認証情報です。これを保持する者は誰でも、そのスコープの範囲内であなたの口座に対して操作を行えます。パスワードと同様に扱ってください:公開チャット、スクリーンショット、共有リポジトリ、サポートチケットに絶対に貼り付けないでください。万一漏えいした場合は、パネルから取り消してください — 取り消しは新規接続に対して即座に有効になり、開いているイベントストリームも数秒以内に切断されます。

接続できるAIアシスタント

Streamable HTTP経由でMCPを話すクライアントであれば、どれでも接続できます。以下の表は、実際のサーバーに対して検証済みの内容を、実際の制限も含めて記録したものです — これらの制限の一部はAlgoVestaではなくAI製品側の制約であり、どのMCPサーバーを使っても同様に直面します。

AIクライアント リンクを貼り付ける場所 注記と実際の制限
Claude(web、デスクトップ、iOS、Android)設定 → コネクタ → カスタムコネクタを追加完全サポート。ツールのタイトルと確認ダイアログはサーバーからそのまま提供されます。
Claude Codeclaude mcp add --transport httpコマンドライン。スクリプト化された、あるいは繰り返し可能なワークフローに便利です。
Cursormcp.json"url" フィールド完全サポート。キー名は url であることに注意してください — Gemini CLIでは別の名前を使います。
ChatGPTデベロッパーモード / カスタムコネクタ有料プランのみ。 カスタムMCPコネクタは無料プランでは提供されず、まずデベロッパーモードを有効にする必要がある場合もあります。これはOpenAI側の制限です。
Gemini CLI~/.gemini/settings.json"httpUrl" フィールドCLIのみ。 Gemini のWebアプリはカスタムMCPサーバーに対応していません。使用するのは httpUrl キーであり、 url.
その他のMCP対応クライアント各クライアント独自のMCP/コネクタ設定このサーバーは標準規格を実装しているため、Streamable HTTP経由のリモートMCPに対応したクライアントであれば、特別な対応なしに動作します。

Cursorの例(mcp.json):

{
  "mcpServers": {
    "algovesta": {
      "url": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
    }
  }
}

Gemini CLIの例(~/.gemini/settings.json) — 注意 httpUrl:

{
  "mcpServers": {
    "algovesta": {
      "httpUrl": "https://api.algovesta.com/u/avmcp_<your-key>/mcp"
    }
  }
}

Claude Code:

claude mcp add --transport http algovesta https://api.algovesta.com/u/avmcp_<your-key>/mcp

トランスポートとプロトコル

トランスポートStreamable HTTP、ステートレス、JSONレスポンス。各リクエストは個別に認証されます。
サーバー名AlgoVesta
シークレットリンクのエンドポイントhttps://api.algovesta.com/u/<key>/mcp
OAuthエンドポイントhttps://api.algovesta.com/mcp
ツールリストの変更tools.listChanged = true。クライアントは再接続時にツールリストを更新するため、新しいツールやパラメータはコネクタを削除・再追加しなくても表示されます。
イベントストリームServer-Sent Eventsが /mcp/events および /u/<key>/eventsで利用でき、テナントごとに分離されており、 Last-Event-ID で再接続します。
機械可読なスキーマ/mcp/tools.json — クライアントが受け取るのとまったく同じ、20個すべてのツールの完全なJSON Schemaです。

認証とスコープ

接続方法は2通りあり、どちらも同じテナントコンテキストに解決されます。ツールがパラメータとしてユーザーIDを受け付けることは決してありません — 本人確認は認証済み接続からのみ読み取られるため、他口座へのアクセスは単に禁止されているのではなく、構造的に不可能になっています。

シークレットリンク

次の形式のキーで avmcp_<32-byte urlsafe random>、URLパスに埋め込まれます。Argon2idハッシュとSHA-256の検索用ハッシュとして保存され、平文が存在するのは作成の瞬間だけで、その後は復元できません。各キーは独自のスコープ、独自のラベル、独自の取り消し状態を持つため、Cursorでペーパーキーを1つ、Claudeでライブキーを1つ動かし、どちらか一方だけを個別に停止することができます。

OAuth 2.1

正式な認可フローを好むクライアント向けです。サポートされるグラントは authorization_code および refresh_tokenで、リフレッシュトークンはローテーションされます。 PKCE( S256 を使用)は必須です — これがないリクエストは拒否されます。動的クライアント登録に対応しているため、ほとんどのクライアントは自動的に設定されます。ディスカバリードキュメント:

GET https://api.algovesta.com/.well-known/oauth-authorization-server
GET https://api.algovesta.com/.well-known/oauth-protected-resource
POST https://api.algovesta.com/mcp/oauth/register
GET  https://api.algovesta.com/mcp/oauth/authorize
POST https://api.algovesta.com/mcp/oauth/token

3つのスコープ

スコープ できること 取得方法
readポートフォリオ、価格、未約定注文、シミュレーション、ポリシープレビュー、レシート検証、チャンネルリプレイ。 注文を出すことはできません。直接作成されます。
paper次に含まれるすべて: readに加え、5,000ドルの仮想残高でペーパーエンジンに対して実行される注文も含みます。 新規キーのデフォルトです。直接作成されます。
live上記すべてに加え、接続済みの取引所とMetaTrader 5口座での実際の注文が可能です。第2要素認証が必要です。 有効な認証アプリ(TOTP)コード、またはアカウントのメールアドレスに送信され10分間有効な確認コードが必要です。サーバー側で例外なく強制されます。

スコープには序列があり、 paper を要求するツールは、 read を持つ insufficient_scopeキーを拒否します。したがって、シミュレーション資金と実際の資金の境界は、プロンプトや設定、モデル’の判断ではなく、キー自体が持つ性質なのです。

ツールリファレンス — 全20ツール

これらは、あなたのアシスタントが実際に目にするツールそのものです。読み取り系ツールは事前確認なしに呼び出しても安全です。一方、6つの書き込み系ツールは、対応クライアントでは確認ダイアログを発生させ、そのうち3つ — place_orderclose_positioncancel_order — はアノテーション上でも追加で破壊的操作として明示されています。

ツール スコープ 種別 目的
get_portfolio_contextread読み取り専用接続済みの全口座を1回の呼び出しで取得
get_market_priceread読み取り専用鮮度情報付きのライブ価格
simulate_orderread読み取り専用ポリシー判定を含むドライラン
place_orderpaper / live破壊的ポジションを建てる
close_positionpaper / live破壊的全部または一部をクローズ
modify_positionpaper / live書き込みストップロスとテイクプロフィットを変更
list_open_ordersread読み取り専用未約定の指値注文
cancel_orderpaper / live破壊的未約定注文をキャンセル
compile_policyread読み取り専用平易な言葉のルールをポリシープレビューに変換
verify_receiptread読み取り専用署名とハッシュチェーンを検証
replay_channelread読み取り専用Telegramチャンネルをあなたのルールに対してバックテスト
get_trade_historyread読み取り専用暗号資産、MT5、ペーパーにまたがる決済済み取引とパフォーマンス
compare_venuesread読み取り専用接続済み取引所を、実測した価格とスプレッドでランク付け
list_strategiesread読み取り専用TradingView戦略の一覧; webhook URLは一切返されません
create_strategypaper / live書き込み新しい戦略を作成; 実際の資金での取引実行は常にオフ
update_strategypaper / live書き込み戦略の設定; auto_tradeは拒否されます
backtest_my_signalsreadread-only自分の過去シグナルを別の設定で再生(キュー投入ジョブ)
simulate_policyreadread-only実際にクローズした取引にリスクポリシーを適用(キュー投入ジョブ)
import_tradingview_backtestreadread-onlyTradingViewのエクスポートを実際の手数料とスリッページで再計算(キュー投入ジョブ)
get_job_statusreadread-onlyキュー投入ジョブの進捗と結果

get_portfolio_context

パラメータは一切取りません。認証済みキーに属するすべての取引所口座、すべてのMetaTrader 5口座、そしてペーパー口座を正規化した形式で返します — それ以外は何も返しません。これは、“自分の状況はどうなっている?”という問いを、16回ではなく1回の呼び出しで済ませるためのツールです。

他よりも重要な2つのフィールドがあります。暗号資産口座では、 balanceequity先物ウォレットのみを表します。現物資金は別途 spot_balanceで報告されるため、 balance だけを読むアシスタントは、誤ってあなたに資産がないと結論づけてしまう可能性があります。MetaTrader 5口座では、 positions_sourcelive_ea(ポジションリストがターミナルに対して検証済みであることを意味する)か、 unavailable(ターミナルに到達できなかったことを意味する)のいずれかです。 unavailable の場合、ポジションリストが空であっても、それは 決して “オープンポジションなし”を意味するわけではありません — 不明を意味するのであり、ツールの説明はモデルに対して、あなたを安心させるのではなくその旨を伝えるよう指示しています。

get_market_price

パラメータ: venue, symbol。返り値: {ok, venue, symbol, last, bid, ask, ts, source, age_sec}。価格はおおよそ1秒ごとに更新される共有キャッシュから取得されます。キャッシュミスの場合、サーバーは取引所に対して1回のライブREST呼び出しを行います。値が10秒より古い場合、あるいはまったく取得できない場合は、その旨が明示的に伝えられます — 古い価格が最新の価格であるかのように偽装されることは決してありません。接続済みのどの取引所にもシンボルが存在しない場合、参考情報としてDEX価格が返されることがありますが、その際は、接続済みの取引先ではそれを取引できないという明確な警告が併記されます。

simulate_order

必須: venue, symbol, side, order_type, idempotency_key。実際の注文は送信しません。想定される約定内容、証拠金への影響、ポリシー判定に加え、サーバーが導出した絶対値でのストップロス・テイクプロフィット価格を返します。これは読み取り操作なので、行儀の良いアシスタントは許可を求めずにこれを呼び出し、要約を1回提示したうえで、実際に何かを発注する前に一度だけ確認を求めます。

place_order

必須: venue, symbol, side, order_type, idempotency_key。任意: account, market, size_usd, margin_usd, risk_pct, lots, leverage, sl, tp, sl_pct, tp_pct, take_profits, entry_price.

この idempotency_key idempotency_keyは単なる飾りではありません。同じキーが同一ユーザーから二度届いた場合、保存済みのレスポンスがそのまま返され、 二重に注文が開かれることはありません — これにより、クライアントがタイムアウト後に再試行した場合や、確認の途中でスマートフォンの通信が途切れた場合、モデルが誤ってツールを2回呼び出した場合でも安全です。

サイズ指定は意図的に明示的です。 暗号資産の場合、3つのフィールドのうちちょうど1つを渡します。それぞれ意味が異なります:

フィールド 意味 5倍レバレッジでの例
size_usdポジション価値(想定元本)size_usd=100 → 100ドルのポジション、自己資金20ドル
margin_usd自己資金からの担保額margin_usd=20 → 100ドルのポジション
risk_pct使用する余剰残高の割合 を証拠金として使用。これはストップ距離に基づくリスクサイジングではありません。ストップロスまでの距離は計算に含まれません。risk_pct=1 2,000ドルの残高で → 証拠金20ドル → 100ドルのポジション

外国為替とMetaTrader 5では、サイズは lots で指定され、 leverage は一切送信されません — この商品はレバレッジなしで、サイズはロット数量から決まります。指定したロットサイズはそのまま正確に使用され、都合の良い値に丸められることはありません。ブローカーの制限範囲外の場合、注文は拒否され、許容範囲が返されます。

注文サイズの許容誤差。 取引所は特定のロット刻みしか受け付けないため、要求された数量は最も近い有効なステップに合わせられます。乖離が20%以内であれば注文は実行され、正確な乖離幅が報告されます。20%を超える場合、注文は 実行されず 、代わりにどの近似数量なら実行可能かが具体的な数字で提示されます。この閾値は、直感で選ばれたものではなく、サイジング関数を通じて過去に発注されたすべての実注文を再実行した結果から選定されました。

省略されたフィールドは、保存済みの設定にフォールバックします。 ストップロス、テイクプロフィット、レバレッジを指定しなかった場合、アシスタントはそれらのフィールドを空欄のままにするよう指示されており、サーバー側がパネルに保存された設定値で補完します — 手動パネルやTelegramボットが使うのと同じ値です。レスポンスには、どのフィールドが保存済み設定から補完されたかが prefs_usedで報告されます。これが存在するのは、実測された不具合があったためです:これらのフィールドが必須だった際、モデルは値を独自に作り出さざるを得ず、実際に5件中5件の注文が顧客’自身の設定を上書きしていました。

close_position

必須: venue, symbol, side, idempotency_key。任意: fraction (0より大きく1以下)、 account, ticket。暗号資産とMetaTrader 5の両方で使用できます。クローズはリスクを減らす操作なので、ポリシーウォールがそれをブロックすることは決してありません — ブロックできるのはキルスイッチだけです。同じ冪等キーで10回呼び出しても、クローズは正確に1回だけ実行されます。該当するポジションが存在しない場合は、 POSITION_NOT_FOUND が、その取引先で 実際に オープンになっているポジションとともに返され、アシスタントは当て推量ではなく自ら修正できます。

MetaTrader 5には部分クローズがありません — Expert Advisorは常に全量をクローズします — そのため fraction=1 を使用してください。同じシンボルで複数のMT5ポジションが開いている場合、 ticket が必須になり、対象が曖昧な間は 何もクローズされません.

modify_position

必須: venue, symbol, side, idempotency_key、加えて次の少なくとも一方: new_sl / new_tp. ストップロスは削除できません — ここでも必須SLルールが適用されます。順序も検証されます:ロングの場合は new_sl < mark < new_tpが必要で、ショートの場合はその逆です。片方だけを送信した場合、もう一方は削除されるのではなく現在の値のまま残ります。クローズの場合と同様、MT5チケットが曖昧な場合は何も変更されません。

list_open_orders

任意: venue。未約定の指値注文を order_ref、取引先、シンボル、方向、指値価格、サイズ、作成時刻とともに一覧表示します。

アシスタントに未決済注文の確認を依頼する前に知っておくべき点が一つあります。このツールが追跡する保留中の注文は、ペーパー(模擬)注文帳に存在するものです。MCPを通じてライブ取引所に発注された注文は成行注文として送信されるため、保留状態にとどまらずすぐに約定します。ライブ口座でリストが空である場合、それは何かが消えたのではなく、保留中の注文が存在しないことを意味します。

cancel_order

必須: venue, order_ref, idempotency_key。参照した注文があなたのものでない場合、返答は NOT_FOUND — 他人’の注文が存在することを示唆するような応答は決して返されません。クローズと同様、これはリスクを減らす操作であり、ポリシーウォールによってブロックされることはありません。

compile_policy

必須: natural_text。平易な言葉でルールを書きます — “1回の取引で2%を超えてリスクを取らない、レバレッジは10倍以下、BTCとETHのみ” — するとそれがJSONポリシーにコンパイルされ、 プレビューとして返されます。コンパイル自体が何かを有効化することは決してありません。有効化はパネルから、または POST /api/mcp/policies/{policy_id}/activate経由で行う別個の意図的なステップです。つまり、モデルが会話するだけであなたのルールを緩めることはできません。

verify_receipt

必須: receipt_id。返り値: signature_validchain_valid。両方がtrueの場合にのみ、その操作は検証済みとされます。レシートはed25519で署名され、ユーザーごとにハッシュチェーン化されているため、過去のレシートを改ざんすると、それ以降のすべてのレシートが壊れ、 chain_valid がfalseになります。公開鍵は /mcp/receipts/pubkeyで提供されているため、このエンドポイントを信頼せずに独立して検証できます。古いHMAC時代のレシートは legacy=true.

replay_channel

必須: channel_ref。任意: days (最大90、デフォルト30)、 policy_override。“過去X日間、このTelegramチャンネルを自分のルールの下でフォローしていたらどうなっていたか?”という問いに、過去のシグナルをペーパー方式で再生することで答えます。すべてのシグナルはポリシーウォールを通過するため、拒否されたものは決して発注されません。進捗は replay_progress イベントとして届きます。結果は24時間キャッシュされ、このツールは1時間あたり5回のリプレイに制限されています。出力: {trades:[...], summary:{total_pnl, win_rate, max_drawdown,

get_trade_history

任意: venue, symbol, days (1–365、デフォルト30)、 limit (1–200、デフォルト50)、 market (crypto / forex / paper)。3つのソースすべての決済済み取引を新しい順に1つのリストにまとめ、さらに summary を返します。このサマリーは意図的に控えめです: avg_rr はエントリー・ストップロス・決済がすべて判明している取引からのみ計算され、 rr_sample がその件数を報告します。複数の口座通貨が混在している場合、 total_pnlnull になり、代わりに pnl_by_currency が返されます。手数料はどこにも記録されていないため feenull のままとなり、暗号資産のPnLはグロス(手数料控除前)です。あるソースを読み取れない場合、完全なリストであるかのように短いリストを返す代わりに incomplete_sources がそのソース名を示します。

compare_venues

必須: symbol。任意: market (デフォルトは futures、または spot)、 side。接続済みの各暗号資産取引所について、リアルタイム価格を返します — さらに、bid/askを公開している取引所については、ベーシスポイント単位のスプレッドと、取引所間の価格差も返します。取引所を選ぶことはしません: 発注時には、あなた自身が取引所を指定します。取引手数料、板の厚み、スリッページは basis.not_measured にリストされ、決して推定されることはありません。bid/askを公開していない取引所は、スプレッドがゼロであるかのようにランク付けされるのではなく、 not_comparable_on_spread に表示されます。したがって cheapest_measured は“実測スプレッドが最も低い”ことを意味し、“総合的に最安”を意味するわけではありません。

list_strategies

パラメータはありません。あなたのTradingView戦略を、その設定、 plan_limitcan_create_more とともに返します。 auto_trade は戦略ごとに報告されるため、アシスタントはどの戦略が実際の資金で稼働しているかを教えることができます。webhook URL、デモURL、HMACシークレットはレスポンスから取り除かれます — 公開されるのは webhook_url_configuredhas_hmac_secret のみです。これは、URL自体が認証情報だからです。

create_strategy

任意: name。必須: idempotency_keyauto_trade をオフにした状態でTradingView戦略を作成します。このフィールドはMCP経由では書き込みできないため、新しく作成された戦略は、あなた自身がパネルで有効化するまで実際の注文を発注できません。プランの戦略上限が適用されます — 上限を超えると、何もせずに黙って失敗するのではなく、コード化されたプラン上限エラーを返します。

update_strategy

必須: strategy_idchangesidempotency_key。レバレッジ(1–20にクランプ)、リスク割合(0.1–50%)、ストップロスとテイクプロフィットの割合、トレーリングとブレイクイーブンの設定、許可シンボル、対象口座、戦略がシグナルを受け付けるかどうかを変更します。 auto_tradestatusip_allowlist は拒否され、 refused_fields に返されます。削除はパネルからのみ可能です。 reverse_enabled をオンにすると warning が返されます。これ以降、BUYシグナルがSHORTを建てるようになるためです。

avg_rr, policy_rejections}}
.

backtest_my_signals

任意: days(1–90)、sourcesymbolsmargin_usdleveragesl_pcttp_pctmax_hold_minutestaker_fee_bpspartial_tp。実際に受け取ったシグナルを、メインネットの実際の1分足履歴で2回再生します。1回目は各シグナル本来の損切り・利確・レバレッジで、2回目は指定した設定で実行するため、直接比較できます。job_refを即座に返し、結果はget_job_statusで取得します。すべての結果にcoverage(何件のシグナルを実際にシミュレートできたか、残りはなぜできなかったか)とassumptions(手数料、スリッページ、部分利確、モデル化しない項目)が含まれます。損切りがない、損切りがエントリーの反対側にある、履歴価格データがないシグナルは推測せず、件数を数えてスキップします。

simulate_policy

任意: policy_text(普通の言葉)、rules(コンパイル済み)、days(1–365)。リスクポリシーを実際にクローズした取引に適用し、どれがどの規則で拒否されたか、PnLの差がどうなるかを報告します。job_refを返します。2つの限界が必ず明示されます。注文時点の口座状態に依存する規則(保有ポジション数、日次損失、残高)はゼロで評価されます — その状態はクローズ済み取引から復元できないため、これらの規則は過大ではなく過小に数えられます。またPnLは記録済みの実現損益から取られ、通貨ごとに報告され、通貨をまたいで合算されることはありません。

import_tradingview_backtest

必須: csv_text。任意: taker_fee_bpsslippage_bpsleverage。TradingViewのStrategy Tester(List of Trades)から書き出したCSVを受け取り、実際のコストで計算し直します。エントリーとエグジットの両方にテイカー手数料と実測スリッページを適用します。Pine Scriptは決して実行も解釈もされません — 再計算されるのは書き出された取引リストだけで — 価格はTradingViewが報告したまま保たれます。数量列のない行には手数料を適用できないため楽観的なまま残り、その件数が報告されます。job_refを返します。

get_job_status

任意: job_ref。参照を渡すとそのジョブの状態を、完了していれば結果を返します。引数なしで呼ぶと最近のジョブ一覧を返します。statusPENDINGRUNNINGprogressに進捗率)、DONEFAILED(再試行が予定されています)、DEADCANCELLEDのいずれかです。ジョブは一度に1件ずつ実行されるため、queue_positionが自分の前に何件あるかを示します。自分のものでない参照には、存在しない参照と同じ“見つかりません”という応答が返るので、ジョブ参照を総当たりで調べることはできません。

結果は永久には保持されず、その制限を先に知っておく価値があります。直近に完了した20件のジョブのみが完全な結果を保持し、それより古いものは要約に縮小され、result_pruned: trueとともに返されます。これは詳細な行が失われており、再生成するにはジョブを再実行する必要があることを意味します。すべては30日後に削除されます。バックテストおよびポリシーの実行はアカウントのバックテスト履歴にも記録され、結果には保存先のrun_idが含まれます。

ポリシーウォール

この仕組みこそが、言語モデルにツールを委ねることを正当化できる理由です。あなたのルールは一度JSONにコンパイルされ、固定スキーマに対して検証されたうえで、 サーバー側で決定論的に すべての注文に対して評価されます。モデルはこれらを一切評価せず、回避する方法を目にすることもなく、会話によって緩めるよう説得されることもありません — あなたが焦っているときであっても、たまたま読んだWebページやTelegramメッセージ経由で注入されたプロンプトによってであっても同じです。違反は監査ログへの記録を伴う厳格な拒否となります。

ルール 意味
max_risk_per_trade_pct数値、0–100口座に占める1取引’あたりの上限割合
max_order_size_usd数値 > 0注文金額の絶対上限
max_daily_loss_usd数値 > 0この損失を超えたらその日の取引を停止
max_open_positions整数同時保有数の上限
leverage_cap数値、1–1000自分自身のレバレッジ上限
venue_scope配列AIを指定した取引先に制限
symbol_whitelist配列これらのシンボルのみ取引可能
symbol_blacklist配列これらのシンボルは決して取引しない
allowed_sides配列ロングのみ、ショートのみ、または両方
notes文字列自分用の注釈

スキーマ検証に失敗したコンパイル済みポリシーは、そもそも有効化できません。部分的に有効なポリシーというものは存在しません。

安全性モデル

デフォルトはペーパー新しいキーはすべて paper スコープで、5,000ドルの仮想残高から始まります。実際の資金に到達するには、明示的で独立した操作が必要です。
ストップロスは必須明示的なストップロスも保存済みのデフォルト値も存在しない場合、注文は拒否されます。後から削除することもできません。
冪等性すべての書き込み系ツールは、クライアント側で生成された8文字以上のキーを必要とします。繰り返された場合は、二重に操作を実行するのではなく、保存済みのレスポンスが再生されます。
キルスイッチPOST /api/mcp/freeze はすべてを一度に停止させます。以後、すべてのツールは user_frozen. /unfreeze が解除します。
キー単位の取り消し他のクライアントに影響を与えることなく、1つのクライアントだけを取り消せます。開いているイベントストリームは数秒以内に切断されます。
署名付きレシートすべての操作にed25519署名とユーザーごとのハッシュチェーンが付き、公開鍵に対して検証可能です。
監査ログすべての呼び出しは、ツール名・引数・結果・レイテンシとともに記録され、 GET /api/mcp/audit とパネルの両方で確認できます。
テナント分離ツールはユーザーIDを受け付けません。本人確認は認証済み接続からのみ行われます。
取引専用キー取引所のAPIキーは出金権限なしで作成され、AES-256で暗号化されて保存されます。注文は、取引所側であなたが許可リストに登録する固定のAlgoVesta取引用IPアドレスから送信されます。

レバレッジについて、率直に言うと: AlgoVestaはあなたの口座に対してレバレッジ上限を課しません — 上限を課すのはあなたの取引所であり、あなた自身の上限は leverage_cap ポリシールールで設定できます。MetaTrader 5経由の外国為替はこの経路ではレバレッジなしで、ロット数量でサイズが決まります。ここで“レバレッジは20倍が上限だ”と言う人がいれば、それは存在しないものについて語っています。

エラー

コード HTTP 発生する状況
unauthorized401キーが欠落・無効・取り消し済み
insufficient_scope401ツールがキーの保有スコープより高いスコープを必要とする
forbidden403この口座では許可されていない
user_frozen403キルスイッチが有効
policy_violation403ルールが注文を拒否した。レスポンスにはどのルールかが一覧表示される
idempotency_conflict409同じキーが異なる引数で再利用された
validation_failed422引数の形式が不正、または矛盾している
rate_limited429呼び出し回数が多すぎる; retry_after が含まれる

ドメインレベルの拒否は、トランスポートエラーではなく構造化された結果として届くため、アシスタントはそれに対応できます: VENUE_NOT_CONNECTED, ACCOUNT_REQUIRED, ACCOUNT_AMBIGUOUS, ACCOUNT_NOT_FOUND, POSITION_NOT_FOUND, MISSING_FIELDS, INVALID_SIDE, SL_REMOVAL_FORBIDDEN。エラーメッセージが内部の詳細を漏らすことは決してなく、他の口座について何かを明らかにすることもありません。

レート制限

制限の適用範囲 上限
すべてのツール呼び出し(キー単位)1分あたり60回
place_order1分あたり10回
replay_channel1時間あたり5回(結果は24時間キャッシュ)
liveスコープの確認メール1分あたり1回

ライブイベント

テナントごとに分離されたServer-Sent Eventsストリームが /mcp/events (OAuth)と /u/<key>/events (シークレットリンク)で利用でき、 Last-Event-ID 再接続に対応しているため、切断された接続は最初からやり直すのではなく再開されます。イベントタイプ: fill, policy_rejected, position_closed, sl_hit, tp_hitreplay_progress (チャンネルリプレイ中)。

取引先 — 16取引所とMetaTrader 5

1つの接続ですべてにアクセスできます。ある取引先がAIから利用可能になるのは、AlgoVesta内でそれを接続した後だけです。接続していない取引先を指定した場合は、 VENUE_NOT_CONNECTED が返され、当て推量で処理されることはありません。

取引所 venue の値 市場 パスフレーズの要否
Binancebinance現物、先物不要
Bybitbybit現物、先物不要
OKXokx現物、先物必要
KuCoinkucoin現物、先物必要
Gate.iogateio現物、先物不要
Bitgetbitget現物、先物必要
Krakenkraken現物、先物不要
Coinbasecoinbase現物不要
BingXbingx現物、先物不要
Hyperliquidhyperliquid先物不要
Backpackbackpack現物、先物不要
HTXhtx現物、先物不要
BloFinblofin現物、先物必要
Phemexphemex現物、先物不要
WOO Xwoo現物、先物必要(Application ID)
CoinExcoinex現物、先物不要
MetaTrader 5(FX、貴金属、指数)mt5ロット単位、レバレッジなしの経路ブローカーのログイン情報
ペーパーエンジンpaper5,000ドルの仮想資金

このうち6つ — Binance、Bybit、OKX、Gate.io、KuCoin、Bitget — は、先物・現物の両方で実際の資金を使ってエンドツーエンドで検証済みです。ストップロスとテイクプロフィットが取引所自体に実際に存在し、記録された値と正確に一致することも確認されています。各取引所には固有のクセがあり、その違いは欠陥ではなく意図的なものです:BybitとBitgetは現物で2本目のテイクプロフィット注文を受け付けません。OKXの現物取引は、現物口座が知らぬ間に証拠金口座になってしまうのを防ぐため、生のAPIを経由してルーティングされます。Binanceの現物取引は購入前に最小想定元本を強制します。KuCoinの成行買いはコストモードで発注されます。

現物と先物は常に分離されています。同じシンボルであっても、この2つの市場では別々の行、別々の価格フィード、別々のキーとして扱われます — 一方が他方に混じることは決してありません。

インストール不要のMetaTrader 5

外国為替のために何かをインストールする必要は一切ありません。レンタルするVPSも、自分のマシンで稼働させ続けるMetaTraderターミナルも、取り付けるExpert Advisorも、購入するサードパーティのブリッジ口座も不要です。AlgoVestaは自社の管理サーバー上でMetaTrader 5ターミナルを稼働させ、あなたのブローカーに24時間365日接続し続けます。口座の認証情報を一度入力すれば、それ以降はあなたのAIアシスタントがその口座を取引できます。アシスタントに返されるポジションデータはターミナルに対して検証されており、検証できない場合は、口座が空であるかのように示唆するのではなく、その旨がツールから明示されます。

ロードマップ — 世界の株式

計画中 — まだ利用不可

Interactive Brokers(IBKR)経由での世界の株式取引が計画されており、目標は 世界170銘柄の株式 を、暗号資産や外国為替と同じMCP接続からアクセス可能にすることです。これはロードマップ上の項目であり、 現時点では稼働していません。このページ内でこれについて記載しているのはこの段落のみで、現行のどのツールも株式を取引することはできません。実装された際には、同じツール、同じポリシーウォール、同じレシートのもとで、追加の venue 値として登場する予定です。

実測レイテンシ

これらは実測値であり、マーケティング上の数字ではありません。

段階 実測値
リクエストの受け付けと解析17–67ミリ秒(中央値38ミリ秒)
MetaTrader 5でのエンドツーエンド約1秒(実測849ミリ秒、クローズは702ミリ秒)
暗号資産取引所でのエンドツーエンド約3秒(実測2,785ミリ秒)
ペーパーエンジン中央値318ミリ秒 — 取引所との往復なし

AIクライアント内で費やされる時間 — モデルが考える時間や、あなたが確認する時間 — はこれに含まれておらず、通常はこちらが支配的です。このサーバーは低レイテンシの執行先ではなく、そのようなものとして販売してもいません。

パネルのRESTエンドポイント

AIが自分自身で行うことができない、また行うべきではないすべての操作は、通常のログイン済みセッションの背後にあります。

POST   /api/mcp/keys                            create a key (live requires 2FA)
GET    /api/mcp/keys                            list keys
DELETE /api/mcp/keys/{key_id}                   revoke a key
POST   /api/mcp/live-code                       send the live-scope confirmation code
POST   /api/mcp/freeze  |  /api/mcp/unfreeze    kill switch
GET    /api/mcp/status                          connection status
GET    /api/mcp/policies                        list policies
POST   /api/mcp/policies/compile                compile without activating
POST   /api/mcp/policies/{id}/activate          activate
POST   /api/mcp/policies/{id}/deactivate        deactivate
GET    /api/mcp/audit                           audit log
GET    /api/mcp/receipts                        receipts
GET    /api/mcp/receipts/{receipt_id}/verify    verify one receipt
GET    /api/mcp/pubkey                          receipt public key
GET    /api/mcp/paper  |  POST /api/mcp/paper/reset

必要なもの

MCP接続自体は製品の一部であり、別売りではありません。実際に制限となるのは、AIがアクセスする対象です:ペーパー取引にはアカウントさえあれば十分ですが、ライブ取引には有効な有料プランと、そのプランで許可された接続済み口座が必要です — さらに、実際の資金でのMetaTrader 5ライブ取引には、その口座について明示的にオプトインすることが追加で必要です。取引所キーとMetaTraderアカウントの数のプラン上限は、 料金ページに記載されています。それらが問題になる前に、5,000ドルのペーパー残高ですべてを試すことができます。

よくある質問

はい。 live スコープを持つキーを渡した時点からです。このスコープは第2要素認証の後にのみ発行されます。それまでは、同じアシスタントが同一のツールを使い、5,000ドルのペーパー残高に対して動作するため、実際の資金にアクセスできるようになる前に、ワークフロー全体をリハーサルできます。
いいえ。どんなツールに対しても、そうすべきではありません。あなたのAPIキーはAlgoVesta内にとどまり、暗号化され、出金権限なしで作成されます。アシスタントが保持するのはMCPリンクだけであり、それはスコープが限定され、レート制限があり、ポリシーで検証され、個別に取り消し可能で、取引所から資金を移動させる用途には使えません。
モデルにそう試みさせることはできますが、その試みを成功させることはできません。ルールはJSONにコンパイルされ、リクエストがモデルを離れた後にサーバー側で評価されるため、説得が働きかける対象がそもそも存在しません。違反は拒否され、監査ログに記録されるので、何が試みられたのかを正確に確認できます。
何も二重には発生しません。すべての書き込み系ツールは冪等キーを必要とし、同じキーが繰り返された場合は、再度操作を行うのではなく、保存済みのレスポンスが返されます。これにより、ネットワークタイムアウト後のクライアントの再試行も安全に行えます。
はい。それこそがこの仕組みの目的です。1つの接続で、あなたが接続したすべての取引所口座とすべてのMetaTrader 5口座をカバーし、 get_portfolio_context はそれらすべてを1回の呼び出しで返します。同じ市場に複数の口座を保有している場合、 account パラメータが必須になり、曖昧なリクエストはデフォルトに送られるのではなく拒否されます。
もう上書きしません。これは仮説上の話ではなく、実際に存在したバグでした。以前はこれらのフィールドが必須だったため、モデルは値を作り出さざるを得ず、実測の結果、顧客の設定が知らぬ間に上書きされていたことが判明しました。現在はアシスタントに対し、指定されなかったフィールドは空欄のままにするよう指示されており、サーバー側が保存済みのパネル設定から補完し、どれを使用したかを報告します。
いずれも不要です。AlgoVestaは自社の管理サーバー上でMetaTrader 5を稼働させ、あなたのブローカーに24時間365日接続します。口座情報を一度入力するだけで、インストールもレンタルも再起動も必要ありません。
いいえ。誰の取引もミラーリングされることはありません。あなたは自分自身のアシスタントに指示を出し、すべての注文はあなた自身のルールに照らしてチェックされ、事後にすべての操作を監査ログと署名付きレシートチェーンを通じて確認・検証できます。
パネルのキルスイッチを使用するか、 POST /api/mcp/freezeを使用します。以後、すべてのツールは user_frozen を返し続け、解除するまでその状態が続きます。1つのクライアントだけを遮断したい場合は、そのキーだけを取り消してください — 他のクライアントはそのまま動作を続けます。
それらの製品がカスタムMCPコネクタを提供していないためです。GeminiはCLIでのみ対応しており、ChatGPTはデベロッパーモードを通じて有料プランでのみ提供しています。どちらもAI製品側の制限であり、このサーバーに限らずすべてのMCPサーバーに当てはまります。Claude、Claude Code、Cursorにはそのような制限はありません。
はい。各操作は、直前のレシートとハッシュチェーンでつながったed25519署名付きレシートを返します。検証は verify_receipt ツールで行うか、 /mcp/receipts/pubkeyにある公開鍵に対して独立して行えます。古いレシートを改ざんすると、それ以降のすべてのレシートのチェーンが壊れます。これこそが、改ざんを検出可能にしている仕組みです。
できません。しかもそれは、設定ミスが起こりうる権限チェックによるものではありません。ツールには本人確認用のパラメータがそもそも存在しません — 口座は認証済み接続そのものから導出されるため、攻撃者や混乱したモデルが他人にアクセスするために渡せる引数自体が存在しないのです。
現時点ではできません。現在稼働しているのは暗号資産とMetaTrader 5の外国為替です。Interactive Brokers経由での、170銘柄を目標とする世界の株式取引は計画中であり、同じツールと同じポリシーウォールのもとで追加の取引先の値として登場する予定です。

AIアシスタントをあなたの口座に接続する

5,000ドルのペーパー残高から始めましょう。カードは不要、インストールも不要で、live側の境界はあなたが意図的に開くまで閉じたままです。

無料アカウントを作成 概要を見る

関連: AIアシスタント向けMCP · MCP取引サーバー: Claude/ChatGPTを16取引所+MT5に接続 · 対応取引所 · MetaTrader 5 外国為替 · TradingView自動化 · MCPトレーディングサーバーとは何か · セキュリティ · 料金.

取引にはリスクが伴います。自動化はそのリスクを取り除くものではなく、AIアシスタントは投資助言ではありません。まずはペーパーで始めてください。