# Cross-DEX Prices & Spreads (npm · arb-dex-mcp)

Live cross-DEX pool prices, liquidity and spreads on 6 EVM chains, read from on-chain pool state.

- Trust score: 93/100 (high trust)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-21

## Components

- npm · `arb-dex-mcp`: 93/100 (this document), [markdown](https://verifymcp.io/servers/donnywin85-arb-dex-mcp/arb-dex-mcp.md), [page](https://verifymcp.io/servers/donnywin85-arb-dex-mcp/arb-dex-mcp)

## Channel facts

- Registry: `npm`
- Package: `arb-dex-mcp`
- Version: `1.0.1`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-21.

- **Supply Chain Security**: 98/100
  - No malware found by supply-chain analysis.
  - No known CVEs affecting this package version or its production dependencies.
  - No install/post-install scripts declared.
  - 31 of 96 dependencies flagged as unhealthy.
- **Provenance & Transparency**: 97/100
  - Source repository is publicly reachable at the declared URL.
  - Cryptographically verified build provenance (signed, bound to donnywin85/arb-dex-mcp).
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 36 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 67/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1791 tokens (~298/item across 6 items; 6 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 6 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the Cross-DEX Prices & Spreads MCP server?

Cross-DEX Prices & Spreads runs locally as an npm package, launched with npx -y arb-dex-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add donnywin85-arb-dex-mcp -- npx -y arb-dex-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "donnywin85-arb-dex-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "arb-dex-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "donnywin85-arb-dex-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "arb-dex-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add donnywin85-arb-dex-mcp -- npx -y arb-dex-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "donnywin85-arb-dex-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "arb-dex-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add donnywin85-arb-dex-mcp --command npx --arg -y --arg arb-dex-mcp
```

### Hermes

```yaml
mcp_servers:
  donnywin85-arb-dex-mcp:
    command: "npx"
    args: ["-y", "arb-dex-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "donnywin85-arb-dex-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "arb-dex-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add donnywin85-arb-dex-mcp -t stdio -c npx -a -y arb-dex-mcp
```

### Other

```json
{
  "mcpServers": {
    "donnywin85-arb-dex-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "arb-dex-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-21 (score 93, +1)

- [security] Stability: 0.97 → pass

### 2026-09-19 (score 92, +1)

No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-17 (score 91, +1)

No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-15 (score 90, −3)

- [functional] Stability: pass → 0.80

### 2026-09-14 (score 93, +1)

- [security] Stability: 0.97 → pass

### 2026-09-13 (score 92, −1)

- [functional] Stability: pass → 0.97

### 2026-09-12 (score 93, +1)

- [security] Stability: 0.97 → pass

### 2026-09-10 (score 92, +1)

No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (6)

### `get_chains` (~162 tokens)

List supported chains, their tokens and DEX venues

List every blockchain this API covers, with its chain ID, native asset, default trading pair, the token tickers it prices, and the DEX venues it reads (both Uniswap-v2-style pools and Uniswap-v3-style concentrated-liquidity pools). Call this first to discover valid `chain` values for the other tools. With a RapidAPI key you get the full per-chain token and venue lists; without one it falls back to the free public snapshot, which names the chains but not their token universes, and says so in the response. Paid route: needs your own RapidAPI key in RAPIDAPI_KEY (free tier available at https://rapidapi.com/donnydev/api/multi-chain-dex-prices-liquidity).

### `get_pairs` (~236 tokens)

What can be priced on one chain

Show what is queryable on a single chain: the token tickers the API prices, the DEX venues it reads, and the chain default pair. A `pair` for get_prices is written as TOKEN_A/TOKEN_B from these tickers (first symbol is the base, second is the quote) — any ERC-20 contract address on the chain also works in place of a ticker. This returns the token universe, not a fixed enumerated pair list: the API prices whatever pair of these you ask for that has live pool liquidity, and returns 404 when no pool exists. Without a RapidAPI key it falls back to the free snapshot and returns only the pairs actually measured in the latest scan of that chain, labelled as such. Paid route: needs your own RapidAPI key in RAPIDAPI_KEY (free tier available at https://rapidapi.com/donnydev/api/multi-chain-dex-prices-liquidity).

Input parameters:

- `chain` (string, required): Chain key. One of: bsc, polygon, arbitrum, base, avalanche, optimism. Numeric chain IDs are not accepted here — use the key.

### `get_prices` (~370 tokens)

Per-venue live pool prices for one pair

Live price of one trading pair at EVERY DEX venue on a chain that holds a pool for it, read directly from pool state at a stated block number. Returns per-venue price (quote token per 1 base token), pool reserves, pool TVL in USD and the venue fee tier; plus the best bid/ask venues, the raw mid spread in basis points, aggregate liquidity, and the cross-DEX gross spread with its optimal trade size. Use this when you need the actual number a swap would price against on a specific venue, or to compare one pair across venues. For ranking opportunities across a whole chain, use get_spreads instead. Spreads are GROSS — before gas, MEV and slippage beyond the optimal size — and are not a profit estimate or trade advice. Paid route: needs your own RapidAPI key in RAPIDAPI_KEY (free tier available at https://rapidapi.com/donnydev/api/multi-chain-dex-prices-liquidity).

Input parameters:

- `chain` (string, required): Chain key. One of: bsc, polygon, arbitrum, base, avalanche, optimism. Numeric chain IDs are not accepted here — use the key.
- `fee` (integer): Optional Uniswap-v3 fee tier in hundredths of a bip (100, 500, 2500, 3000, 10000). Restricts the v3 probe to that single tier instead of sweeping all of them. Omit to sweep every tier.
- `pair` (string, required): Pair as BASE/QUOTE, e.g. "WBNB/USDT". The first symbol is the base (the USD-priceable side). A raw 0x… ERC-20 address may replace either ticker. Call get_pairs for the tickers a chain knows.

### `get_spreads` (~382 tokens)

Rank cross-DEX spread opportunities on a chain

Sweep a whole chain and rank its cross-venue price dislocations, each with the buy venue, sell venue, spread in basis points, the optimal trade size, and the gross USD that size would capture. Ranking is by GROSS USD AT THE OPTIMAL SIZE, not by headline basis points — a 160bps spread against a $1,470 pool is worth about a cent, and the payload says so per row (`capturable`, `warning`, `shallowestSideTvlUsd`). Venues below the liquidity floor are excluded because a spread against a dust pool is an artefact, not an opportunity. Numbers are GROSS: before gas, MEV and any slippage beyond the optimal size. Not a profit estimate and not trade advice. With a RapidAPI key and live=true this runs a fresh on-chain sweep (slow, ~30s, most current). Otherwise it serves the free hourly public snapshot, which is keyless and fast — the response always states which, and when it was generated. Paid route: needs your own RapidAPI key in RAPIDAPI_KEY (free tier available at https://rapidapi.com/donnydev/api/multi-chain-dex-prices-liquidity).

Input parameters:

- `chain` (string, required): Chain key. One of: bsc, polygon, arbitrum, base, avalanche, optimism. Numeric chain IDs are not accepted here — use the key.
- `limit` (integer): Live sweeps only. Maximum rows, 1..40. Default 15.
- `live` (boolean): true = run a fresh on-chain sweep now (requires RAPIDAPI_KEY, takes ~30s). false/omitted = the free public snapshot, rebuilt hourly.
- `minSpreadBps` (number): Live sweeps only. Minimum spread in basis points to report. Default 10.

### `get_history_summary` (~236 tokens)

What the measurement archive actually covers

Describe the coverage of this API's own measurement archive before you query it: how many rows exist, how many distinct pairs are tracked, which chains have been seen, the first and last observation timestamps, the span in hours, and the retention policy. Call this FIRST to find out whether a window you care about is even covered — the archive only holds what the service measured while it was running, and a missing hour stays a gap rather than being interpolated. `rowsByEra` breaks the archive down by how much detail each row carries: older rows may hold digest totals only, newer ones full per-pair sweeps, so an early row answers fewer questions than a recent one. Every row was recorded live from on-chain reads; nothing is estimated or backfilled. Paid route: needs your own RapidAPI key in RAPIDAPI_KEY (free tier available at https://rapidapi.com/donnydev/api/multi-chain-dex-prices-liquidity). Included on the free BASIC tier, so an agent can size the archive before deciding whether the per-pair series (get_history, PRO) is worth buying.

### `get_history` (~405 tokens)

Historical per-venue prices and cross-venue spread for one pair

Time series for a single pair from this API's measurement archive: per-venue price and liquidity points, and the GROSS cross-venue spread computed from those same measured venues, over a 24h, 7d or 30d window. Use this to see how a dislocation behaved over time — whether a spread persisted or was a single-sample artefact — which the live tools (get_prices, get_spreads) cannot tell you because they only see now. Coverage is whatever was measured: sampling is once per digest build (roughly hourly), each venue reports its own observation count, and gaps mean the service was not running then. They are never interpolated or backfilled. Call get_history_summary first to see which chains and how much span exist. Spreads are GROSS — before gas, MEV and slippage beyond the optimal size — and are not a profit estimate or trade advice. Paid route: needs your own RapidAPI key in RAPIDAPI_KEY (free tier available at https://rapidapi.com/donnydev/api/multi-chain-dex-prices-liquidity). PLAN: this specific route is included from the PRO plan ($15/mo) upward — a BASIC ($0) key returns an explicit tier_required error naming the plan and upgrade URL, never an empty series. Every other tool on this server works on the free BASIC tier.

Input parameters:

- `chain` (string, required): Chain key. One of: bsc, polygon, arbitrum, base, avalanche, optimism. Numeric chain IDs are not accepted here — use the key.
- `pair` (string, required): Pair as BASE/QUOTE, e.g. "WETH/USDC" (a BASE-QUOTE dash form is accepted too). Only pairs the service has actually measured are in the archive — get_history_summary lists what is tracked.
- `window` (string): Look-back window: 24h, 7d or 30d. Default 24h.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/donnywin85-arb-dex-mcp/arb-dex-mcp#diagnostics

## Score history

- 2026-09-21: 93
- 2026-09-20: 92
- 2026-09-19: 92
- 2026-09-18: 91
- 2026-09-17: 91
- 2026-09-16: 90
- 2026-09-15: 90
- 2026-09-14: 93
- 2026-09-13: 92
- 2026-09-12: 93
- 2026-09-11: 92
- 2026-09-10: 92
- 2026-09-09: 91
- 2026-09-08: 91
- 2026-09-07: 90
- 2026-09-06: 90
- 2026-09-05: 90
- 2026-09-04: 89
- 2026-09-03: 89
- 2026-09-02: 88
- 2026-09-01: 88
- 2026-08-31: 87
- 2026-08-30: 87
- 2026-08-29: 86
- 2026-08-28: 86
- 2026-08-27: 85
- 2026-08-26: 85
- 2026-08-25: 83
- 2026-08-24: 83
- 2026-08-23: 82

## Common questions

### What is the Cross-DEX Prices & Spreads MCP server?

Cross-DEX Prices & Spreads is an MCP server listed in the public MCP registry as io.github.donnywin85/arb-dex-mcp. Live cross-DEX pool prices, liquidity and spreads on 6 EVM chains, read from on-chain pool state. This page covers its npm package (arb-dex-mcp).

### Is the Cross-DEX Prices & Spreads MCP server safe to use?

Cross-DEX Prices & Spreads scores 93 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 21 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Cross-DEX Prices & Spreads MCP server expose?

Cross-DEX Prices & Spreads exposes 6 tools: get_chains, get_pairs, get_prices, get_spreads, get_history_summary, get_history. Their descriptions and schemas cost roughly 1,791 tokens of context every time the server is loaded.

### Is the Cross-DEX Prices & Spreads MCP server still maintained?

Cross-DEX Prices & Spreads is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What licence is the Cross-DEX Prices & Spreads MCP server under?

Cross-DEX Prices & Spreads declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- npm package: https://www.npmjs.com/package/arb-dex-mcp
- Socket report: https://socket.dev/npm/package/arb-dex-mcp
- Repository: https://github.com/donnywin85/arb-dex-mcp
- Website: https://donnywin85.github.io/arb-dex-mcp/
- Changelog RSS feed: https://verifymcp.io/servers/donnywin85-arb-dex-mcp/arb-dex-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/donnywin85-arb-dex-mcp/arb-dex-mcp.json
- HTML version of this page: https://verifymcp.io/servers/donnywin85-arb-dex-mcp/arb-dex-mcp
