Quote, create and track crypto swaps across hundreds of coins and networks. No account needed.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Create a swap order and get a one-time deposit address. Nothing moves until the user sends the deposit from their own wallet. Before calling, confirm with the user both currencies and their networks, the amount and the payout address. Afterwards tell the user to send exactly amount of the from currency, on its network, to depositAddress, to add depositExtraId as the memo or tag when it is set, and to keep trackUrl. Show any warnings to the user.
Currency to receive. Currency id from search_currencies, for example btc, eth or usdttrc20.
Currency to send. Currency id from search_currencies, for example btc, eth or usdttrc20.
Amount of the from currency the user will send, as a decimal like "0.05".
The user's wallet address that receives the to currency. It must be on the to currency's network.
Memo or tag for the payout address. Only when the receiving wallet needs one, such as an exchange account with a deposit tag.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http swap https://xswap.to/mcp
Create a swap order and get a one-time deposit address. Nothing moves until the user sends the deposit from their own wallet. Before calling, confirm with the user both currencies and their networks, the amount and the payout address. Afterwards tell the user to send exactly amount of the from currency, on its network, to depositAddress, to add depositExtraId as the memo or tag when it is set, and to keep trackUrl. Show any warnings to the user.
| Argument | Type | Description |
|---|---|---|
| to* | string | Currency to receive. Currency id from search_currencies, for example btc, eth or usdttrc20. |
| from* | string | Currency to send. Currency id from search_currencies, for example btc, eth or usdttrc20. |
| amount* | string | Amount of the from currency the user will send, as a decimal like "0.05". |
| address* | string | The user's wallet address that receives the to currency. It must be on the to currency's network. |
| extraId | string | Memo or tag for the payout address. Only when the receiving wallet needs one, such as an exchange account with a deposit tag. |
{
"type": "object",
"required": [
"from",
"to",
"amount",
"address"
],
"properties": {
"to": {
"type": "string",
"description": "Currency to receive. Currency id from search_currencies, for example btc, eth or usdttrc20."
},
"from": {
"type": "string",
"description": "Currency to send. Currency id from search_currencies, for example btc, eth or usdttrc20."
},
"amount": {
"type": "string",
"description": "Amount of the from currency the user will send, as a decimal like \"0.05\"."
},
"address": {
"type": "string",
"description": "The user's wallet address that receives the to currency. It must be on the to currency's network."
},
"extraId": {
"type": "string",
"description": "Memo or tag for the payout address. Only when the receiving wallet needs one, such as an exchange account with a deposit tag."
}
}
}Estimate how much the user receives for sending an amount, with the minimum and maximum for the pair. Network fees are already taken out of estimatedAmount. The rate floats, so the result is an estimate, not a promise. Show any warnings to the user.
| Argument | Type | Description |
|---|---|---|
| to* | string | Currency to receive. Currency id from search_currencies, for example btc, eth or usdttrc20. |
| from* | string | Currency to send. Currency id from search_currencies, for example btc, eth or usdttrc20. |
| amount* | string | Amount of the from currency, as a decimal like "0.05". |
{
"type": "object",
"required": [
"from",
"to",
"amount"
],
"properties": {
"to": {
"type": "string",
"description": "Currency to receive. Currency id from search_currencies, for example btc, eth or usdttrc20."
},
"from": {
"type": "string",
"description": "Currency to send. Currency id from search_currencies, for example btc, eth or usdttrc20."
},
"amount": {
"type": "string",
"description": "Amount of the from currency, as a decimal like \"0.05\"."
}
}
}Current status of a swap by its id. Statuses: new, waiting (no deposit seen yet), confirming, exchanging, sending, finished, failed, refunded, verifying (paused for a check), expired.
| Argument | Type | Description |
|---|---|---|
| id* | string | Swap id that create_swap returned. |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Swap id that create_swap returned."
}
}
}Find coins and tokens by symbol, name or network and get their currency ids. Each id is one coin on one network: usdttrc20 is USDT on TRON, usdterc20 is USDT on Ethereum. Use the ids in get_quote and create_swap.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Most results to return. |
| query* | string | Symbol, name or network, for example "usdt", "usdt tron" or "solana". |
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Most results to return."
},
"query": {
"type": "string",
"description": "Symbol, name or network, for example \"usdt\", \"usdt tron\" or \"solana\"."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 10, 2026.