# 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.

Agent View of the PolicyLayer registry record for `search_liquidity_pools`. HTML page: https://policylayer.com/tools/defire-business-swapwizard-mcp/search-liquidity-pools

## Facts

- Tool: `search_liquidity_pools`
- Server: Swapwizard (`@swapwizard/mcp-server`) — https://policylayer.com/tools/defire-business-swapwizard-mcp.md
- Install: `npx -y @swapwizard/mcp-server`
- Homepage: https://github.com/DeFiRe-business/swapwizard-mcp
- Risk category: Read (Low risk)
- Registry record: grade D, identity unverified
- Server auth posture: open
- Server rate-limited: no
- Parameters: 12 (1 required)
- Recommended policy verdict: Allowed

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `page` | integer | no | Page number, 0-based (default: 0) |
| `search` | string | no | Search by symbol or project name |
| `signal` | string | no | Filter by momentum signal. Comma-separated list allowed (e.g. 'entry' or 'entry,watch'). Only effective with trending=true. Combine with sortBy=signal&sortOrder |
| `sortBy` | string | no | Sort field (default: tvl). 'signal' (trending only) groups pools by momentum signal entry→watch→exit (sortOrder=asc reverses) and within each group by APR desce |
| `tokens` | string | no | Comma-separated token addresses to filter pools by |
| `chainId` | integer | yes | EVM chain ID (e.g. 56 for BSC, 1 for Ethereum) |
| `dexKind` | string | no | Filter by DEX kind (e.g. UNIV3_SR02) |
| `project` | string | no | Filter by protocol/DEX name (e.g. uniswap-v3, pancakeswap-v3, aerodrome-v2) |
| `hookless` | boolean | no | If true, exclude pools with a custom hook contract (Uniswap V4 / PancakeSwap Infinity). Hooks can add custom fees or transfer restrictions. |
| `pageSize` | integer | no | Results per page, max 200 (default: 50) |
| `poolType` | string | no | Filter by pool type |
| `trending` | boolean | no | If true, return only currently trending pools (with momentumSignal and suggestedRangePct on each result) |

Parameters from the server's own tool schema.

## Example call (MCP tools/call, JSON-RPC 2.0)

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_liquidity_pools",
    "arguments": {
      "chainId": 0
    }
  }
}
```

## Why search_liquidity_pools is rated Low

This tool retrieves and queries pool data from supported AMMs across chains. It is a pure read operation that discovers and returns pool metadata without side effects. While the broader server enables financial transactions (swaps, zaps), this specific tool only queries and searches existing pools. The presence of hook contract addresses in responses does not change this—it is informational data, not execution.

From the tool's own definition: "Maps to GET /pools. Discovers liquidity pools... returning id, poolId, symbol, underlyingTokens, fee tier, protocol, dexKind, APY, apyBase, TVL, 24h/7d volume, stablecoin flags, and hooksAddress. Use `trending: true` to get only pools currently trending."

Risk signals: High parameter count (17 properties)

## Use case

AI agents call search_liquidity_pools to retrieve information from Swapwizard without modifying anything. It is typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.

## Recommended policy (PolicyLayer)

Verdict: **Allowed**. Enforced by the PolicyLayer MCP gateway (https://policylayer.com/mcp-gateway) before a call reaches Swapwizard:

```json
{
  "version": "1",
  "default": "deny",
  "tools": {
    "search_liquidity_pools": {}
  }
}
```

## Other tools on Swapwizard (10)

- `get_clean_quote` — Financial — https://policylayer.com/tools/defire-business-swapwizard-mcp/get-clean-quote.md
- `zap_into_lp_position` — Financial — https://policylayer.com/tools/defire-business-swapwizard-mcp/zap-into-lp-position.md
- `zap_out_of_lp_position` — Financial — https://policylayer.com/tools/defire-business-swapwizard-mcp/zap-out-of-lp-position.md
- `analyze_pool` — Read — https://policylayer.com/tools/defire-business-swapwizard-mcp/analyze-pool.md
- `check_api_health` — Read — https://policylayer.com/tools/defire-business-swapwizard-mcp/check-api-health.md
- `get_setup_guide` — Read — https://policylayer.com/tools/defire-business-swapwizard-mcp/get-setup-guide.md
- `get_supported_chains` — Read — https://policylayer.com/tools/defire-business-swapwizard-mcp/get-supported-chains.md
- `get_supported_dexes` — Read — https://policylayer.com/tools/defire-business-swapwizard-mcp/get-supported-dexes.md
- `get_swap_quote` — Read — https://policylayer.com/tools/defire-business-swapwizard-mcp/get-swap-quote.md
- `list_user_lp_positions` — Read — https://policylayer.com/tools/defire-business-swapwizard-mcp/list-user-lp-positions.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=defire-business-swapwizard-mcp · API: https://policylayer.com/registry/api · Policy library: https://policylayer.com/policies/defire-business-swapwizard-mcp
