Crypto MCP server for AI agents

MarketTrace runs a free, read-only MCP server for crypto perpetual futures. Its ten tools return funding rates with their percentile against up to two years of history, open interest, volume, CVD, order-book imbalance, liquidations and basis, plus candles with delta, volume-profile levels, large trades and footprint events. It covers BTC, ETH, SOL, BNB, XRP, DOGE, HYPE, ZEC and ENA on Binance, Bybit, OKX and Hyperliquid; liquidations come from the first three.

Facts and normalization, no verdicts. Each metric comes with its coverage (the venues that fed it and the history behind it), and every response states its age. An agent can tell a solid number from a thin one before it repeats either.

Server URL
https://api.markettrace.ai/mcp
Transport
Streamable HTTP
Sign-in
OAuth with an email link. No API key, no card.
Access
Read-only. Every tool is marked readOnlyHint.
Assets
BTC, ETH, SOL, BNB, XRP, DOGE, HYPE, ZEC, ENA
Venues
Binance, Bybit, OKX, Hyperliquid (liquidations: Binance, Bybit, OKX)
Version
1.9.0, released 2026-10-06 · changelog
Registry name
ai.markettrace/agent-feed
Tool contract
tools.json on GitHub, input schemas for all 10 tools
Price
Free

Connect the MCP server

Every client uses the same URL and the same sign-in. The client opens a browser, you type your email, and we send a sign-in link. Open it on the same device and in the same browser where you started, or sign-in will not finish.

Claude (web and desktop)

  1. In Claude: Settings → Connectors → Add custom connector.
  2. Paste the server URL: https://api.markettrace.ai/mcp
  3. Authorize when prompted and open the emailed link.
  4. Ask away. The feed is read-only; it can never trade or move funds.

Claude Code and Codex connect from the terminal in two steps. Adding the server does not sign you in, so run both.

Claude Code

  1. Add the server:
    claude mcp add --transport http markettrace https://api.markettrace.ai/mcp
  2. Sign in (your browser opens):
    claude mcp login markettrace

If your Claude Code has no mcp login command, start a session, type /mcp, pick markettrace and choose Authenticate.

Codex

  1. Add the server:
    codex mcp add markettrace --url https://api.markettrace.ai/mcp
  2. Sign in (your browser opens):
    codex mcp login markettrace

Cursor

Use the Add to Cursor button, or add the server to ~/.cursor/mcp.json and sign in when Cursor asks.

Add to Cursor

{
  "mcpServers": {
    "markettrace": {
      "url": "https://api.markettrace.ai/mcp"
    }
  }
}

Other clients and your own agent

Stdio-only clients connect through the standard mcp-remote bridge, which also runs the sign-in:

{
  "mcpServers": {
    "markettrace": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.markettrace.ai/mcp"
      ]
    }
  }
}

Your own agent can use any MCP client library with OAuth support; the official TypeScript and Python SDKs include one. An unauthenticated request gets HTTP 401 with a WWW-Authenticate header that points to the server's OAuth metadata, so the client finds the sign-in flow by itself.

Listed in the official MCP registry as ai.markettrace/agent-feed.

Open-source bridge & docs on GitHub

Things to ask

Plain questions work. The arrow shows the tool an agent reaches for.

MCP tools: funding, open interest, CVD, liquidations, volume profile, footprint

Ten tools, all read-only. Each one takes a symbol: BTC, ETH, SOL, BNB, XRP, DOGE, HYPE, ZEC or ENA, and names like BTCUSDT work too.

get_market_state: the whole market in one call

One normalized snapshot per asset, merged across all four venues. Start here.

Asks
“What's the market state for BTC?” · “Is ETH positioning stretched?”
Returns
Price with 1h, 4h and 24h change, 1h ATR and 24h realized volatility. Funding rate, percentile and streak. Open interest in USD, its 1h change and its multiple of the 1d, 1w and 1m medians. 24h volume. 30-minute CVD in USD and the taker-buy ratio. Order-book imbalance from −1 to +1 and depth within 10, 25 and 50 bps. Last-hour liquidations with the long share and a percentile. Basis. Per-venue values, next funding times, and drivers: a few plain-text lines on what stands out.

On the site: Market positioning · Book depth

