Agent control
Read, talk to and manage the user’s own AI trading agent (Ovi).
4 tools. Generated from the Swop MCP server’s own tools/list (server version 0.2.2), so names, inputs and limits match what your client sees.
swop_resolve_strategy_markets
Resolve strategy markets · Sign-in: agent.read · /mcp only · Read-only
Resolve a requested perps universe such as gold, ETH and any stock to supported live Hyperliquid market IDs. Read-only; never places trades. Show the resulting market list when proposing a strategy revision. Stock discovery covers supported equity underlyings, not all builder-DEX assets. Requires agent.read.
| Input | Type | Required | Description |
|---|---|---|---|
request | string | Yes | min length 1; max length 2000 |
swop_get_my_agent
See my AI trading agent's strategies and settings · Sign-in: agent.read · /mcp only · Read-only
The linked user's own AI trading agent (Goldman): what it is running and how much rope it has. Use it for "how is my agent doing", "what is my strategy", "what is it allowed to trade". Returns autonomy level, venue permissions and caps, vault, strategies (status, mirror settings, performance), playbook files, brain settings, recent activity, pending proposals and pending confirmations. Pass playbookFile to read one playbook in full, or mirrorLeader to preview copying a Hyperliquid trader. Read-only: to change anything use swop_update_my_agent; to chat use swop_message_my_agent.
| Input | Type | Required | Description |
|---|---|---|---|
playbookFile | string | No | A playbook file name from playbookFiles, e.g. "strategy.md", to return its full markdown |
mirrorLeader | string | No | A Hyperliquid 0x address to preview: the leader's book and the orders the vault would place (pattern ^0x[a-fA-F0-9]\{40\}$) |
swop_message_my_agent
Talk to my AI trading agent · Sign-in: agent.write · /mcp only · Changes or moves things
Send the user's message to their AI trading agent (Goldman) and return its reply, as if they typed it in the agent's chat: questions, market analysis, drafting a plan, editing the playbook, pause, focus. If Goldman answers with a proposal, approve or reject it with swop_update_my_agent. A bare confirmation ("yes", "confirm") is refused; confirm an armed close or deposit with swop_update_my_agent action confirm_pending. With autopilot on Goldman may trade from a chat request, so send only what the user asked.
| Input | Type | Required | Description |
|---|---|---|---|
message | string | Yes | The user's message to Goldman (min length 1; max length 2000) |
swop_update_my_agent
Manage my AI trading agent: strategies, autonomy, caps, playbook · Sign-in: agent.write · /mcp only · Preview, then confirm · Changes or moves things
Manage the user's AI trading agent (Goldman): start, stop, revise or refocus a strategy, set how autonomous it is, change its caps and venues, edit its playbook or brain, mirror a trader, approve or reject its proposals. Narrowing changes apply immediately: stop_strategy, set_autonomy to proposal, lowering caps, update_strategy_focus, write_playbook, update_brain, reject_proposal. Use revise_strategy to edit a specific existing plan’s market universe, entry/exit rules and rationale. This always returns a before/after preview, including when the plan is already running. Anything that adds risk or moves money returns a preview instead (revise_strategy, set_autonomy full, raising caps or enabling venues, start_strategy, mirror, approve_proposal, confirm_pending): show the user its summary, every changes line and the riskNote, get an explicit yes, then call again with only previewId and confirm: true. Previews are single-use and expire in 5 minutes. Get ids and current values from swop_get_my_agent first.
| Input | Type | Required | Description |
|---|---|---|---|
action | "set_autonomy" | "update_station" | "start_strategy" | "stop_strategy" | "update_strategy_focus" | "revise_strategy" | "write_playbook" | "update_brain" | "mirror" | "approve_proposal" | "reject_proposal" | "confirm_pending" | No | The change to make. Omit only when confirming a preview |
level | "full" | "proposal" | No | set_autonomy: full = trades without asking; proposal = asks first |
access | object (map) | No | update_station: per-venue switches to change; omitted venues keep their value |
limits | object (map) | No | update_station: caps to change, e.g. { "dailyCapUsd": 200, "maxLeverage": 3 }; null = uncapped |
strategyId | string | No | start_strategy / stop_strategy / update_strategy_focus / revise_strategy |
assets | array of string | No | update_strategy_focus: market symbols, e.g. ["BTC","ETH"] (max items 12) |
revision | object (title, assets, brief, entryCondition, exitCondition, selectionCriteria, executionPlan, riskControls) | No | revise_strategy: explicit patch to the existing plan; omitted fields stay unchanged. Read current rules first and update contradictory ETH-only wording when broadening markets. Resolve exact assets with swop_resolve_strategy_markets. Limits, permissions and runtime are not editable here. |
predictionFocus | array of string | No | update_strategy_focus: sports/leagues to focus on |
entryBand | object (minEntryPrice, maxEntryPrice) or null | No | update_strategy_focus: prediction odds band in cents or fractions; null clears |
fileName | string | No | write_playbook: file from playbookFiles, e.g. "risk.md" |
content | string | No | write_playbook: the FULL new markdown (replaces the file) (max length 16000) |
tier | "fast" | "deep" | No | update_brain: model tier |
memoryEnabled | boolean | No | update_brain |
feedSharingEnabled | boolean | No | update_brain: post trades to the social feed |
leaderAddress | string | No | mirror: Hyperliquid 0x address to copy (omit to keep the current leader) |
scaleMode | "equity" | "fixed" | "max" | No | mirror: equity = your share of their equity; fixed = scaleMultiplier x their size; max = whole vault at their leverage |
scaleMultiplier | number | No | mirror: with scaleMode fixed, e.g. 0.05 = 5% of their size (max 100; > 0) |
leverageMode | "cap" | "skip" | No | mirror: cap their leverage at maxLeverage, or skip positions above it |
maxLeverage | integer | No | mirror: leverage ceiling (> 0) |
coins | array of string | No | mirror: only copy these markets (empty = all) |
driftPct | number | No | mirror: rebalance drift threshold % (min 1; max 50) |
copyTriggers | boolean | No | mirror: copy the leader's take-profit/stop-loss |
label | string | No | mirror: display label (max length 40) |
start | boolean | No | mirror: start it now |
proposalId | string | No | approve_proposal / reject_proposal: from pendingProposals |
reason | string | No | reject_proposal: optional reason (max length 300) |
previewId | string | No | From a preview response |
confirm | boolean | No | true ONLY after the user explicitly approved that preview |