Free non-custodial EVM swap & bridge quotes with unsigned tx; 0.25% disclosed fee on 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.
List supported chains, chain ids, native tokens and the token symbols accepted by swap_quote (any ERC-20 address also works with amountBaseUnits).
This tool takes no arguments.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http swap https://swap.moneytools.dev/mcp
List supported chains, chain ids, native tokens and the token symbols accepted by swap_quote (any ERC-20 address also works with amountBaseUnits).
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Best-price token swap on one EVM chain (KyberSwap aggregator) or cross-chain bridge (LI.FI, fallback Relay; set toChain). Returns expected and minimum output, price impact, gas, every fee (MoneyTools fee: 0.25% on same-chain swaps, disclosed), safety warnings, and an UNSIGNED transaction (plus exact-amount ERC-20 approval) for your own wallet to sign. Free. Never signs or holds funds.
| Argument | Type | Description |
|---|---|---|
| chain* | string | Source chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche (or chain id) |
| taker | string | Your wallet address (0x...). Needed to get an unsigned transaction; omit for a price-only quote. |
| amount | string | Amount to sell in human units, e.g. "10" (known symbols only) |
| toChain | string | Destination chain for a cross-chain bridge. Omit for a same-chain swap. |
| toToken* | string | Token to buy: symbol or 0x address (on toChain if bridging) |
| fromToken* | string | Token to sell: symbol (USDC, USDT, ETH, WETH, DAI, ...) or 0x address |
| recipient | string | Receiver of the output (defaults to taker) |
| slippageBps | integer | Max slippage in basis points (50 = 0.5%, hard cap 300) |
| allowHighImpact | boolean | Return the transaction even if impact exceeds maxPriceImpactPct |
| amountBaseUnits | string | Amount in token base units (integer). Required for custom token addresses. |
| maxPriceImpactPct | number | Withhold the transaction if estimated price impact/value loss exceeds this percent |
{
"type": "object",
"required": [
"chain",
"fromToken",
"toToken"
],
"properties": {
"chain": {
"type": "string",
"examples": [
"base"
],
"description": "Source chain: ethereum, base, arbitrum, optimism, polygon, bsc, avalanche (or chain id)"
},
"taker": {
"type": "string",
"description": "Your wallet address (0x...). Needed to get an unsigned transaction; omit for a price-only quote."
},
"amount": {
"type": "string",
"examples": [
"10"
],
"description": "Amount to sell in human units, e.g. \"10\" (known symbols only)"
},
"toChain": {
"type": "string",
"examples": [
"arbitrum"
],
"description": "Destination chain for a cross-chain bridge. Omit for a same-chain swap."
},
"toToken": {
"type": "string",
"examples": [
"ETH"
],
"description": "Token to buy: symbol or 0x address (on toChain if bridging)"
},
"fromToken": {
"type": "string",
"examples": [
"USDC"
],
"description": "Token to sell: symbol (USDC, USDT, ETH, WETH, DAI, ...) or 0x address"
},
"recipient": {
"type": "string",
"description": "Receiver of the output (defaults to taker)"
},
"slippageBps": {
"type": "integer",
"default": 50,
"maximum": 300,
"minimum": 1,
"description": "Max slippage in basis points (50 = 0.5%, hard cap 300)"
},
"allowHighImpact": {
"type": "boolean",
"default": false,
"description": "Return the transaction even if impact exceeds maxPriceImpactPct"
},
"amountBaseUnits": {
"type": "string",
"description": "Amount in token base units (integer). Required for custom token addresses."
},
"maxPriceImpactPct": {
"type": "number",
"default": 3,
"description": "Withhold the transaction if estimated price impact/value loss exceeds this percent"
}
},
"additionalProperties": false
}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 3, 2026.