get_funding_percentile: is funding unusually high?

The current funding rate ranked against the asset's own history from 0 to 100, plus the hours it has kept its sign.

Returns
rate_bps (8h-normalized; positive means longs pay shorts), percentile, streak_h and coverage.
History
Up to 730 days. Assets with a shorter record rank against what exists, and coverage.window_days says how much. The cross-venue rate and its rank use venues with at least 365 days of funding history.

On the site: Funding rates · Background: funding rate

get_liquidations_recent: who got liquidated

Liquidation totals on Binance, Bybit and OKX for a window of up to 24 hours.

Inputs
window_s in seconds, default 3600, maximum 86400.
Returns
Total USD, long and short USD, long_ratio (the share of longs, 0 to 1) and the event count.
Note
USD values are estimates: base quantity times each venue's reference price, and Bybit and OKX publish the bankruptcy price. Hyperliquid liquidations are not included.

On the site: Liquidations · liquidations methodology

get_ohlcv: candles with delta

Candles built from all four venues' trades on one timeline, with taker delta inside each candle.

Inputs
interval 5m, 15m, 1h, 4h or 1d (default 1h); limit 1 to 200 (default 100).
Returns
t (candle open, epoch ms); o, h, l, c in USD; v and delta in base units (BTC, ETH and so on); partial on a candle that is still forming. Summing delta over the candles gives the CVD of that window.
Range
The tape holds 31 days, so 1d stops at 31 candles and 4h at 186. ZEC and ENA keep 14 days.

On the site: Footprint chart · Background: CVD

get_conditional_outcomes: what followed this condition before

Forward returns after a condition you state, measured on the feed's own history.

Conditions
A funding percentile band (funding_pct_gte, funding_pct_lte), funding_sign, streak_h_gte, or one archived feature (obi_skew, oi_chg_1h_pct, taker_buy_ratio, basis_bps) by value or by percentile. Conditions combine with AND.
Horizons
4h, 24h and 72h by default; any from 1h to 168h.
Returns
Per horizon: n_matches and n_effective (after overlapping windows are collapsed), median, p10 and p90 return in percent, the share of up moves and the median drawdown. Up to 50 matched timestamps, and where the latest hour sits on the same axes.
history_silent
Fewer than 12 independent matches on every horizon. The stats come back null, and that is the answer: the record is too thin to measure.
Method
Percentiles are as-of: each hour is ranked only against data that existed at that hour. Returns use Binance 1h closes.

Background: conditional outcomes · funding-rate extremes study · method

get_state_history: how it got here

A time series of any numeric field from get_market_state, read from a 15-minute archive that started on 2026-07-03.

Inputs
fields, 1 to 16 dotted paths such as funding.percentile, oi.usd, obi.skew or venues.binance.oi_usd; from and to as RFC 3339, YYYY-MM-DD or epoch ms; max_points 1 to 1000 (default 200).
Returns
t in epoch ms and one aligned array per field. stride says how many rows each point skips, and null marks a field that was empty in that row.

Background: state history

get_volume_profile: where the volume sits

Point of control and value-area high and low for each UTC day, from the combined tape of all four venues.

Inputs
days, 1 to 30 complete days (default 7).
Returns
Today (still forming), each complete day, a composite over the period, and naked POCs from the last 30 days that price has not traded back to. Per profile: poc, vah and val in USD, va_width_pct, volume in base units and taker_buy_ratio. The value area holds 70% of the day's volume.

On the site: Volume profile · Background: volume profile

get_big_trades: large market orders

Large aggressive orders from the trade tape. Fills that share venue, taker side and timestamp add up to one trade, so a market order that sweeps several price levels counts once.

Inputs
from and to (default the last hour; up to 12 h per call, no older than 31 days); min_usd, at least 50,000; limit 1 to 150 (default 50).
Defaults
Thresholds match the footprint chart: $1M for BTC and ETH, $500K for SOL, BNB, XRP, DOGE and HYPE, $100K for ZEC and ENA.
Returns
Count and USD per side, and the largest trades with time, venue, side, price and USD size.

On the site: Footprint chart

get_footprint_events: walls absorbed or pulled

Order-book wall events from the 1-minute footprint. A wall is a resting price row larger than the book's median row plus five MADs.

