blueDEX

Non-custodial DEX aggregator for autonomous AI agents: best-price swaps on 8 chains, no API key.

Should I use this

Quality & Safety

A
Description quality
95%
Schema completeness
72%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'get_chart' description lacks action verbin get_chart

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,264Tokens (tool definitions)
~1.1 KBTypical response size
Moderate attention impact (1.77% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "bluedex": {
      "url": "https://dex.mk/mcp"
    }
  }
}

Remote endpoints

https://dex.mk/mcpstreamable-http

What it can do

Tool inventory

Tools (10)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_swap_quote(sell, buy, amount, slippageBps)

Get the best swap route across DEX aggregator venues. Returns the winning venue quote plus every venue quote for transparency, and the fee recipient address (auditable against get_meta). Cross-chain quotes (e.g. USDT on Arbitrum -> USDC on Base) are supported on EVM.

Input Schema

{
  "type": "object",
  "properties": {
    "sell": {
      "type": "object",
      "properties": {
        "chain": {
          "type": "string",
          "enum": [
            "base",
            "ethereum",
            "arbitrum",
            "optimism",
            "bsc",
            "polygon",
            "avalanche",
            "solana"
          ]
        },
        "address": {
          "type": "string",
          "description": "ERC-20 address (EVM) or SPL mint (Solana); 'native' for the gas asset"
        },
        "symbol": {
          "type": "string"
        }
      },
      "required": [
        "chain",
        "address"
      ]
    },
    "buy": {
      "type": "object",
      "properties": {
        "chain": {
          "type": "string",
          "enum": [
            "base",
            "ethereum",
            "arbitrum",
            "optimism",
            "bsc",
            "polygon",
            "avalanche",
            "solana"
          ]
        },
        "address": {
          "type": "string",
          "description": "ERC-20 address (EVM) or SPL mint (Solana); 'native' for the gas asset"
        },
        "symbol": {
          "type": "string"
        }
      },
      "required": [
        "chain",
        "address"
      ]
    },
    "amount": {
      "type": "string",
      "description": "Integer amount in base units of the sell token, e.g. '100000000000000000' for 0.1 WETH"
    },
    "slippageBps": {
      "type": "number",
      "description": "Max slippage in basis points, default 50"
    }
  },
  "required": [
    "sell",
    "buy",
    "amount"
  ]
}
🟢build_swap_transaction(source, sell, buy, amount, slippageBps, ...)

Build an unsigned transaction for a quoted swap. Returns EVM fields (to/data/value) or a Solana base64 transaction, plus a verification block: routerAllowlisted, decodedSummary, minBuyAmount, approvalTarget. VERIFY BEFORE SIGNING — sign only if routerAllowlisted is true and the addresses match the published allowlist from get_meta.

Input Schema

{
  "type": "object",
  "properties": {
    "source": {
      "type": "string",
      "description": "Venue id from the quote (e.g. 'lifi', 'jupiter')"
    },
    "sell": {
      "type": "object",
      "properties": {
        "chain": {
          "type": "string",
          "enum": [
            "base",
            "ethereum",
            "arbitrum",
            "optimism",
            "bsc",
            "polygon",
            "avalanche",
            "solana"
          ]
        },
        "address": {
          "type": "string",
          "description": "ERC-20 address (EVM) or SPL mint (Solana); 'native' for the gas asset"
        },
        "symbol": {
          "type": "string"
        }
      },
      "required": [
        "chain",
        "address"
      ]
    },
    "buy": {
      "type": "object",
      "properties": {
        "chain": {
          "type": "string",
          "enum": [
            "base",
            "ethereum",
            "arbitrum",
            "optimism",
            "bsc",
            "polygon",
            "avalanche",
            "solana"
          ]
        },
        "address": {
          "type": "string",
          "description": "ERC-20 address (EVM) or SPL mint (Solana); 'native' for the gas asset"
        },
        "symbol": {
          "type": "string"
        }
      },
      "required": [
        "chain",
        "address"
      ]
    },
    "amount": {
      "type": "string"
    },
    "slippageBps": {
      "type": "number"
    },
    "taker": {
      "type": "string",
      "description": "The address that will sign and execute"
    }
  },
  "required": [
    "source",
    "sell",
    "buy",
    "amount",
    "taker"
  ]
}
🟢get_chart(chain, address, timeframe)

OHLCV candles for a token (top pool by liquidity). Timeframes: 1m, 5m, 15m, 1h, 4h, 1d.

Input Schema

{
  "type": "object",
  "properties": {
    "chain": {
      "type": "string",
      "enum": [
        "base",
        "ethereum",
        "arbitrum",
        "optimism",
        "bsc",
        "polygon",
        "avalanche",
        "solana"
      ]
    },
    "address": {
      "type": "string"
    },
    "timeframe": {
      "type": "string",
      "enum": [
        "1m",
        "5m",
        "15m",
        "1h",
        "4h",
        "1d"
      ],
      "description": "default 1h"
    }
  },
  "required": [
    "chain",
    "address"
  ]
}
🟢get_meta

