docs
Get startedTroubleshootingPaymentsWebhooksAgent paymentsSwop MCPOviIdentity (swop.id)SwivyRPC (preview)API reference

Control your agent via MCP

Read your agent's strategies, talk to it, approve its proposals and change its settings from ChatGPT, Claude, Grok or your own code.

Four Swop MCP tools give an AI assistant (or your own program) the same control over your Ovi trading agent that you have in the Swop app. They're on the full endpoint, https://mcp.swopme.co/mcp, not on /mcp/commerce.

ToolScopeWhat it does
swop_get_my_agentagent.readAutonomy, venue permissions and caps, vault, strategies, playbook files, brain settings, recent activity, pending proposals and confirmations. Can also return one playbook file, or preview copying a Hyperliquid trader
swop_resolve_strategy_marketsagent.readTurns "gold, ETH and Nvidia" into the live perps markets a strategy can trade. Read-only
swop_message_my_agentagent.writeSends a chat message and returns the agent's reply, as if typed in the app
swop_update_my_agentagent.writeStarts, stops, revises or refocuses strategies; sets autonomy, caps and venues; edits the playbook; mirrors a trader; approves or rejects proposals

Set up the connector with the MCP quickstart, and grant agent.read and agent.write when you sign in.

Things to ask your assistant

  • "How is my agent doing? What's it running?"
  • "Pause my BTC strategy."
  • "Show me what my agent is proposing and approve the first one." (the assistant shows you the preview and waits for your yes)
  • "Broaden my strategy to gold and ETH perps." (swop_resolve_strategy_markets, then a revise_strategy preview)
  • "Lower my daily cap to $100." (narrowing changes apply immediately)

From your own code

// `client` is a connected, signed-in MCP client (see /docs/mcp/build-an-agent)
const overview = JSON.parse(
  (await client.callTool({ name: 'swop_get_my_agent', arguments: {} })).content[0].text,
);
console.log(overview.pendingProposals);

const reply = await client.callTool({
  name: 'swop_message_my_agent',
  arguments: { message: 'Summarise today in two lines.' },
});
console.log(reply.content[0].text);

Changing settings

swop_update_my_agent takes an action. Some actions narrow risk and apply at once; anything that adds risk or moves money returns a preview that must be confirmed.

Applies immediatelyNeeds a preview and your yes
stop_strategystart_strategy
set_autonomy to proposalset_autonomy to full
update_station that lowers caps or disables venuesupdate_station that raises caps or enables venues
update_strategy_focusrevise_strategy (always previews, with before and after)
write_playbook, update_brainmirror (copy a Hyperliquid trader)
reject_proposalapprove_proposal, confirm_pending

A preview includes a summary, a diff (every line that will change) and a riskNote. Confirm with a second call carrying only previewId and confirm: true. Previews are single-use, expire after five minutes, and only work for the assistant that made them. If the agent's settings changed in between, the confirm fails with 409 so the user never approves a stale diff: preview again.

const p = JSON.parse((await client.callTool({
  name: 'swop_update_my_agent',
  arguments: { action: 'approve_proposal', proposalId },
})).content[0].text);
// show p.summary, p.diff and p.riskNote to the user; on their yes:
await client.callTool({
  name: 'swop_update_my_agent',
  arguments: { previewId: p.previewId, confirm: true },
});

Things to know

  • A bare "yes" in chat isn't a confirmation. swop_message_my_agent refuses messages like "yes" or "confirm". Confirm an armed close or deposit with swop_update_my_agent and action: "confirm_pending".
  • In full autonomy the agent may trade from a chat request. Send only what the user actually asked.
  • Messaging needs AI access. swop_message_my_agent returns 403 with code: "UPGRADE_REQUIRED" unless the account has Swop Premium or meets the SWOP-holding unlock. Reading the agent doesn't.
  • Get ids first. Strategy ids, proposal ids and playbook file names come from swop_get_my_agent.

On this page