Swap crypto across chains, including Monero (XMR): quote, create and track swaps.
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 durable order that spends `amount` of fromToken. Returns the deposit address and exact amount to send. Confirm with the user first. Never retry after a timeout or error: another call creates another order.
Human decimal amount, e.g. "0.5". Not atomic units.
Token address from search_tokens, or "native" for the chain coin.
Token address from search_tokens, or "native" for the chain coin.
Recipient address on toChainId.
Chain id from list_chains.
Chain id from list_chains.
Only for a native-coin source such as XMR or TRX; token sources refund to the sender.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Create a durable order that spends `amount` of fromToken. Returns the deposit address and exact amount to send. Confirm with the user first. Never retry after a timeout or error: another call creates another order.
| Argument | Type | Description |
|---|---|---|
| amount* | string | Human decimal amount, e.g. "0.5". Not atomic units. |
| toToken* | string | Token address from search_tokens, or "native" for the chain coin. |
| fromToken* | string | Token address from search_tokens, or "native" for the chain coin. |
| toAddress* | string | Recipient address on toChainId. |
| toChainId* | integer | Chain id from list_chains. |
| fromChainId* | integer | Chain id from list_chains. |
| refundAddress | string | Only for a native-coin source such as XMR or TRX; token sources refund to the sender. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fromChainId",
"fromToken",
"toChainId",
"toToken",
"amount",
"toAddress"
],
"properties": {
"amount": {
"type": "string",
"pattern": "^\\d+(\\.\\d+)?$",
"description": "Human decimal amount, e.g. \"0.5\". Not atomic units."
},
"toToken": {
"type": "string",
"minLength": 1,
"description": "Token address from search_tokens, or \"native\" for the chain coin."
},
"fromToken": {
"type": "string",
"minLength": 1,
"description": "Token address from search_tokens, or \"native\" for the chain coin."
},
"toAddress": {
"type": "string",
"minLength": 1,
"description": "Recipient address on toChainId."
},
"toChainId": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Chain id from list_chains."
},
"fromChainId": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Chain id from list_chains."
},
"refundAddress": {
"type": "string",
"description": "Only for a native-coin source such as XMR or TRX; token sources refund to the sender."
}
}
}Estimate a swap. side "from" (default) quotes spending `amount`; side "to" quotes receiving `amount`. A quote is an estimate, not a funding instruction.
| Argument | Type | Description |
|---|---|---|
| side | string | |
| amount* | string | Human decimal amount, e.g. "0.5". Not atomic units. |
| toToken* | string | Token address from search_tokens, or "native" for the chain coin. |
| fromToken* | string | Token address from search_tokens, or "native" for the chain coin. |
| toAddress | string | Recipient address; improves the estimate. |
| toChainId* | integer | Chain id from list_chains. |
| fromChainId* | integer | Chain id from list_chains. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"fromChainId",
"fromToken",
"toChainId",
"toToken",
"amount"
],
"properties": {
"side": {
"enum": [
"from",
"to"
],
"type": "string"
},
"amount": {
"type": "string",
"pattern": "^\\d+(\\.\\d+)?$",
"description": "Human decimal amount, e.g. \"0.5\". Not atomic units."
},
"toToken": {
"type": "string",
"minLength": 1,
"description": "Token address from search_tokens, or \"native\" for the chain coin."
},
"fromToken": {
"type": "string",
"minLength": 1,
"description": "Token address from search_tokens, or \"native\" for the chain coin."
},
"toAddress": {
"type": "string",
"description": "Recipient address; improves the estimate."
},
"toChainId": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Chain id from list_chains."
},
"fromChainId": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Chain id from list_chains."
}
}
}Current status and customerState of an order. Amounts are atomic; *Decimals fields give scale.
| Argument | Type | Description |
|---|---|---|
| orderId* | string | |
| sessionId* | string | The sessionId create_swap returned. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"orderId",
"sessionId"
],
"properties": {
"orderId": {
"type": "string",
"minLength": 1
},
"sessionId": {
"type": "string",
"minLength": 1,
"description": "The sessionId create_swap returned."
}
}
}Chains available right now, which ids can be a source or a destination, and featured tokens.
No arguments.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}Find a token address and decimals by symbol, name or address.
| Argument | Type | Description |
|---|---|---|
| limit | integer | |
| query | string | Symbol, name or address, e.g. "USDC". |
| offset | integer | |
| chainId | integer | Chain id from list_chains. |
| direction* | string | "from" = you send it, "to" = you receive it. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"direction"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "Symbol, name or address, e.g. \"USDC\"."
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0
},
"chainId": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Chain id from list_chains."
},
"direction": {
"enum": [
"from",
"to"
],
"type": "string",
"description": "\"from\" = you send it, \"to\" = you receive it."
}
}
}Only when get_swap shows customerState { kind: "action_required", action: "refund_address" }. Saves one immutable destination; it does not start a transfer by itself.
| Argument | Type | Description |
|---|---|---|
| orderId* | string | |
| sessionId* | string | The sessionId create_swap returned. |
| refundAddress* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"orderId",
"sessionId",
"refundAddress"
],
"properties": {
"orderId": {
"type": "string",
"minLength": 1
},
"sessionId": {
"type": "string",
"minLength": 1,
"description": "The sessionId create_swap returned."
},
"refundAddress": {
"type": "string",
"maxLength": 256,
"minLength": 1
}
}
}