Skip to main content
Glama

Swapper - XMR to USDC swaps

Server Details

Swap Monero (XMR) <-> native USDC on Arbitrum One. No KYC, no account, no API key. For AI agents.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

Score is being calculated.

Available Tools

11 tools
create_support_ticketOpen support ticketInspect

Stuck or failed swap, or a question: Support answers (get_support_ticket). Follow up with ticketId + replyToken. Never seed phrases or keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNo
messageYesWhat happened (sent what, when, what the user sees), or your question.
orderIdNoord_... of the affected order.
categoryNoShort topic, e.g. "stuck", "refund". Default "agent".
ticketIdNoFollow-up: an existing ticket.
sessionIdNoSession UUID, if known.
replyTokenNoWith ticketId.
walletAddressNoPublic address involved (sending wallet or destination).

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
nextYes
errorNo
stateNo
ticketIdNo
operationYes
replyTokenNo
userMessageNo
create_swapCreate XMR/USDC swap order
Idempotent
Inspect

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. Retry with the same arguments: the default idempotencyKey returns the same order. Fund once, only while payable is true: before signing deposit.payment, get_swap_status {orderId, payment} must return paymentCheck.matches. Next: get_swap_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoDestination, only if the quote had none (next.missing). Never guess.
detailNo
quoteIdYesFrom get_quote's next.arguments.
idempotencyKeyNoOptional; default q_<quoteId>. Reuse on every retry. A custom key: a fresh random UUID per intent.
quoteIntentDigestNoFrom next.arguments: create fails if the quote's terms differ.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
nextYes
errorNo
queueNo
stateNo
depositNo
orderIdNo
payableNo
replayedNo
trackUrlNo
operationYes
recoveredNo
destinationNo
userMessageNo
payableReasonNo
expectedReceiveNo
reconfirmRequiredNo
get_capabilitiesSwapper capabilities
Read-onlyIdempotent
Inspect

Optional. Chains, limits (provider minimum, USD), quote window, idempotency, validation rules, polling and the flow.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
nextYes
errorNo
stateNo
operationYes
userMessageNo
contractVersionNo
get_funding_optionsHow to fund a swap
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNoWhere the funds are now.
amountNoSend amount from a quote, if known.
detailNo
directionNou2x (default): the user sends USDC. x2u: XMR.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
nextYes
errorNo
routeNo
stateNo
matchedNo
checklistNo
directionNo
operationYes
userMessageNo
get_quoteGet XMR/USDC swap quote
Read-onlyIdempotent
Inspect

Step 1. Quote Monero (XMR) <-> native USDC on Arbitrum One; no KYC, account or API key. Read-only; 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 receiveAmount (what they want). Pass to if known; re-quote with {requoteOf}. Next: create_swap with next.arguments; no confirmation step is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoDestination from the user: x2u an Arbitrum One 0x address, u2x a Monero address. Never guess.
basisNoreceiveAmount target met by the estimate (default) or the provider minimum (only if one is published).
chainNoDefault arbitrum (42161).
amountNoWhat the user SENDS (x2u: XMR, u2x: USDC). Digits and one dot; no commas or units.
detailNo
agentKeyNoFrom request_agent_key: lower fee.
directionNoRequired. u2x: send USDC, get XMR. x2u: send XMR, get USDC.
requoteOfNoRe-quote this quoteId's stored parameters; pass it alone.
receiveAmountNoWhat the user wants to RECEIVE (u2x: XMR, x2u: USDC); needs direction.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
nextYes
deltaNo
errorNo
quoteNo
stateNo
targetNo
quoteIdNo
agentKeyNo
directionNo
operationYes
guaranteedNo
acceptUntilNo
destinationNo
userMessageNo
expiresInSecNo
prerequisitesNo
minimumSwapUsdNo
acceptWindowSecNo
belowProviderMinimumNo
get_support_ticketRead support replies
Read-onlyIdempotent
Inspect

