three.ws Copy Trading

io.github.nirholas由 GitHub 帳號 nirholas 發布v0.1.4更新於 Oct 24, 2026

Manage copy-trade follows — follow leaders, tune sizing and guard rules, and track fees owed.

已驗證STDIO僅桌面金融商業與電商

概覽

AI 產生的概覽

一個本機 stdio MCP 伺服器,讓助理管理 three.ws 跟單交易:追蹤對象、部位與風控規則、跟單意圖收件匣以及應付費用。

可以做什麼
列出、建立、更新與取消跟單追蹤,包含部位規則與單筆上限、每日預算等風控限制,並可暫停、恢復或停止追蹤。讀取跟單意圖收件匣與歷史,含幣種、方向、計算後的下單量、略過原因與狀態。將待處理意圖標記為已執行(可附成交簽章)或已忽略。查看所追蹤對象的應付費用,或某位追蹤對象的公開彙總收益。
適用情境
當你已在 three.ws 上進行跟單交易,並希望助理協助建立或調整追蹤、檢視待處理的跟單意圖、記錄你在自己錢包完成的成交,以及核對應付費用時使用。尋找追蹤對象不在本伺服器範圍內。
執行需求
需要 Node.js 20 或更新版本,透過 npx 或本機安裝執行。需要 three.ws 帳戶憑證,放在 THREE_WS_API_KEY(API 金鑰或 OAuth 存取權杖),除查詢追蹤對象公開彙總收益外所有工具都需要。需要存取 three.ws 的網路,可用 THREE_WS_BASE 覆寫;選用 THREE_WS_TIMEOUT_MS。
安裝前請注意
THREE_WS_API_KEY 是持有者憑證,README 稱應像現金一樣保管;持有者可對該帳戶的跟單交易進行操作。寫入類工具會建立、修改與軟停止追蹤,並把意圖記錄為已執行或已忽略。伺服器為非託管式,從不代簽交易,執行意圖需在你自己的錢包完成。績效費用則以 $THREE 結算。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 three.ws Copy Trading,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

[three.ws]

@three-ws/copy-mcp

Drive your three.ws copy-trading from any AI agent — follow leaders, tune sizing & guard rules, work the copy-intent inbox, and track fees owed. Headless, non-custodial.

[npm] [license] [node] [MCP Registry] [three.ws]


A Model Context Protocol server that turns the three.ws copy-trading control surface — follow/unfollow leaders, tune guard rules, read your copy-intent inbox, and see fees owed — into agent-drivable tools over stdio. Everything the website's copy dashboard does, headless.

Non-custodial by design. three.ws never signs a transaction or holds your funds. When a leader you follow trades, the engine produces a sized, guard-checked copy INTENT that you (or your agent) act on from your own wallet. Every order is clamped to your per-trade cap and your remaining daily budget, so a runaway leader can never drain you. Performance fees settle in $THREE.

Install

bash
npm install @three-ws/copy-mcp

Or run with npx (no install):

bash
npx @three-ws/copy-mcp

Quick start

Copy trading is account-scoped, so set THREE_WS_API_KEY to a three.ws API key (sk_live_… / sk_test_…) or OAuth access token. Mint one at three.ws/dashboard/developers.

Claude Code, one line:

bash
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 or mcp.json):

json
{	"mcpServers": {		"copy": {			"command": "npx",			"args": ["-y", "@three-ws/copy-mcp"],			"env": { "THREE_WS_API_KEY": "sk_live_xxx" }		}	}}

Inspect the surface with the MCP Inspector:

bash
THREE_WS_API_KEY=sk_live_xxx npx -y @modelcontextprotocol/inspector npx @three-ws/copy-mcp

Discovery (which leaders to follow) lives in @three-ws/intel-mcp → copy_smart_wallets. This server manages the follows you commit to.

Tools

ToolTypeWhat it does
list_subscriptionsread-onlyEvery leader you follow — status, sizing rule, full guard-rule set, perf fee, and live pending/acted counts.
create_subscriptionwrite (idempotent)Follow a leader / re-tune the follow. Defines how their trades size into your wallet. Upserts per leader.
update_subscriptionwrite (idempotent)Pause / resume / stop a follow, or change its sizing & guard rules. Patch by id — only the fields you pass.
cancel_subscriptionwrite (destructive)Soft-stop a follow: no more intents, history preserved. Re-follow later with create_subscription.
get_executionsread-onlyYour copy-intent inbox + history — coin, direction, sized order, skip reason, status, recorded fill.
record_executionwriteMark a pending intent acted (optionally with your fill signature) or dismissed. Never signs for you.
get_earningsread-onlyYour fees owed across the leaders you copy — or, with agent_id, a leader's public aggregate earnings.

