OnlySwaps

Multi-chain DEX meta-aggregator for AI agents. Best prices from 15+ aggregators across 13 chains.

OnlySwaps MCP Server

Multi-chain DEX meta-aggregator for AI agents. Queries 15+ DEX aggregators, returns the best price.

MCP (Model Context Protocol) server that enables AI agents to execute token swaps. We query 0x, 1inch, Paraswap, DODO, Uniswap, Li.Fi, and 10+ more sources, returning only the best available quotes.

Why OnlySwaps?

  • Meta-Aggregator: Queries 15+ DEX aggregators (0x, 1inch, Paraswap, Li.Fi, etc.) and returns the best available price
  • 13 Chains: Ethereum, Base, Arbitrum, Optimism, Polygon, BSC, Avalanche, Solana, and more
  • One Integration: Single API call to access all DEX liquidity across all chains
  • AI-Native: Built for MCP - works with Claude Desktop, Cursor, and any MCP client

Tools

ToolDescription
get_quoteGet swap quotes from multiple DEX aggregators
build_swap_txBuild unsigned swap transaction (ready for client-side signing)
execute_swapExecute swap end-to-end with embedded wallet (Privy)
get_portfolioGet user token holdings across chains
get_tx_statusCheck transaction status
estimate_gasEstimate gas for a transaction
search_tokenSearch tokens by name or symbol

Quick Start

Using npx

npx @onlyswaps/mcp-server

Claude Desktop Configuration

Add to ~/.claude/claude_desktop_config.json:

{ "mcpServers": { "onlyswaps": { "command": "npx", "args": ["-y", "@onlyswaps/mcp-server", "stdio"], "env": { "ONLYSWAPS_API_URL": "https://api.onlyswaps.fyi" } } } }

Hosted Server (SSE)

Connect to our hosted MCP server:

https://mcp.onlyswaps.fyi/mcp

Supported Chains

ChainIDNative Token
Ethereum1ETH
Optimism10ETH
BSC56BNB
Gnosis100xDAI
Polygon137MATIC
Fantom250FTM
zkSync Era324ETH
Base8453ETH
Arbitrum42161ETH
Avalanche43114AVAX
Linea59144ETH
Scroll534352ETH
SolanasolanaSOL

Tool Examples

get_quote

Get the best swap quote across all aggregators.

{ "fromToken": "ETH", "toToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "amount": "1000000000000000000", "chainId": "base" }

Returns:

{ "bestQuote": { "provider": "1inch", "buyAmount": "3245000000", "sellAmount": "1000000000000000000", "estimatedGas": "150000", "priceImpact": "0.05" }, "allQuotes": [...], "meta": { "chain": "Base", "chainId": 8453, "sourcesQueried": 5 } }

build_swap_tx

Build an unsigned transaction ready for client-side signing.

{ "fromToken": "ETH", "toToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "amount": "1000000000000000000", "chainId": "base", "userAddress": "0xYourWalletAddress", "slippage": 1 }

Returns transaction data (to, data, value, gas, chainId) ready to sign.

execute_swap

Execute a swap end-to-end using an embedded Privy wallet. Requires Privy configuration.

{ "fromToken": "ETH", "toToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "amount": "1000000000000000000", "chainId": "base", "userId": "privy-user-id" }

get_portfolio

Get user token holdings across all supported chains.

{ "address": "0xYourWalletAddress", "chainIds": ["ethereum", "base", "arbitrum"] }

get_tx_status

Check the status of a transaction.

{ "txHash": "0xabc123...", "chainId": "base" }

estimate_gas

Estimate gas for a swap transaction.

{ "fromToken": "ETH", "toToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913", "amount": "1000000000000000000", "chainId": "base", "userAddress": "0xYourWalletAddress" }

search_token

Search for tokens by name or symbol.

{ "query": "USDC", "chainId": "base" }

Environment Variables

VariableDefaultDescription
MCP_PORT3001HTTP server port
MCP_TRANSPORThttpTransport mode: http or stdio
ONLYSWAPS_API_URL-OnlySwaps backend API URL
ONLYSWAPS_API_KEY-API key for authenticated access
CORS_ORIGINS*Comma-separated CORS origins
PRIVY_APP_ID-Privy App ID (for execute_swap)
PRIVY_APP_SECRET-Privy App Secret (for execute_swap)
PRIVY_AUTHORIZATION_PRIVATE_KEY-Privy auth key (for execute_swap)

Running Locally

Install dependencies

pnpm install

Build

pnpm build

Run HTTP server

pnpm start

Run stdio mode (for Claude Desktop)

node dist/index.js stdio

Docker

docker build -t onlyswaps-mcp . docker run -p 3001:3001
-e ONLYSWAPS_API_URL=https://api.onlyswaps.fyi
onlyswaps-mcp

API Endpoints

EndpointDescription
GET /healthHealth check
GET /capabilitiesSupported chains and tools
GET /mcpMCP SSE connection endpoint
POST /mcp/messagesMCP message handler

Links

License

MIT

Related Servers