MCP.Market

Is SwapWizard MCP server safe?

Yes, with the usual care.

A87/100grade A

Passed every safety check we run. Maintained, authenticated, reachable, clean scan.

No critical or high findings in the latest scan.

How SwapWizard compares

Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
87/100
higher than 73% of 48,255 servers
Tools that change things
0%
typical: 0%. Fewer write tools means less an agent can break
Uptime
100%
of our recent checks; the typical remote server answers 100%

What its tools let an agent do: 11 read

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

1 low
  • Code scan5 source files scanned25/25
  • Live reliabilityremote reachable in 1570ms20/20
  • Tool poisoning11 tool descriptions checked13/15
  • Auth qualityopen endpoint, read-only tools10/15
  • Maintenancelast push 77 days ago12/15
  • Maintainer identityregistry namespace matches repository owner7/10

Findings (1)

  • lowUnusually long tool description (over 2,000 characters)poison.long-description
    tool search_liquidity_pools: …Maps to GET /pools. Discovers liquidity pools across supported AMMs and chains, returning id, poolId, symbol, underlyingTokens (token addresses), fee tier, protocol, dexKind, APY, apyBase (fee-only APY excluding reward emissions), TVL (USD), 24h/7d volume (USD), stablecoin flags, and hooksAddress (custom hook contract for Uniswap V4 / PancakeSwap Infinity pools; null when the pool has no hook — hooks can add custom fees or transfer restrictions). KEY PARAMETERS: Use `trending: true` to get only pools currently trending, optionally with `timeframe` ("5m", "1h", "6h", "24h") to select the ranking window — default is 5m. Trending results include `feeAprEstimate`: fee APR (%) annualized from the selected timeframe's volume window over the pool reserve (null outside trending mode or when the fee tier is unknown). NOTE: `feeAprEstimate` extrapolates a short window to a year — for short timeframes on hot pools it can be extreme and short-lived; the `apy` field is the stable 24h-based metric. MOMENTUM SIGNAL (1h/6h/24h windows, powered by on-chain DEX trade data): each trending pool carries `momentumSignal` — "entry" (volume accelerating with healthy LP flow — a pool worth entering), "watch" (in the ranking but not yet actionable), or "exit" (dying volume or LPs leaving). Supporting fields: `momentumScore` (composite acceleration x size x flow quality), `momentumRatioH1/H6/H24` (volume vs the previous equal window), `momentumTakersH6` (unique traders 6h), `lpMintsH6/lpBurnsH6` and `lpNetFlowH6` (inflow/outflow/flat — are LPs adding or pulling liquidity). The 5m window carries the signal as HOURLY CONTEXT (last hourly cycle, not the last 5 minutes), since 5m is real-time GeckoTerminal data. Each pool also carries `suggestedRangePct`: a suggested concentrated-liquidity range (± percent) balancing fee density against time-in-range — ~0.5% for stable pairs, tens of percent for volatile/memecoin pairs — pass it to zap_into_lp_position. To ENTER the hottest profitable pool: `trending: true, timeframe: "6h", signal: "entry", sortBy: "signal", sortOrder: "desc"` returns entry-signal pools ranked by APR. (Use timeframe "6h" for sustained traction / LP-yield strategies, "1h" for faster reaction.) To check whether to EXIT, read `momentumSignal` on list_user_lp_positions instead. Use `hookless: true` to exclude pools with a custom hook contract. Use `sortBy` ("apy", "tvl", "volume1d", "volume7d", "signal") with `sortOrder` to control ranking — default is tvl desc. Use `topPerVenue` to limit to top N pools per DEX by APY. Supports filtering by protocol/DEX, tokens, pool type, stablecoin status, and free-text search, with pagination. Required upstream step before zap_into_lp_position. IMPORTANT: The response contains two ID fields — `poolId` (string) must be passed AS-IS to zap_into_lp_position and zap_out_of_lp_position (do NOT construct or modify it), and `id` (number) is used only for analyze_pool.…
Overall 87/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

SwapWizard reviews, tools and install