All reads return live data (counts, intents, and accruals move between calls), so none are idempotent.

Input parameters

list_subscriptions — none.

create_subscription — leader_agent_id (required, UUID), copier_wallet (required, base58), network (mainnet | devnet, default mainnet), sizing_rule (fixed | multiplier | pct_balance, default fixed), fixed_sol (required for fixed sizing), multiplier (default 0.1), pct_balance (0–100), per_trade_cap_sol (default 0.5), min_order_sol (default 0.02), daily_budget_sol (default 1), max_open_copies (1–100, default 5), mcap_floor_usd, mcap_ceiling_usd, copy_sells (default true), require_safety_pass (default false), min_oracle_score (0–100), perf_fee_bps (0–3000, default 1000), telegram_chat_id.

update_subscription — id (required, UUID) plus any of: status (active | paused | stopped), and the sizing/guard fields from create_subscription (each optional; pass null to clear mcap_floor_usd / mcap_ceiling_usd / min_oracle_score / telegram_chat_id). Only the fields you pass change. leader_agent_id and network cannot be changed here: they identify the subscription, so re-pointing them means creating a new follow with create_subscription.

cancel_subscription — id (required, UUID).

get_executions — status (pending | acted | dismissed | skipped | expired | all, default pending), limit (1–100, default 50).

record_execution — id (required, UUID), action (acted | dismissed), tx_signature (optional, recorded only when acted).

get_earnings — agent_id (optional UUID — provide for a leader's public aggregate; omit for your own rollup), network (mainnet | devnet, default mainnet).

Example

jsonc
// 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  }}
jsonc
// 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": "…"    }  ]}
jsonc
// record_execution — you bought it yourself; log the fill> { "id": "…", "action": "acted", "tx_signature": "5xQ…" }{ "ok": true, "execution": { "id": "…", "status": "acted", "tx_signature": "5xQ…" } }

Requirements

  • Node.js >= 20.
  • A three.ws account credential in THREE_WS_API_KEY (all tools except a leader's public aggregate earnings).
  • Network access to https://three.ws (or your own THREE_WS_BASE).

Environment variables

VariableRequiredDefaultNotes
THREE_WS_API_KEYall tools except get_earnings with agent_id—API key (sk_live_…) or OAuth token. Treat like cash.
THREE_WS_BASEnohttps://three.wsOverride for self-hosting / preview deployments.
THREE_WS_TIMEOUT_MSno20000Per-request timeout in ms.

Errors

A failed tool call returns an MCP error result (isError: true) whose text is a single JSON object: { "ok": false, "error": "<code>", "message": "…" }, plus status on upstream rejections:

errorMeaningRecovery
missing_credentialThe tool needs auth and THREE_WS_API_KEY is unset. Thrown before any request is sent.Set the key.
validation_errorBad arguments caught client-side, e.g. sizing_rule: "fixed" without a positive fixed_sol.Fix the call.
no_changesupdate_subscription was called with only an id.Pass at least one field to change.
not_foundupdate_subscription was given an id that is not one of your subscriptions.Check list_subscriptions.
upstream_errorThe API rejected the request; status carries the HTTP code (400 bad fields, 401 bad/expired credential, 404 no such subscription on cancel_subscription, 409 no such pending intent on record_execution, 429 rate-limited).Act on the message and status.
timeoutNo response within THREE_WS_TIMEOUT_MS.Retry or raise the timeout.
network_errorThe request never reached the API (DNS, offline, TLS).Check connectivity / THREE_WS_BASE.
bad_configTHREE_WS_TIMEOUT_MS is not a positive number. Thrown while the server starts (module load), so the process exits before serving.Fix the env var.

Links


Part of the three.ws SDK suite — 3D AI agents, on-chain identity, and agent payments.
Website · Changelog · GitHub

來源:packages/copy-mcp/README.md,提交 c8f2cde

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

2
  1. v0.1.4最新Oct 10, 2026
  2. v0.1.2Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分