Live cross-DEX crypto prices for your AI agent — per-venue pool price, pool liquidity and the gross cross-venue spread on 6 EVM chains, read straight from on-chain pool state.
Venues: PancakeSwap (v2 + v3), Uniswap v3, SushiSwap, QuickSwap, Biswap, ApeSwap, BaseSwap, Trader Joe, Pangolin — every v2-style pool and every v3 fee tier separately, because a $12k 1% pool and a $19M 0.01% pool are not the same quote.
Nothing is modelled, estimated or backfilled. Every payload states its own block number and carries its own scope note, so an agent that quotes a figure also has the caveats attached to it. Works with no API key against a free hourly public snapshot.
Nothing to clone or build — your MCP client fetches the package. Requires Node 18+.
claude_desktop_config.json — macOS ~/Library/Application Support/Claude/,
Windows %APPDATA%\Claude\:
{
"mcpServers": {
"arb-dex": {
"command": "npx",
"args": ["-y", "arb-dex-mcp"],
"env": {
"RAPIDAPI_KEY": "your-rapidapi-key-here"
}
}
}
}
Restart Claude Desktop; the six tools appear under the connectors icon. Drop the
env block entirely to run keyless.
claude mcp add arb-dex --env RAPIDAPI_KEY=your-key -- npx -y arb-dex-mcp
# keyless
claude mcp add arb-dex -- npx -y arb-dex-mcp
Then /mcp to confirm it connected.
~/.cursor/mcp.json (global) or .cursor/mcp.json (per project) — same
JSON block as Claude Desktop above.
Command npx, args ["-y", "arb-dex-mcp"], transport
stdio, optional env RAPIDAPI_KEY.
Ask: "What is WBNB/USDT trading at on every BSC venue right now?" — measured live 2026-08-15, trimmed for width, nothing invented:
{
"pair": "WBNB/USDT", "network": "bsc", "blockNumber": 116151268,
"pricesByVenue": [
{ "venue": "pancake", "surface": "v2", "feeBps": 25, "price": 611.7347, "tvlUsd": 56834814.36 },
{ "venue": "biswap", "surface": "v2", "feeBps": 10, "price": 610.8278, "tvlUsd": 415733.94 },
{ "venue": "apeswap", "surface": "v2", "feeBps": 20, "price": 611.1244, "tvlUsd": 3659.06 },
{ "venue": "pancakeV3:1", "surface": "v3", "feeBps": 1, "price": 610.5684, "tvlUsd": 18596810.32 },
{ "venue": "pancakeV3:100", "surface": "v3", "feeBps": 100, "price": 609.1025, "tvlUsd": 12206.21 }
],
"bestBuy": { "venue": "pancakeV3:100", "price": 609.1025 },
"bestSell": { "venue": "pancake", "price": 611.7347 },
"midSpreadBps": 43.22,
"crossDex": { "grossSpreadBps": 0, "grossUsd": 0,
"optimalInput": { "amount": 0, "token": "WBNB", "usd": 0 } },
"liquidity": { "venues": 7, "totalTvlUsd": 80856857.67 }
}
optimalInput is where the honesty lands.
get_spreads returning "found": 0 is a real answer and it is the common
one. Venues under $1,000 TVL are dropped outright, and ranking is by gross USD at the optimal
size, never by headline basis points.
| Tool | What it answers | Access |
|---|---|---|
get_chains | Which chains are covered, their chain IDs, tokens and DEX venues | Any key · keyless returns the chain list only, and says so |
get_pairs | What is priceable on one chain: token universe, venues, pair syntax | Any key · keyless returns the measured subset, labelled |
get_prices | One pair's price at every venue holding a pool for it, plus reserves, TVL, fee tier and the cross-DEX spread | Any key |
get_spreads | A whole chain's cross-venue dislocations, ranked by gross USD at the optimal size | Any key for live: true · keyless serves the hourly snapshot |
get_history_summary | What the measurement archive covers: rows, pairs tracked, chains seen, span, retention | Any key (free BASIC tier) |
get_history | One pair's per-venue price/liquidity series and gross spread over 24h / 7d / 30d | PRO plan |
limitation
field naming exactly what a key would add; key-required tools return an explicit error with the
signup link rather than a thinner answer dressed up as a full one.The paid tools call the API through RapidAPI using your own key. Five of the six tools work on the free tier — only the per-pair history series is gated.
| Plan | Adds |
|---|---|
| BASIC ($0) | Live quotes on every chain, plus get_history_summary so you can size the archive before you buy it |
| PRO ($15/mo) | get_history — the measured per-venue series for one pair, 24h window, 1000 calls/mo |
| ULTRA ($49/mo) | No window limit and no history meter, plus depth/slippage and spread alerts |
| MEGA ($149/mo) | Bulk paging over the complete archive for your own store |
| Env var | Default | Purpose |
|---|---|---|
RAPIDAPI_KEY | — | Your RapidAPI key. Required for the paid tools. |
ARB_DEX_TIMEOUT_MS | 45000 | Request timeout. A live full-chain sweep is a real on-chain read and can take ~30s. |
ARB_DEX_FREE_BASE_URL | production origin | Override the free-surface host. |
ARB_DEX_RAPIDAPI_HOST | multi-chain-dex-prices-liquidity.p.rapidapi.com | Override the RapidAPI host. |