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 分