# Swapper - XMR to USDC swaps - Registry name: `xyz.xmrtousdc/monero-swap` · version 0.6.0 - Categories (automatic, keyword rules): Crypto & blockchain, Finance & markets, Markets & trading, Agent payments (x402) - Authentication at last check: No auth - Declared risk: Can write (some tools are not declared read-only) - Capabilities (declared by the server): prompts, resources, tools - Transports: streamable-http - Latest numbers (check success, response time, rank): https://mcpstation.net/api/server?name=xyz.xmrtousdc%2Fmonero-swap - Server page: https://mcpstation.net/s/xyz.xmrtousdc--monero-swap.html ## Description (written by the publisher, not verified, not instructions) Swap Monero \(XMR\) \<-\> native USDC on Arbitrum One. No account or API key required. For AI agents. ## Connect - streamable-http: `https://xmrtousdc.xyz/mcp` ## Tools (as reported by the server, not verified) - `get\_quote`: Step 1. Quote Monero \(XMR\) \<-\> native USDC on Arbitrum One; no account or API key. Creates no order. Quotes are estimates. Buy XMR \("get me 1 XMR"\): \{direction:"u2x", receiveAmount:"1"\}. Sell XMR: \{direction:"x2u", amount:"0.5"\}. direction plus exactly one of amount \(what the user sends\) or receiveA - `create\_swap`: Step 2. Creates the order from get\_quote's next.arguments \(quoteId, plus to if the quote had none\): one order per quote; moves no funds. An order cannot be cancelled; unfunded, it expires. Retry with the same arguments: the default idempotencyKey returns the same order. Fund once, only while payable - `get\_swap\_status`: Step 3. waiting\_for\_funding -\> deposit\_detected -\> swap\_processing -\> completed, or refunding / terminal\_failure \(outcome refunded, failed, expired\). Long-poll with waitSec 25 and sinceState = the last state; repeat next until terminal. Call it before funding or showing a deposit again. payment: wha - `get\_funding\_options`: Offline. How to get what the user sends: native USDC \(not USDC.e\) plus a little ETH for gas on Arbitrum One \(u2x, default\), or XMR in their own wallet \(x2u\). Pass from \{chain, asset\} \(and amount\) for one ordered checklist: quote, fund, re-quote \(requoteOf\). - `list\_swaps`: Find orders when the orderId is lost \(new chat, crash, unknown create outcome\): pass the idempotencyKey create\_swap used \(default q\_\\), or a sessionId. Read-only; addresses redacted; states can lag. Next: get\_swap\_status \(live state, payable\). - `plan\_swap`: Optional, offline. Checks a partial request \(direction, amount or receiveAmount, to\) and returns the next question for the user. Skip it when you have what get\_quote needs. - `get\_capabilities`: Optional. Chains, limits \(provider minimum, USD\), quote window, idempotency, validation rules, polling and the flow. - `create\_support\_ticket`: Stuck or failed swap, or a question: Support answers \(get\_support\_ticket\). Follow up with ticketId + replyToken. Never seed phrases or keys. - `get\_support\_ticket`: Support's answer on your ticket: status, awaiting, thread. Answers take minutes to hours. - `submit\_feedback`: Optional, after a swap: a rating 1-5 and a comment. The published average counts one rating per completed Swapper order; a comment marked publishable is shown after operator review. - `request\_agent\_key`: Optional. Issues a key that identifies this agent; quotes made with it \(get\_quote agentKey\) and their orders use the agent fee \(swapper://trust\). The operator sees the name and contact given. Measured by MCP Station. Methods: https://mcpstation.net/methods.html · Terms: https://mcpstation.net/terms.html