three.ws Copy Trading
NPM · @THREE-WS/COPY-MCP · SCANNED SEP 21
Manage copy-trade follows — follow leaders, tune sizing and guard rules, and track fees owed.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 96 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency35
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- License check failed: the license (SEE LICENSE IN LICENSE) isn't a recognized OSI-approved license. See how to fix → Fail
- Actively maintained (last published 9 days ago).Pass
- Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability67
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 2230 tokens (~318/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
- Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the three.ws Copy Trading MCP server?
three.ws Copy Trading runs locally as an npm package, launched with npx -y @three-ws/copy-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @three-ws/copy-mcp
claude mcp add nirholas-copy-mcp -- npx -y @three-ws/copy-mcp
{
"mcpServers": {
"nirholas-copy-mcp": {
"command": "npx",
"args": [
"-y",
"@three-ws/copy-mcp"
]
}
}
} {
"servers": {
"nirholas-copy-mcp": {
"command": "npx",
"args": [
"-y",
"@three-ws/copy-mcp"
]
}
}
} codex mcp add nirholas-copy-mcp -- npx -y @three-ws/copy-mcp
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"nirholas-copy-mcp": {
"type": "local",
"command": [
"npx",
"-y",
"@three-ws/copy-mcp"
],
"enabled": true
}
}
} openclaw mcp add nirholas-copy-mcp --command npx --arg -y --arg @three-ws/copy-mcp
mcp_servers:
nirholas-copy-mcp:
command: "npx"
args: ["-y", "@three-ws/copy-mcp"] {
"McpServers": {
"nirholas-copy-mcp": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"@three-ws/copy-mcp"
]
}
}
} assistant mcp add nirholas-copy-mcp -t stdio -c npx -a -y @three-ws/copy-mcp
{
"mcpServers": {
"nirholas-copy-mcp": {
"command": "npx",
"args": [
"-y",
"@three-ws/copy-mcp"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 77 to 80. That category is still filling its 30-day observation window: 23 days of observed history at the previous scan, 24 at this one. The score rises as the window fills, whether or not the server changes.
- 19 Sept 26 −3
- Stability: pass → 0.77 functional
- 18 Sept 26 0
- Stability: 0.97 → pass security
- 17 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 16 Sept 26 −1
- Stability: pass → 0.93 functional
- 15 Sept 26 0
- Stability: 0.97 → pass security
- 14 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 21 Sept 2026 · Analysed npm/@three-ws/copy-mcp@0.1.2
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 96 packages
| Packages resolved | 96 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
cancel_subscription Stop a copy-trade subscription ~121
Stop following a leader: transitions the subscription to "stopped" so no new copy intents are generated. DESTRUCTIVE in that it ends an active money-adjacent follow — but it is a SOFT stop: execution history and earnings are preserved, and you can re-follow the same leader later with create_subscription. To merely halt copies temporarily without ending the follow, use update_subscription with status:"paused" instead. Returns the cancellation result. Requires THREE_WS_API_KEY.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | UUID of the subscription to stop (from list_subscriptions). |
No output schema declared.
No examples provided.
create_subscription Follow a leader (create / update subscription) ~662
Follow a copy-trade leader from the authenticated account, defining how their trades are mirrored into your own wallet. MONEY-ADJACENT: this sets how much of YOUR SOL each copy may spend. Non-custodial — three.ws never signs or holds funds; it emits sized, guard-checked copy INTENTS you act on. Idempotent: re-calling with the same leader_agent_id + network updates that subscription (and re-activates it) rather than creating a duplicate. Sizing rule: "fixed" spends fixed_sol per copy; "multiplier" spends multiplier × the leader's entry; "pct_balance" spends pct_balance % of your spendable SOL. Every order is clamped to per_trade_cap_sol and the remaining daily_budget_sol. Returns the created/updated subscription. Requires THREE_WS_API_KEY.
| Name | Type | Req | Description |
|---|---|---|---|
| copier_wallet | string | yes | Your own Solana wallet address that will execute the mirrored trades. Never a private key — non-custodial. |
| copy_sells | boolean | – | Mirror the leader's exits, not just entries (default true). |
| daily_budget_sol | number | – | Max SOL fanned out across copies per UTC day (default 1). Must be > 0. |
| fixed_sol | number | – | SOL spent per copy when sizing_rule="fixed". Required for fixed sizing. |
| leader_agent_id | string | yes | UUID of the public leader (agent with a sniper track record) to follow. |
| max_open_copies | integer | – | Cap on concurrent pending copy intents (1–100, default 5). |
| mcap_ceiling_usd | – | – | Skip coins above this market cap (USD). Omit/null to ignore. |
| mcap_floor_usd | – | – | Skip coins below this market cap (USD). Omit/null to ignore. |
| min_oracle_score | – | – | Skip coins whose Oracle conviction score is below this (0–100). Omit/null to ignore. |
| min_order_sol | number | – | Skip dust copies sized below this, in SOL (default 0.02). Cannot exceed per_trade_cap_sol. |
| multiplier | number | – | Fraction of the leader's entry size to copy when sizing_rule="multiplier" (default 0.1). |
| network | string | – | Solana network (default mainnet). |
| pct_balance | number | – | Percent of your spendable SOL per copy when sizing_rule="pct_balance" (0–100). |
| per_trade_cap_sol | number | – | Hard ceiling on any single copy, in SOL (default 0.5). Must be > 0. |
| perf_fee_bps | integer | – | Leader's performance fee on your realized copy profit, in basis points (0–3000, default 1000 = 10%). Charged above a high-water mark, settled in $THREE. |
| require_safety_pass | boolean | – | Skip a copy when the coin's safety context cannot be confirmed (default false). |
| sizing_rule | string | – | How each copy is sized: fixed | multiplier (× leader entry) | pct_balance (% of your SOL). Default fixed. |
| telegram_chat_id | – | – | Optional Telegram chat ID to receive copy-intent alerts for this subscription. |
No output schema declared.
No examples provided.
get_earnings Copy-trade earnings & fees owed ~204
Read copy-trade performance-fee accounting. Without agent_id: the authenticated account's own fees OWED across every leader they copy — a total plus a per-subscription breakdown (cumulative realized copy profit, closed copies, billable profit above the high-water mark, and the fee). With agent_id: a leader's PUBLIC aggregate earnings (active copiers, accrued fee, total copier profit) — the social-proof figure, no per-copier identity exposed and no API key required. All figures are real: realized copy profit above each subscription's high-water mark at the leader's fee, settled in $THREE. Read-only.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_id | string | – | Optional leader agent UUID. Provide it for that leader's public aggregate earnings; omit it for your own fees-owed rollup (requires THREE_WS_API_KEY). |
| network | string | – | Solana network for the leader aggregate (default mainnet). Ignored for your own rollup. |
No output schema declared.
No examples provided.
get_executions List copy executions (intent inbox) ~199
List the authenticated account's copy executions — the sized, guard-checked copy INTENTS generated when a followed leader trades. Each row carries the coin (mint/symbol/name), the mirrored direction (buy/sell), the planned SOL size, the leader, the safety/quote snapshot used for the decision, the lifecycle status, and any fill signature you recorded. Filter by status: "pending" (actionable now — default), "acted", "dismissed", "skipped" (guard blocked it, with skip_reason), "expired", or "all". Reading refreshes the inbox: stale pending intents are expired automatically. Use record_execution to mark a pending intent acted/dismissed. Read-only; requires THREE_WS_API_KEY.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max rows to return, newest first (1–100, default 50). |
| status | string | – | Lifecycle filter (default "pending" — only intents still actionable). |
No output schema declared.
No examples provided.
list_subscriptions List my copy-trade subscriptions ~109
List the copy-trade subscriptions belonging to the authenticated account — every leader (a trader with a track record) you follow, with their identity, the subscription status (active / paused / stopped), the sizing rule and full guard-rule set, the performance fee, the high-water mark, and live pending/acted copy-intent counts. Use this to audit who you copy and how aggressively before tuning a follow with update_subscription. Returns the subscriptions newest-first. Read-only; requires THREE_WS_API_KEY.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
record_execution Record acting on a copy intent ~207
Resolve a PENDING copy intent (from get_executions) by recording how you handled it. action:"acted" records that you executed the mirrored trade from your own wallet — optionally with the on-chain tx_signature for your records; action:"dismissed" discards the intent without trading. NON-CUSTODIAL: this never signs, sends, or broadcasts a transaction — it only updates the intent's status after YOU traded. Not idempotent: it transitions pending → acted/dismissed once; an intent that already expired or was actioned returns "not_actionable". Returns the updated execution. Requires THREE_WS_API_KEY.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | yes | "acted" = you executed the trade yourself; "dismissed" = you skipped it. |
| id | string | yes | UUID of the pending copy intent (from get_executions with status:"pending"). |
| tx_signature | string | – | Optional Solana transaction signature of your fill, recorded only when action="acted". |
No output schema declared.
No examples provided.
update_subscription Update a copy-trade subscription ~529
Re-tune an existing copy-trade subscription by id. Pause it (stop new copies, keep the follow), resume it, stop it, and/or change its sizing rule and guard rules (caps, daily budget, market-cap band, oracle/safety gates, performance fee). MONEY-ADJACENT: guard changes alter how much of your SOL future copies may spend — non-custodial, intents only. Only the fields you pass change; the rest are preserved. Editing guards on a paused subscription keeps it paused unless you also set status:"active". Idempotent. Returns the updated subscription. Requires THREE_WS_API_KEY.
| Name | Type | Req | Description |
|---|---|---|---|
| copier_wallet | string | – | Change the Solana wallet that executes mirrored trades. |
| copy_sells | boolean | – | Whether to mirror the leader's exits as well as entries. |
| daily_budget_sol | number | – | Max SOL fanned out per UTC day (> 0). |
| fixed_sol | number | – | SOL per copy when sizing_rule="fixed". |
| id | string | yes | UUID of the subscription to update (from list_subscriptions). |
| max_open_copies | integer | – | Cap on concurrent pending copy intents (1–100). |
| mcap_ceiling_usd | – | – | Skip coins above this market cap (USD). Pass null to clear the ceiling. |
| mcap_floor_usd | – | – | Skip coins below this market cap (USD). Pass null to clear the floor. |
| min_oracle_score | – | – | Skip coins below this Oracle conviction score (0–100). Pass null to clear the gate. |
| min_order_sol | number | – | Skip dust copies below this, in SOL. Cannot exceed per_trade_cap_sol. |
| multiplier | number | – | Multiple of the leader's entry when sizing_rule="multiplier". |
| pct_balance | number | – | Percent of your SOL per copy when sizing_rule="pct_balance" (0–100). |
| per_trade_cap_sol | number | – | Hard ceiling on any single copy, in SOL (> 0). |
| perf_fee_bps | integer | – | Leader's performance fee in basis points (0–3000). |
| require_safety_pass | boolean | – | Skip a copy when the coin's safety cannot be confirmed. |
| sizing_rule | string | – | Change the sizing rule: fixed | multiplier | pct_balance. |
| status | string | – | Set the lifecycle status: active (resume), paused (halt new copies, keep the follow), or stopped (end it, keeps history). |
| telegram_chat_id | – | – | Telegram chat ID for copy-intent alerts. Pass null to clear. |
No output schema declared.
No examples provided.
What is the three.ws Copy Trading MCP server?
three.ws Copy Trading is an MCP server listed in the public MCP registry as io.github.nirholas/copy-mcp. Manage copy-trade follows, follow leaders, tune sizing and guard rules, and track fees owed. This page covers its npm package (@three-ws/copy-mcp).
Is the three.ws Copy Trading MCP server safe to use?
three.ws Copy Trading scores 78 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the three.ws Copy Trading MCP server expose?
three.ws Copy Trading exposes 7 tools: list_subscriptions, create_subscription, update_subscription, cancel_subscription, get_executions, and 2 more. Their descriptions and schemas cost roughly 2,031 tokens of context every time the server is loaded.
Is the three.ws Copy Trading MCP server still maintained?
three.ws Copy Trading is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.