Support's answer on your ticket: status, awaiting, thread. Answers take minutes to hours.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNo
ticketIdYes
replyTokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
nextYes
errorNo
stateNo
statusNo
threadNo
repliesNo
awaitingNo
ticketIdNo
operationYes
userMessageNo
get_swap_statusGet swap status
Read-onlyIdempotent
Inspect

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. deposit.payment may be used only while payable is true. Call it before funding or showing a deposit again. payment: what your wallet will sign; sign only if paymentCheck.matches.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNo
verifyNoDestination address (optional extra check).
orderIdYesFrom create_swap or list_swaps.
paymentNoRaw tx hex, tx JSON, monero:/ethereum: URI or calldata.
waitSecNoLong-poll seconds for a change from sinceState (max 25; more is capped).
sinceStateNoState from your previous call.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
nextYes
errorNo
stateNo
statusNo
waitedNo
depositNo
orderIdNo
outcomeNo
payableNo
evidenceNo
receivedNo
terminalNo
trackUrlNo
afterSwapNo
attentionNo
mayChangeNo
operationYes
destinationNo
userMessageNo
paymentCheckNo
payableReasonNo
receivedBelowMinimumNo
list_swapsFind my swaps
Read-onlyIdempotent
Inspect

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNo
sessionIdNoSession UUID, instead of idempotencyKey.
idempotencyKeyNoThe key create_swap used (default q_<quoteId>).

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
nextYes
noteNo
errorNo
stateNo
lookupNo
ordersNo
payableNo
operationYes
userMessageNo
payableReasonNo
plan_swapValidate swap inputs
Read-onlyIdempotent
Inspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoDestination from the user: x2u an Arbitrum One 0x address, u2x a Monero address. Never guess.
amountNoWhat the user sends.
detailNo
directionNou2x or x2u, as the user said it.
receiveAmountNoWhat the user wants to receive.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
nextYes
errorNo
stateNo
questionNo
operationYes
userMessageNo
missingInputsNo
validationErrorsNo
request_agent_keyRequest an agent key (lower fee)Inspect

Free key for a lower fee: pass it as agentKey on get_quote (its order keeps the fee). Keep it private.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNo
contactNo
purposeNo
agentNameNoDefault: your client's name.
referredByNoReferral code of the agent that sent you.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
nextYes
errorNo
keyIdNo
stateNo
welcomeNo
agentKeyNo
operationYes
feePercentNo
userMessageNo
referralCodeNo
standardFeePercentNo
submit_feedbackRate a swapInspect

Optional, after a swap: rating 1-5 and a sentence. Every rating counts; a publishable comment is shown to other agents after review. Returns your referralCode.

ParametersJSON Schema
NameRequiredDescriptionDefault
detailNo
ratingYes
commentNo
orderIdNo
agentNameNo
publishableNoMay other agents read the comment?

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
dataNo
nextYes
errorNo
stateNo
operationYes
feedbackIdNo
userMessageNo
referralCodeNo
verifiedSwapNo

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updates
    • Changedcreate_swap1 field changed
      • addedOutput schema / properties / queue
        Added value: +{
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
    • Changedget_swap_status1 field changed
      • addedOutput schema / properties / afterSwap
        Added value: +{
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
    • Changedrequest_agent_key3 fields changed
      • addedInput schema / properties / referredBy
        Added value: +{
        +  "description": "Referral code of the agent that sent you.",
        +  "pattern": "^ref_[a-f0-9]{10}$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / referralCode
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • addedOutput schema / properties / welcome
        Added value: +{
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
    • Addedsubmit_feedback
  2. 4 tool updates
    • Changedcreate_support_ticket4 fields changed
      • changedInput schema / properties / message / description
        Previous value: -"What happened: what was sent, when, what the user sees."New value: +"What happened (sent what, when, what the user sees), or your question."
      • addedInput schema / properties / replyToken
        Added value: +{
        +  "description": "With ticketId.",
        +  "pattern": "^rt_[a-f0-9]{48}$",
        +  "type": "string"
        +}
      • addedInput schema / properties / ticketId
        Added value: +{
        +  "description": "Follow-up: an existing ticket.",
        +  "pattern": "^[0-9a-fA-F-]{36}$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / replyToken
        Added value: +{
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
    • Changedget_quote2 fields changed
      • addedInput schema / properties / agentKey
        Added value: +{
        +  "description": "From request_agent_key: lower fee.",
        +  "pattern": "^swk_[a-f0-9]{40}$",
        +  "type": "string"
        +}
      • addedOutput schema / properties / agentKey
        Added value: +{
        +  "type": [
        +    "object",
        +    "null"
        +  ]
        +}
    • Addedget_support_ticket
    • Addedrequest_agent_key
  3. 8 tool updates
    • First observedcreate_support_ticket
    • First observedcreate_swap
    • First observedget_capabilities
    • First observedget_funding_options
    • First observedget_quote
    • First observedget_swap_status
    • First observedlist_swaps
    • First observedplan_swap

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Non-custodial USDC <-> bank for AI agents. Free quotes; $0.05 USDC per session via x402; 1% commission itemised in every quote. Own funds only. PT + EU/EEA (not UK). 18+.
    4
    341 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Non-custodial HD wallet API for AI agents. Generate wallets on 6 chains (ETH, Base, SOL, BTC, TRX, XMR), check balances, send crypto, and swap cross-chain via Wagyu aggregator. 10% referral commissions.
    7 npm
    -
  • A
    license
    A
    quality
    A
    maintenance
    Enables cross-chain swap execution across 12 venues and 17 chains, including native Bitcoin as source or destination, with tools for quoting, execution, status, and health checks. No signup, API key, or protocol fee required.
    5
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources