MCP

Limits

What it will not do, however the request is phrased.

These are enforced in the server, not in the wording of a tool description, so no prompt talks its way past them.

Not possibleWhy
Withdraw or transfer fundsA withdrawal is signed by the wallet, in a browser. No tool moves money off the exchange.
Sign or broadcast a swapget_swap_quote returns unsigned calldata. The transaction goes to the user's wallet.
Set leverageThere is no leverage tool. Size the order against the collateral you mean to commit.
Accept a wallet private keyNo tool has a field for one. Not now, not ever.
Dry-run an orderThere is no simulation mode and no undo.
Change a referral splitFixed server-side and capped. No parameter raises what a link gives away.
Identify anyoneLeaderboard addresses are shortened and unlinkable. Referees are counted, never named.

Rate limits

Tool calls reach real venues and real quotas, so the endpoint is limited like any other write path rather than treated as free because it arrives over a different protocol. Going over returns the code rate_limited, which is marked retryable: back off a few seconds and try once.

Failures are structured

Nothing throws. Every failure returns JSON with a message, a stable code and a retryable flag, so an agent can branch on the code instead of parsing a sentence.

{
  "error": "Your balance is too low for this amount.",
  "code": "insufficient_balance",
  "retryable": false
}

The code comes from a fixed catalogue. The full list, with the HTTP status and retryable flag for each, is served live at GET https://swapmos.com/mcp under errors.

Never blindly retry a failed place_order. Call list_positions first: a retry after a partial fill doubles the position.

What it is not

  • It is not a custodian. It holds no wallet, and no key of yours ever leaves your own configuration.
  • It is not an advisor. It answers with data and places the orders it is told to place.
  • It keeps no session. Nothing is remembered between calls, which is why every credentialed call carries its own headers.