blueDEX's published transparency data: treasury (fee recipient) addresses, router allowlist, fee schedule, paused venues. Use this to audit quotes and transactions.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢list_instant_assets

Assets reachable via the INSTANT lane (no on-chain DEX route) — Tron/USDT-TRC20, BTC, and stablecoin corridors. Returns ids (e.g. 'usdt-tron') to use with create_instant_shift.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟡create_instant_shift(from, to, settleAddress, refundAddress)

Open an INSTANT shift for assets with no on-chain DEX route — Tron (USDT-TRC20, TRX), BTC, cross-chain. Returns a deposit address: send the `from` asset there and the `to` asset settles to your address. Custodial AT THE VENUE during the swap (~minutes); blueDEX never holds funds. Use list_instant_assets for ids.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "type": "string",
      "description": "instant asset id to send, e.g. 'usdc-base'"
    },
    "to": {
      "type": "string",
      "description": "instant asset id to receive, e.g. 'usdt-tron'"
    },
    "settleAddress": {
      "type": "string",
      "description": "your receiving address for the `to` asset"
    },
    "refundAddress": {
      "type": "string",
      "description": "optional: refund destination if the shift fails or expires"
    }
  },
  "required": [
    "from",
    "to",
    "settleAddress"
  ]
}
🟢get_instant_status(id)

Status of an instant shift by id (from create_instant_shift): waiting | pending | processing | settling | settled | refund* | expired, plus deposit/settle tx hashes once available.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
🟢sweep_dust(wallet, chain, dust, targetToken, slippageBps)

Consolidate many small leftover token balances (dust) into one token (default USDC) on an EVM chain. Pass the dust list (token address + amount — you know your own balances); returns a plan of unsigned swaps, gas-positive legs only, with the whole tiny sweep fee riding ONE leg. Non-custodial: approve each leg's approvalTarget and sign. Base/Arbitrum/Optimism/Ethereum/BNB Chain/Polygon/Avalanche.

Input Schema

{
  "type": "object",
  "properties": {
    "wallet": {
      "type": "string",
      "description": "your 0x address (the taker)"
    },
    "chain": {
      "type": "string",
      "enum": [
        "base",
        "ethereum",
        "arbitrum",
        "optimism",
        "bsc",
        "polygon",
        "avalanche"
      ],
      "description": "default base"
    },
    "dust": {
      "type": "array",
      "description": "tokens to sweep: [{ address, amount (integer base units), symbol?, decimals? }]",
      "items": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string"
          },
          "amount": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "decimals": {
            "type": "number"
          }
        },
        "required": [
          "address",
          "amount"
        ]
      }
    },
    "targetToken": {
      "type": "string",
      "description": "consolidate into this token (default USDC)"
    },
    "slippageBps": {
      "type": "number",
      "description": "default 100"
    }
  },
  "required": [
    "wallet",
    "dust"
  ]
}
🟢list_onramps

Reputable INDEPENDENT fiat->crypto on-ramps blueDEX signposts so a human principal can acquire a first coin with minimal KYC, then swap/bridge on blueDEX. blueDEX operates none of these and takes no custody; every ramp lands coins in the user's own wallet. Durable no-KYC = vouchers + non-custodial P2P; tiered/full-KYC brokers are a labelled fallback. Most no-KYC routes are human-mediated (cash/contacts/Tor) — only Transak + MoonPay are agent-callable (but require KYC). Most are BTC-only — bridge onward with the instant lane or a quote. Surface this when a human asks how to get their first crypto.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢plan_route(from, to, amount)

Plan the cheapest MULTI-HOP route between ANY two assets — composes DEX swaps (non-custodial) + instant-lane bridges (custodial-at-venue) into one path, with every fee and per-leg custody disclosed. e.g. USDT on Tron -> XAUt on Ethereum becomes a USDT bridge + a DEX swap. `from`/`to` are an instant id (e.g. 'usdt-tron') or a {chain,address} DEX token; `amount` is integer base units of `from`. Returns ordered legs (kind, venue, custody, amounts, fee) + total output. Execute legs in order: DEX legs via build_swap_transaction, bridge legs via create_instant_shift.

Input Schema

{
  "type": "object",
  "properties": {
    "from": {
      "description": "instant id string (e.g. 'usdt-tron') OR a DEX token {chain,address}"
    },
    "to": {
      "description": "instant id string OR a DEX token {chain,address}"
    },
    "amount": {
      "type": "string",
      "description": "integer base units of `from`"
    }
  },
  "required": [
    "from",
    "to",
    "amount"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded10 tools