Skip to content

blueDEX

by dex.mk · remote · no sign-in to list tools · v0.8.0 · published by mk.dex

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

Final · 2Changes · 2

10 tools: 2 do something that can't be undone, 2 change things and 6 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http bluedex https://dex.mk/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "plan_route" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

10 tools

Can't be undone 2Claude Code: ask
  • create_instant_shiftOpen an INSTANT shift for assets with no on-chain DEX route — Tron (USDT-TRC20, TRX), BTC, cross-chain.No findings

    Why it is in this group

    • The name "create_instant_shift" says "create": a word for a change.
    • The input addresses people (input.to): what it sends cannot be taken back.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Create instant cross-chain shift
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • plan_routePlan 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 …1 finding

    Why it is in this group

    • The input addresses people (input.to): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "plan_route" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The input addresses people (input.to): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Plan multi-hop route
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Changes things 2Claude Code: ask
  • build_swap_transactionBuild an unsigned transaction for a quoted swap.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Build unsigned swap transaction
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • sweep_dustConsolidate many small leftover token balances (dust) into one token (default USDC) on an EVM chain.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Plan dust sweep
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
Only reads 6Claude Code: allow
  • get_chartOHLCV candles for a token (top pool by liquidity).No findings

    Why it is in this group

    • The name "get_chart" says "get": a word for reading.
    Description, as the server wrote it
    OHLCV candles for a token (top pool by liquidity). Timeframes: 1m, 5m, 15m, 1h, 4h, 1d.

    Annotations the server declares

    • title: Get token price chart
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_instant_statusStatus of an instant shift by id (from create_instant_shift): waiting | pending | processing | settling | settled | refund* | expired, plus deposit/settle tx hashes once available.No findings

    Why it is in this group

    • The name "get_instant_status" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get instant shift status
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • get_metablueDEX's published transparency data: treasury (fee recipient) addresses, router allowlist, fee schedule, paused venues.No findings

    Why it is in this group

    • The name "get_meta" says "get": a word for reading.
    Description, as the server wrote it
    blueDEX's published transparency data: treasury (fee recipient) addresses, router allowlist, fee schedule, paused venues. Use this to audit quotes and transactions.

    Annotations the server declares

    • title: Get treasury + router allowlist (audit data)
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • get_swap_quoteGet the best swap route across DEX aggregator venues.No findings

    Why it is in this group

    • The name "get_swap_quote" says "get": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: Get best swap quote
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: true
  • list_instant_assetsAssets reachable via the INSTANT lane (no on-chain DEX route) — Tron/USDT-TRC20, BTC, and stablecoin corridors.No findings

    Why it is in this group

    • The name "list_instant_assets" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List instant-lane assets
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • list_onrampsReputable INDEPENDENT fiat->crypto on-ramps blueDEX signposts so a human principal can acquire a first coin with minimal KYC, then swap/bridge on blueDEX.No findings

    Why it is in this group

    • The name "list_onramps" says "list": a word for reading.
    Description, as the server wrote it
    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.

    Annotations the server declares

    • title: List fiat on-ramps
    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.8.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http bluedex https://dex.mk/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__bluedex__get_swap_quote",
      "mcp__bluedex__get_chart",
      "mcp__bluedex__get_meta",
      "mcp__bluedex__list_instant_assets",
      "mcp__bluedex__get_instant_status",
      "mcp__bluedex__list_onramps"
    ],
    "ask": [
      "mcp__bluedex__build_swap_transaction",
      "mcp__bluedex__create_instant_shift",
      "mcp__bluedex__sweep_dust",
      "mcp__bluedex__plan_route"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as bluedex. Review it before you use it.