Absorbed
Trades took at least 5% of the wall's peak, at least 85% of the peak still rested at the minute's close, and price did not break through.
Pulled
The wall fell below half its peak while trades covered less than 30% of the drop, it did not refill within 2 seconds, and price had come within reach.
Inputs
from and to (default the last hour; up to 24 h per call), kinds (absorbed, pulled), min_usd, limit 1 to 150.
Returns
Each event's minute, kind, side, price, and peak, executed and closing size in USD; plus thin-book minutes per side.
History
Recorded since 2026-10-03; the archive grows forward.

On the site: Footprint chart · Book depth

get_stacked_imbalances: stacked one-sided aggression

Stacked imbalances by the diagonal rule the MarketTrace footprint chart uses. A row is a buy imbalance when its market buys reach the chosen ratio times the market sells on the nearest traded row below, and a sell imbalance in the mirror case against the row above. Three or more consecutive flagged rows on one side make a stack.

Inputs
interval 1m, 5m, 15m or 1h (default 1m); ratio 2, 3 or 4 (default 3); kinds (buy, sell); from and to (up to 12 h per call, no older than 31 days); limit 1 to 150.
Returns
Each run's candle time, side, price band, row count and USD size, plus counts per side.
Scale
On BTC at ratio 3, a typical hour holds about 38 runs on 1m candles, 13 on 5m, 4 on 15m and 1 on 1h.

On the site: Footprint chart · Background: footprint

Sample response

get_market_state for BTC at 2026-10-06 13:58 UTC, trimmed to the main blocks. A full response also carries per-venue values, order-book depth, the funding calendar and a coverage entry for every block.

{
  "symbol": "BTC",
  "as_of": "2026-10-06T13:58:41Z",
  "age_seconds": 20,
  "price": { "last": 86267.813, "chg_1h_pct": 0.09, "chg_24h_pct": -0.2, "atr_1h_pct": 0.36, "rv_24h_pct": 32.7 },
  "funding": { "rate_bps": 0.28, "percentile": 26, "streak_h": 680 },
  "oi": { "usd": 19175427019, "chg_1h_pct": 0.14, "rel": { "1d": 1.0195, "1w": 1.0345, "1m": 1.059 } },
  "volume": { "usd_24h": 22309245455, "rel": { "1d": 1.3568, "1w": 1.416, "1m": 1.2496 } },
  "cvd": { "window": "30m", "delta_usd": 121145644, "taker_buy_ratio": 0.5558 },
  "obi": { "skew": -0.0097 },
  "liq": { "usd_1h": 1276732, "long_ratio": 0.0614, "percentile": { "1w": 80, "1m": 87 } },
  "basis_bps": -6.33,
  "drivers": [
    "funding 26th pct (730d, binance+bybit+hyperliquid)",
    "OI 1.1x monthly median",
    "volume 1.4x weekly median",
    "liq 80th pct (1w), 6% longs",
    "OI +0.1%/1h, price +0.1% — new longs"
  ],
  "coverage": {
    "funding": { "venues": ["binance", "bybit", "hyperliquid"], "window_days": 730, "n_samples": 2190, "partial": false },
    "liq": { "venues": ["binance", "bybit", "okx"], "partial": false },
    "basis": { "venues": ["binance"], "partial": true }
  },
  "stale_venues": [],
  "feed": { "version": "1.9.0", "tools": 10 }
}

Coverage: assets, venues and history

BinanceBybitOKXHyperliquid
Funding rate per venue✓✓✓✓
Cross-venue funding rate and percentile✓✓—✓
Open interest✓✓✓✓
Volume, CVD, candles✓✓✓✓
Order book: imbalance, depth, wall events✓✓✓✓
Trade tape: big trades, volume profile, stacked imbalances✓✓✓✓
Liquidations✓✓✓—
Basis✓———

The cross-venue funding rate and its percentile use venues with at least 365 days of funding history; responses list them in the funding coverage entry. Basis compares the Binance perp with a multi-exchange spot index. Hyperliquid has no liquidation feed.

Rules for agents reading this feed

