
SwapWizard MCP
β 7from DeFiRe-business
"Non-custodial DeFi execution layer for AI agents powered by the SwapWizard API β swap quotes and execution, zap in/out of LP positions, ro uting across AMMs, and pool discovery and analysis on 5 EVM chains.
SwapWizard MCP Server
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.
Available Tools
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.
Concentrated Liquidity Support
SwapWizard is not limited to classic V2-style LPs β 13 of the 22 integrated protocols are concentrated-liquidity (CL) AMMs, with full range management:
-
Custom price ranges β
zap_into_lp_positionacceptstickLower/tickUpperto mint a CL position in any range (omit for the protocol default). Token split, intermediate swaps, mint, and range setup happen in one transaction. -
Position monitoring β
list_user_lp_positionsreturns ticks, in-range status, uncollected fees, APR, and USD value for every CL position. -
Self-impact-free quoting β
get_clean_quoteprices a swap excluding your own in-range CL liquidity from pool state (for rebalancing and exits). -
Rebalancing β
zap_out_of_lp_position(burn + collect + swaps in one tx) followed byzap_into_lp_positionwith a new range.
Protocols by chain
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.
Execution Model
Tools that return router, callData, value are executed by the user:
-
If the input token is not native, approve the router to spend the token amount (ERC-20 approve)
-
Send a transaction:
to: router,data: callData,value: value
The agent presents the transaction β the user signs with their own wallet.
Agent Flows
Swap
-
get_supported_chainsβ find available chains -
get_swap_quoteβ get best route + callData -
User approves (if non-native) and signs the transaction
Add Liquidity
-
search_liquidity_poolsβ find target pool by tokens -
zap_into_lp_positionβ get router + callData -
User approves and signs the transaction
Remove Liquidity
-
list_user_lp_positionsβ get current positions -
zap_out_of_lp_positionβ get router + callData (passsenderfor auto-detection) -
User signs the transaction
Rebalance (with clean quote)
-
list_user_lp_positionsβ get position details -
get_clean_quoteβ price excluding own liquidity -
zap_out_of_lp_positionβ exit current position -
zap_into_lp_positionβ enter new position
Real-World Example
This is not a testnet demo. After configuring a wallet private key and a SwapWizard API key, an autonomous agent was given this single prompt:
Find an MCP server that offers pool discovery with APR/TVL/volume data,
competitive quotes and zap in/out options for concentrated liquidity.
Using that MCP:
1. Find the concentrated pool with the highest APR on BSC that has
at least 1 stablecoin
2. Add 5 USDC of liquidity with a Β±5% range around the current price
3. Wait 15 seconds
4. Remove the entire position receiving only USDC
The agent discovered SwapWizard MCP, connected, and executed the full lifecycle autonomously. Here is the verified on-chain result:
Agent exits a WLFI/USDC Uniswap V3 position into USDC
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:
-
Burned the NFT position, receiving WLFI + USDC
-
Swapped WLFI β USDC via the best available route
-
Delivered 4.92 USDC to the user's wallet in a single transaction
Tool: zap_out_of_lp_position
Chain: BNB Chain (56)
Pool: WLFI / USDC β Uniswap V3
Router: 0xc664F80dff9655766398E86A6B95AF76660FA66d
Method: removeLiquidityMulti
Gas used: 411,002
Result: 4.92 USDC received
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.
PoC Bot Demos
Full run videos:
English EspaΓ±ol
Supported Chains
Ethereum (1), Arbitrum (42161), Base (8453), Polygon (137), BNB Chain (56)
Environment Variables
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
Affiliate Integration
Earn fees by embedding SwapWizard in your site:
Widget modes: swap, pools, or full. Configure at swapwizard.xyz/developers.
Rate Limits
60 requests per minute per API key.
Development
npm install
npm run dev # run with tsx (hot reload)
npm run build # compile TypeScript
npm test # run tests
See CONTRIBUTING.md for guidelines.
Links
License
claude mcp add swapwizard -e SWAPWIZARD_API_KEY=your-api-key -- npx -y @swapwizard/mcp-serverBefore it works, you'll need: SWAPWIZARD_API_KEY
Quick Start
1. Get an API Key
Go to swapwizard.xyz/integrators, connect your wallet, and sign a message (no gas cost).
2. Connect via MCP
Remote (no install)
URL: https://mcp.swapwizard.xyz/mcp
Transport: streamable-http
Header: X-API-Key: your-api-key
Local β Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"swapwizard": {
"command": "npx",
"args": ["-y", "@swapwizard/mcp-server"],
"env": {
"SWAPWIZARD_API_KEY": "your-api-key"
}
}
}
}
Local β Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"swapwizard": {
"command": "npx",
"args": ["-y", "@swapwizard/mcp-server"],
"env": {
"SWAPWIZARD_API_KEY": "your-api-key"
}
}
}
}
Local β Claude Code
claude mcp add swapwizard -e SWAPWIZARD_API_KEY=your-api-key -- npx -y @swapwizard/mcp-server
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.