three.ws Copy Trading について
three.ws Copy Trading は、AI エージェントからコピートレードのフォロー関係を管理できる MCP サーバーです。リーダーのフォロー、サイズ設定とガードルールの調整、支払うべきパフォーマンス手数料の確認ができます。three.ws は取引への署名や資金の保管を行わない非カストディアル型で、利用者は自身のウォレットから注文を実行します。
主な機能
- 01リーダーのフォロー、一時停止、再開、停止
- 02固定額、倍率、残高比率によるサイズ設定
- 03取引ごとの上限と日次予算の制限
- 04実行済みまたは却下済みの状態を持つコピー意図の受信箱
- 05$THREE で決済される未払いのパフォーマンス手数料
活用シーン
- 01リーダーを 1 回あたり 0.05 SOL で固定額フォローし日次予算を設定
- 02履歴を残したままフォローを一時停止または停止
- 03保留中のコピー意図を確認し約定署名を記録
MCP 対応
list_subscriptions、create_subscription、get_executions、record_execution、get_earnings などのツールを公開し、MCP クライアントがフォロー関係の管理、意図の確認、手数料の取得を行えるようにします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @three-ws/copy-mcpTHREE_WS_API_KEYシークレットYour three.ws bearer credential: an API key (sk_live_… / sk_test_…) or OAuth access token. Every copy-trade subscription, intent, and fee is scoped to the account it identifies. Required for all tools except a leader's public aggregate earnings. Mint one at https://three.ws/dashboard/developers. Treat like cash.THREE_WS_BASEBase URL of the three.ws API that serves the copy-trading endpoints. Override only when self-hosting or targeting a preview deployment.THREE_WS_TIMEOUT_MSPer-request timeout in milliseconds for the live copy-trading reads and writes.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
7掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
@three-ws/copy-mcp
あらゆる AI エージェントから three.ws のコピー取引を操作できます。リーダーをフォローし、注文サイズとガードルールを調整し、コピーインテントの受信トレイを管理して、未払い手数料を確認できます。ヘッドレスで、カストディアルではありません。
three.ws のコピー取引の操作機能(リーダーのフォロー/フォロー解除、ガードルールの調整、コピーインテントの受信トレイの確認、未払い手数料の確認)を、stdio 経由でエージェントが操作できるツールにする Model Context Protocol サーバーです。ウェブサイトのコピー取引ダッシュボードでできることを、すべてヘッドレスで実行できます。
設計上、カストディアルではありません。 three.ws がトランザクションに署名したり、資金を預かったりすることはありません。フォローしているリーダーが取引すると、エンジンは注文サイズ調整済みで、ガードチェック済みのコピー INTENTを生成し、あなた自身のウォレットから、あなた(またはあなたのエージェント)が実行します。注文はすべて、1 回の取引あたりの上限と残りの日次予算の範囲内に制限されるため、リーダーが暴走しても資金が枯渇することはありません。パフォーマンス手数料は $THREE で精算されます。
インストール
npm install @three-ws/copy-mcp
または、インストールせずに npx で実行します。
npx @three-ws/copy-mcp
クイックスタート
コピー取引はアカウントに紐づくため、three.ws の API キー(sk_live_… / sk_test_…)または OAuth アクセストークンを THREE_WS_API_KEY に設定してください。three.ws/dashboard/developers で発行できます。
Claude Code の場合は 1 行です。
claude mcp add copy --env THREE_WS_API_KEY=sk_live_xxx -- npx -y @three-ws/copy-mcp
Claude Desktop / Cursor の場合(claude_desktop_config.json または mcp.json):
{
"mcpServers": {
"copy": {
"command": "npx",
"args": ["-y", "@three-ws/copy-mcp"],
"env": { "THREE_WS_API_KEY": "sk_live_xxx" }
}
}
}
MCP Inspector で利用可能な機能を確認します。
THREE_WS_API_KEY=sk_live_xxx npx -y @modelcontextprotocol/inspector npx @three-ws/copy-mcp
フォローするリーダーの探索は
@three-ws/intel-mcpのcopy_smart_walletsで行います。このサーバーでは、フォローすることを決めたリーダーを管理します。
ツール
| ツール | 種類 | 内容 |
|---|---|---|
list_subscriptions | 読み取り専用 | フォローしているすべてのリーダーについて、ステータス、注文サイズルール、すべてのガードルール、パフォーマンス手数料、保留中/実行済みの現在の件数を確認できます。 |
create_subscription | 書き込み(冪等) | リーダーをフォローする、またはフォロー設定を調整します。その取引を自分のウォレットに反映する注文サイズを定義します。リーダーごとに作成または更新します。 |
update_subscription | 書き込み(冪等) | フォローを一時停止/再開/停止するか、注文サイズとガードルールを変更します。ID でパッチを適用し、指定したフィールドのみを更新します。 |
cancel_subscription | 書き込み(破壊的) | フォローをソフト停止します。インテントは生成されなくなりますが、履歴は保持されます。後で create_subscription を使って再度フォローできます。 |
get_executions | 読み取り専用 | コピーインテントの受信トレイと履歴を確認できます。コイン、方向、注文サイズ、スキップ理由、ステータス、記録された約定内容が含まれます。 |
record_execution | 書き込み | 保留中のインテントを実行済み(任意で約定署名を指定)または却下済みとして記録します。あなたに代わって署名することはありません。 |
get_earnings | 読み取り専用 | コピーしているリーダーからの未払い手数料を確認できます。agent_id を指定すると、リーダーの公開集計収益を確認できます。 |
読み取りはすべて最新データを返します(件数、インテント、未払い額は呼び出しの間に変化するため、冪等な読み取りはありません)。
入力パラメーター
list_subscriptions — なし。
create_subscription — leader_agent_id(必須、UUID)、copier_wallet(必須、base58)、network(mainnet | devnet、デフォルトは mainnet)、sizing_rule(fixed | multiplier | pct_balance、デフォルトは fixed)、fixed_sol(fixed サイズ設定で必須)、multiplier(デフォルトは 0.1)、pct_balance(0~100)、per_trade_cap_sol(デフォルトは 0.5)、min_order_sol(デフォルトは 0.02)、daily_budget_sol(デフォルトは 1)、max_open_copies(1~100、デフォルトは 5)、mcap_floor_usd、mcap_ceiling_usd、copy_sells(デフォルトは true)、require_safety_pass(デフォルトは false)、min_oracle_score(0~100)、perf_fee_bps(0~3000、デフォルトは 1000)、telegram_chat_id。
update_subscription — id(必須、UUID)と、次のいずれかのフィールド:status(active | paused | stopped)、および create_subscription のサイズ設定/ガード用フィールド(各フィールドは任意。mcap_floor_usd / mcap_ceiling_usd / min_oracle_score / telegram_chat_id をクリアするには null を指定してください)。指定したフィールドのみが変更されます。leader_agent_id と network はここでは変更できません。これらはサブスクリプションを識別するため、フォロー先を変更する場合は create_subscription で新しいフォローを作成してください。
cancel_subscription — id(必須、UUID)。
get_executions — status(pending | acted | dismissed | skipped | expired | all、デフォルトは pending)、limit(1~100、デフォルトは 50)。
record_execution — id(必須、UUID)、action(acted | dismissed)、tx_signature(任意。acted の場合のみ記録されます)。
get_earnings — agent_id(任意の UUID。リーダーの公開集計を取得する場合に指定し、自分の集計を取得する場合は省略します)、network(mainnet | devnet、デフォルトは mainnet)。
例
// create_subscription — follow a leader, 0.05 SOL per copy, capped, safety-gated
> {
"leader_agent_id": "8f3c…-uuid",
"copier_wallet": "7Np…YourWallet",
"sizing_rule": "fixed",
"fixed_sol": 0.05,
"per_trade_cap_sol": 0.1,
"daily_budget_sol": 0.5,
"mcap_floor_usd": 50000,
"require_safety_pass": true
}
{
"ok": true,
"subscription": {
"id": "…",
"status": "active",
"network": "mainnet",
// the create/update responses return the raw subscription row, so leader
// name/image are null here; list_subscriptions joins the leader profile
// and also adds pending_count / acted_count per row
"leader": { "agent_id": "8f3c…", "name": null, "image": null, "wallet": null },
"copier_wallet": "7Np…YourWallet",
"sizing": { "rule": "fixed", "fixed_sol": 0.05, "multiplier": 0.1, "pct_balance": 0 },
"guards": {
"per_trade_cap_sol": 0.1, "min_order_sol": 0.02, "daily_budget_sol": 0.5,
"max_open_copies": 5, "mcap_floor_usd": 50000, "mcap_ceiling_usd": null,
"copy_sells": true, "require_safety_pass": true, "min_oracle_score": null
},
"perf_fee_bps": 1000
}
}
// get_executions — the actionable inbox
> { "status": "pending", "limit": 5 }
{
"ok": true,
"status": "pending",
"count": 1,
"executions": [
{
"id": "…",
"status": "pending",
"leader": { "name": "…" },
"coin": { "mint": "…", "symbol": "…", "name": "…" },
"direction": "buy",
"planned_sol": 0.05,
"expires_at": "…"
}
]
}
// record_execution — you bought it yourself; log the fill
> { "id": "…", "action": "acted", "tx_signature": "5xQ…" }
{ "ok": true, "execution": { "id": "…", "status": "acted", "tx_signature": "5xQ…" } }
要件
- Node.js >= 20。
THREE_WS_API_KEYに設定する three.ws アカウントの認証情報(リーダーの公開集計収益を除くすべてのツールで必要です)。https://three.ws(または独自のTHREE_WS_BASE)へのネットワークアクセス。
環境変数
| 変数 | 必須 | デフォルト | 備考 |
|---|---|---|---|
THREE_WS_API_KEY | agent_id を指定した get_earnings 以外のすべてのツール | — | API キー(sk_live_…)または OAuth トークンです。現金同様に取り扱ってください。 |
THREE_WS_BASE | いいえ | https://three.ws | セルフホスト/プレビュー環境でのデプロイ用の上書き値です。 |
THREE_WS_TIMEOUT_MS | いいえ | 20000 | リクエストごとのタイムアウト(ミリ秒)です。 |
エラー
ツール呼び出しが失敗すると、MCP エラー結果が返されます(isError: true)。そのテキストは単一の JSON オブジェクト { "ok": false, "error": "<code>", "message": "…" } で、上流から拒否された場合は status も含まれます。
error | 意味 | 対処方法 |
|---|---|---|
missing_credential | ツールに認証が必要ですが、THREE_WS_API_KEY が設定されていません。リクエスト送信前に発生します。 | キーを設定します。 |
validation_error | sizing_rule: "fixed" に対して正の値の fixed_sol が指定されていない場合など、クライアント側で引数の誤りが検出されました。 | 呼び出しを修正します。 |
no_changes | update_subscription が id のみを指定して呼び出されました。 | 変更するフィールドを少なくとも 1 つ指定します。 |
not_found | update_subscription に指定された id が、あなたのサブスクリプションのいずれにも該当しません。 | list_subscriptions を確認します。 |
upstream_error | API がリクエストを拒否しました。status には HTTP コードが含まれます(400 はフィールドの誤り、401 は認証情報の誤りまたは期限切れ、cancel_subscription での 404 はサブスクリプションが存在しない場合、record_execution での 409 は保留中のインテントが存在しない場合、429 はレート制限)。 | メッセージと status に応じて対処します。 |
timeout | THREE_WS_TIMEOUT_MS 以内に応答がありませんでした。 | 再試行するか、タイムアウトを延長します。 |
network_error | リクエストが API に到達しませんでした(DNS、オフライン、TLS)。 | 接続状態と THREE_WS_BASE を確認します。 |
bad_config | THREE_WS_TIMEOUT_MS が正の数ではありません。サーバーの起動時(モジュールの読み込み時)に発生するため、リクエストの処理を開始する前にプロセスが終了します。 | 環境変数を修正します。 |
リンク
- ホームページ:https://three.ws
- 変更履歴:https://three.ws/changelog
- 課題:https://github.com/nirholas/three.ws/issues
- ライセンス:Apache-2.0。詳しくは LICENSE をご覧ください。
3D AI エージェント、オンチェーン ID、エージェント決済を提供する three.ws SDK スイートの一部です。
ウェブサイト · 変更履歴 · GitHub
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。