These eight rules keep an agent from misreading the numbers. They also work as a system prompt.

  1. Call get_market_state first. One call covers funding, open interest, volume, CVD, the order book, liquidations, basis and drivers for one asset.
  2. Read the coverage entry before quoting a number. partial: true means the block rests on fewer venues or less history than the full set; reason, when present, says why: accruing, unavailable, degraded or stale. Basis is always partial because it uses Binance only.
  3. Check stale_venues and age_seconds. age_seconds is the age of the oldest live source behind the response.
  4. Mind the scales. Percentiles run 0 to 100, fields ending in _ratio run 0 to 1, rel values are multiples of the trailing median (1.4 means 140%), obi.skew runs from −1 to +1 and is positive when bids are heavier, and basis_bps is positive when the perp trades above spot.
  5. In get_ohlcv, v and delta are in base units, not USD. Leave a partial candle out of ATR and volatility math.
  6. Treat liquidation USD as an estimate, and remember that Hyperliquid is not in it.
  7. When get_conditional_outcomes returns history_silent, say the history is too thin to measure. Do not fill the gap with a guess.
  8. Report the numbers as measurements. The feed says what happened, not what to trade.

Limits and errors

Limits apply per account.

Honesty model

The feed reports what it can measure and says so when it can't: thin history answers with disclosed depth instead of made-up numbers, conditional outcomes go history_silent below the evidence floor, and every response self-declares freshness. Reports history, not predictions.

Free and open source

The hosted MCP server is free: no API keys, no card, OAuth via email magic link. The stdio bridge, connection configs and the full tool contract are open source (MIT) on GitHub. The feed is read-only by design: it can never trade or move funds.

FAQ

Is the MarketTrace MCP server free?

Yes. The hosted endpoint is free: OAuth sign-in, no API keys, no payment details.

Which MCP clients does it work with?

Claude (web and desktop), Claude Code, Codex, Cursor, and any client that speaks MCP over Streamable HTTP with OAuth. Stdio-only clients connect through mcp-remote.

Does it give trading signals?

No. The feed is descriptive: it reports measured market state and history and declares its own coverage. Interpretation stays with the agent, or with you.

Can it place trades or access funds?

No. The server is read-only and every tool is marked readOnlyHint. It holds no keys to any exchange account and has no write scope of any kind.

What data does it cover?

Funding rates with percentiles over up to two years, open interest, volume, CVD, order-book imbalance, liquidations, basis, OHLCV with per-candle delta, volume-profile levels (POC, value area, naked POCs) and large aggressive orders, plus absorbed or pulled order-book walls and stacked footprint imbalances for BTC, ETH, SOL, BNB, XRP, DOGE, HYPE, ZEC and ENA across Binance, Bybit, OKX and Hyperliquid. Liquidations cover Binance, Bybit and OKX; Hyperliquid has no liquidation feed.

How fresh is the data?

Live blocks refresh about every 30 seconds. Each response carries age_seconds, the age of its oldest live source, and the funding block carries source_age_ms, the time since the settlement it used.

How far back does the history go?

Funding percentiles rank against up to 730 days. Candles, big trades, stacked imbalances and volume profiles come from a 31-day trade tape, 14 days for ZEC and ENA. The 15-minute state archive starts on 2026-07-03 and wall events on 2026-10-03.

What are the rate limits?

Per account, 30 tool calls a minute after a burst of 60, and 10 a minute for the four heavier tools after a burst of 20. A throttled call returns an error that says how many seconds to wait.

Is there a REST API?

Not yet. MCP is the programmatic interface today, and a script can call it through any MCP client library that supports OAuth.

How is it different from the CoinGecko or CoinMarketCap MCP servers?

Those cover prices, market caps and broad market data for thousands of coins. MarketTrace covers nine perpetual futures markets in depth: funding percentiles, open interest by venue, CVD, order-book imbalance, liquidations and footprint events. Our comparison of crypto MCP servers lists what each one serves.

What does the server see and store?

Your email address for sign-in and an account ID. For each request the server logs the account ID, the time, the tool and its arguments, your client's name and user agent, your IP address cut to its network prefix (/24 for IPv4, /48 for IPv6) and your country. It never sees your conversation, only the tool calls your agent makes. The privacy policy has the details.

Is it open source?

The stdio bridge, client configs and the tool contract are MIT-licensed on GitHub. The data pipeline behind the hosted endpoint is not open source.

Privacy Policy · Terms of Service