Wagyu
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Swap crypto across chains, including Monero (XMR): quote, create and track swaps.
| Author | xyz.wagyu |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 963 ms |
| Last measured | 2026-10-26 |
Measured statistics
| Tools measured | 6 |
|---|---|
| Latency, 30-day median (L1) | 963 ms |
| Latency, latest (L1) | 963 ms |
| Safe-call success | 1/1 (100%) |
| 30-day success rate (L2) | 100% |
| Last checked | 2026-10-26 |
| Total checks | 4 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Wagyu": {
"url": "https://mcp.wagyu.xyz",
"transport": "streamable-http"
}
}
}
Measured tools (6)
list_chainsread-onlyChains available right now, which ids can be a source or a destination, and featured tokens.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
search_tokensread-onlyFind a token address and decimals by symbol, name or address.
Parameters:
direction(required) — string — "from" = you send it, "to" = you receive it.limit— integerquery— string — Symbol, name or address, e.g. "USDC".offset— integerchainId— integer — Chain id from list_chains.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
get_quoteread-onlyEstimate a swap. side "from" (default) quotes spending `amount`; side "to" quotes receiving `amount`. A quote is an estimate, not a funding instruction.
Parameters:
fromChainId(required) — integer — Chain id from list_chains.fromToken(required) — string — Token address from search_tokens, or "native" for the chain coin.toChainId(required) — integer — Chain id from list_chains.toToken(required) — string — Token address from search_tokens, or "native" for the chain coin.amount(required) — string — Human decimal amount, e.g. "0.5". Not atomic units.side— stringtoAddress— string — Recipient address; improves the estimate.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
create_swapCreate 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.
Parameters:
fromChainId(required) — integer — Chain id from list_chains.fromToken(required) — string — Token address from search_tokens, or "native" for the chain coin.toChainId(required) — integer — Chain id from list_chains.toToken(required) — string — Token address from search_tokens, or "native" for the chain coin.amount(required) — string — Human decimal amount, e.g. "0.5". Not atomic units.toAddress(required) — string — Recipient address on toChainId.refundAddress— string — Only for a native-coin source such as XMR or TRX; token sources refund to the sender.
Hints: read-only no · destructive no · idempotent no · open-world yes
get_swapread-onlyCurrent status and customerState of an order. Amounts are atomic; *Decimals fields give scale.
Parameters:
orderId(required) — stringsessionId(required) — string — The sessionId create_swap returned.
Hints: read-only yes · destructive no · idempotent yes · open-world yes
set_refund_addressOnly when get_swap shows customerState { kind: "action_required", action: "refund_address" }. Saves one immutable destination; it does not start a transfer by itself.
Parameters:
orderId(required) — stringsessionId(required) — string — The sessionId create_swap returned.refundAddress(required) — string
Hints: read-only no · destructive no · idempotent yes · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.