The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the SwapWizard listing page.
Model Context Protocol (MCP) server for the SwapWizard DeFi API. Enables AI agents to get swap quotes, manage liquidity, and discover pools across 5 EVM chains.
Non-custodial: every tool returns router, callData, and value — the agent presents the transaction, the user signs with their own wallet. SwapWizard never holds keys.
Go to swapwizard.xyz/integrators, connect your wallet, and sign a message (no gas cost).
Add to claude_desktop_config.json:
Add to .cursor/mcp.json:
| Tool | Description |
|---|---|
get_supported_chains | List supported EVM chains with IDs, gas tokens, DEX list, and position config |
get_supported_dexes | AMMs/DEX sources SwapWizard routes across per chain |
check_api_health | API availability check |
search_liquidity_pools | Discover pools by chain, tokens, type, or GeckoTerminal trending (trending: true + optional timeframe: 5m/1h/6h/24h, default 5m). Returns poolId, symbol, fee tier, protocol, APY, TVL, 24h volume |
list_user_lp_positions | Full LP position details: value, fees, APR, in-range status, impermanent loss |
get_swap_quote | Best swap route across all DEXes. Returns router + callData + value ready to sign |
get_clean_quote | Swap quote excluding the caller's own LP position from pool state (for rebalancing) |
zap_into_lp_position | Single-tx entry into any LP position from any token |
zap_out_of_lp_position | Single-tx exit from any LP position into any token. Pass sender to auto-detect nftManager |
All quote tools (get_swap_quote, get_clean_quote, zap_into_lp_position, zap_out_of_lp_position) accept an optional affiliateCode — an affiliate wallet address registered on-chain with SwapWizard, forwarded to the API so the affiliate fee is paid to that address.
SwapWizard is not limited to classic V2-style LPs — 13 of the 22 integrated protocols are concentrated-liquidity (CL) AMMs, with full range management:
zap_into_lp_position accepts tickLower / tickUpper to mint a CL position in any range (omit for the protocol default). Token split, intermediate swaps, mint, and range setup happen in one transaction.list_user_lp_positions returns ticks, in-range status, uncollected fees, APR, and USD value for every CL position.get_clean_quote prices a swap excluding your own in-range CL liquidity from pool state (for rebalancing and exits).zap_out_of_lp_position (burn + collect + swaps in one tx) followed by zap_into_lp_position with a new range.| Protocol | Type | Ethereum | BSC | Polygon | Base | Arbitrum |
|---|---|---|---|---|---|---|
| Uniswap V3 | CL | ✓ | ✓ | ✓ | ✓ | ✓ |
| Uniswap V4 | CL | ✓ | ✓ | ✓ | ✓ | ✓ |
| SushiSwap V3 | CL | ✓ | ✓ | ✓ | ✓ | ✓ |
| PancakeSwap V3 | CL | ✓ | ✓ | — | ✓ | ✓ |
| PancakeSwap Infinity CL | CL | — | ✓ | — | ✓ | — |
| Aerodrome Slipstream (+ V2) | CL | — | — | — | ✓ | — |
| Camelot (Algebra) | CL | — | — | — | — | ✓ |
| THENA Fusion (Algebra) | CL | — | ✓ | — | — | — |
| QuickSwap V3 (Algebra) | CL | — | — | ✓ | — | — |
| Retro | CL | — | — | ✓ | — | — |
| Fluid DEX | CL | ✓ | ✓ | ✓ | ✓ | ✓ |
| Balancer V3 | CL | ✓ | — | — | ✓ | ✓ |
| Uniswap V2 | Classic | ✓ | ✓ | ✓ | ✓ | ✓ |
| SushiSwap V2 | Classic | ✓ | ✓ | ✓ | ✓ | ✓ |
| PancakeSwap V2 | Classic | — | ✓ | — | ✓ | — |
| PancakeSwap Infinity Bin | Classic | — | ✓ | — | ✓ | — |
| QuickSwap V2 | Classic | — | — | ✓ | — | — |
| Aerodrome Classic | Classic | — | — | — | ✓ | — |
| THENA Classic | Classic | — | ✓ | — | — | — |
| Curve | Classic | ✓ | — | ✓ | — | ✓ |
| Balancer V2 | Classic | ✓ | — | ✓ | ✓ | ✓ |
A built-in Split Router additionally splits orders across multiple DEXes on all 5 chains. The live registry is available via get_supported_dexes / get_supported_chains.
Tools that return router, callData, value are executed by the user:
to: router, data: callData, value: valueThe agent presents the transaction — the user signs with their own wallet.
get_supported_chains — find available chainsget_swap_quote — get best route + callDatasearch_liquidity_pools — find target pool by tokenszap_into_lp_position — get router + callDatalist_user_lp_positions — get current positionszap_out_of_lp_position — get router + callData (pass sender for auto-detection)list_user_lp_positions — get position detailsget_clean_quote — price excluding own liquidityzap_out_of_lp_position — exit current positionzap_into_lp_position — enter new positionThis is not a testnet demo. After configuring a wallet private key and a SwapWizard API key, an autonomous agent was given this single prompt:
The agent discovered SwapWizard MCP, connected, and executed the full lifecycle autonomously. Here is the verified on-chain result:
On-chain proof: 0xede1afbc...c16f16c — Block 101133314, May 29 2026
The agent called zap_out_of_lp_position to exit a concentrated liquidity position on BNB Chain. SwapWizard's router handled the full operation atomically:
The agent requested the quote, the user approved the NFT and signed — no manual parameter tuning, no contract interaction, no slippage calculation. The MCP server auto-detected nftManager, dexName, and liquidityKind from the sender address.
Full run videos:
| English | Español |
|
|
|
Ethereum (1), Arbitrum (42161), Base (8453), Polygon (137), BNB Chain (56)
| Variable | Required | Default | Description |
|---|---|---|---|
SWAPWIZARD_API_KEY | Yes | — | API key from swapwizard.xyz/integrators |
SWAPWIZARD_API_URL | No | https://api.swapwizard.xyz | API base URL |
Earn fees by embedding SwapWizard in your site:
Widget modes: swap, pools, or full. Configure at swapwizard.xyz/developers.
60 requests per minute per API key.
See CONTRIBUTING.md for guidelines.