# The Spice Melange Trading Desk: DeepBook market data connector (remote · plumbline-mcp.fly.dev)

A Mentat's eye on Sui DeepBook v3: read-only market data plus desk template tools. No keys.

- Trust score: 81/100 (high trust)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `plumbline-mcp.fly.dev`: 81/100 (this document), [markdown](https://verifymcp.io/servers/sajanmelcher-plumbline-mcp/plumbline-mcp-2.md), [page](https://verifymcp.io/servers/sajanmelcher-plumbline-mcp/plumbline-mcp-2)

## Channel facts

- Endpoint: `https://plumbline-mcp.fly.dev/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.3.3`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, 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-11-05.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 76/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 5752 tokens (~174/item across 33 items; 31 tools + 2 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 80/100
  - Stability observed for 24 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 94/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 83% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "build_bm_withdraw_tx" implies "withdraw" and declares readOnlyHint instead, contradicting what its own name says it does.
  - An AI judge read all 33 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 The Spice Melange Trading Desk: DeepBook market data… MCP server?

The Spice Melange Trading Desk: DeepBook market data… is a hosted endpoint at https://plumbline-mcp.fly.dev/mcp, so there is nothing to install locally. 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 --transport http sajanmelcher-plumbline-mcp 'https://plumbline-mcp.fly.dev/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "sajanmelcher-plumbline-mcp": {
      "url": "https://plumbline-mcp.fly.dev/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "sajanmelcher-plumbline-mcp": {
      "type": "http",
      "url": "https://plumbline-mcp.fly.dev/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.sajanmelcher-plumbline-mcp]
url = "https://plumbline-mcp.fly.dev/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "sajanmelcher-plumbline-mcp": {
      "type": "remote",
      "url": "https://plumbline-mcp.fly.dev/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add sajanmelcher-plumbline-mcp --url 'https://plumbline-mcp.fly.dev/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  sajanmelcher-plumbline-mcp:
    url: "https://plumbline-mcp.fly.dev/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "sajanmelcher-plumbline-mcp": {
      "Transport": "http",
      "Url": "https://plumbline-mcp.fly.dev/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add sajanmelcher-plumbline-mcp -t streamable-http -u 'https://plumbline-mcp.fly.dev/mcp'
```

### Other

```json
{
  "mcpServers": {
    "sajanmelcher-plumbline-mcp": {
      "type": "http",
      "url": "https://plumbline-mcp.fly.dev/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## 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-11-05 (score 81, +1)

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

### 2026-11-03 (score 80, +1)

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

### 2026-11-01 (score 79, +1)

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

### 2026-10-30 (score 78, +1)

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

### 2026-10-28 (score 77, +1)

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

### 2026-10-26 (score 76, +1)

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

### 2026-10-24 (score 75, +1)

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

### 2026-10-21 (score 74, +1)

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

## MCP tools (31)

### `list_pools` (~215 tokens)

List DeepBook pools

List Sui DeepBook v3 spot pools with base/quote assets and trading params (tick, lot, min size in human units). Optional filter by asset symbol. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).

Input parameters:

- `asset` (string): Only pools containing this asset symbol, e.g. SUI or USDC
- `include_ids` (boolean): Include pool object IDs and coin types (longer output)
- `payment_token` (string): Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
- `payment_tx` (string): Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)

### `get_mid_price` (~199 tokens)

Mid price

Best bid, best ask, mid price and spread (abs and bps) for a DeepBook pool, plus last trade price. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).

Input parameters:

- `payment_token` (string): Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
- `payment_tx` (string): Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)
- `pool` (string, required): DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)

### `get_order_book` (~254 tokens)

Order book depth

Order book for a DeepBook pool: top N price levels per side and cumulative liquidity (base qty and quote notional) within ±X% of mid. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).

Input parameters:

- `levels` (integer): Price levels to return per side (1-100, default 10)
- `payment_token` (string): Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
- `payment_tx` (string): Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)
- `pool` (string, required): DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)
- `within_pct` (array): Depth bands as % distance from mid, e.g. [0.5, 1, 2]

### `get_volume` (~266 tokens)

Trading volume

24h volume, high/low, last price and % change for one DeepBook pool, or the top pools by 24h quote volume if no pool is given. Set window_hours for a custom trailing window (single pool). Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).

Input parameters:

- `payment_token` (string): Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
- `payment_tx` (string): Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)
- `pool` (string): DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)
- `top` (integer): When no pool is given: how many pools to return (default 10)
- `window_hours` (integer): Trailing window in hours (default 24). Non-24 values need a pool.

### `get_pool_params` (~230 tokens)

Fees and pool parameters

Taker/maker fees, DEEP stake required, tick/lot/min size, whitelist/stable flags and vault balances for a DeepBook pool. Reads the live on-chain Pool object via Sui GraphQL; falls back to indexer pool-creation values if GraphQL is unavailable. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).

Input parameters:

- `payment_token` (string): Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
- `payment_tx` (string): Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)
- `pool` (string, required): DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)

### `get_recent_trades` (~261 tokens)

Recent trades

Most recent fills in a DeepBook pool (newest first): time, taker side, price, base and quote size. Optional time range. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).

Input parameters:

- `end_time`: Unix timestamp in SECONDS
- `include_tx` (boolean): Include transaction digests (longer output)
- `limit` (integer): Number of trades (1-200, default 20)
- `payment_token` (string): Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
- `payment_tx` (string): Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)
- `pool` (string, required): DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)
- `start_time` (integer): Unix timestamp in SECONDS

### `get_ohlcv` (~278 tokens)

OHLCV candles

OHLCV candles for a DeepBook pool (oldest first). Intervals: 1m, 5m, 15m, 30m, 1h, 4h, 1d, 1w. Volume is in the base asset. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).

Input parameters:

- `end_time`: Unix timestamp in SECONDS
- `interval` (string)
- `limit` (integer): Number of candles (1-500, default 24)
- `payment_token` (string): Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
- `payment_tx` (string): Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)
- `pool` (string, required): DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)
- `start_time` (integer): Unix timestamp in SECONDS

### `get_indexer_status` (~55 tokens)

Data source health

Health and freshness of the public DeepBook indexer (status, latest checkpoint, server time). Use when data looks stale. Education/information only; not financial advice. Read-only public data, may be delayed or wrong.

### `get_bm_fills` (~276 tokens)

Fill history for a balance manager

Fills (OrderFilled) where a given DeepBook BalanceManager was the maker or the taker in one pool, newest first: time, its side, price, qty, fee, tx. Public data; no keys. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).

Input parameters:

- `balance_manager_id` (string, required): DeepBook BalanceManager object id (0x + 64 hex)
- `hours` (integer): Look-back window in hours (default 168 = 7 days)
- `limit` (integer)
- `payment_token` (string): Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
- `payment_tx` (string): Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)
- `pool` (string, required): DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)
- `role` (string)

### `get_swing_range` (~241 tokens)

Swing / range signal

1h/4h/24h high-low range and realized volatility from hourly candles, a regime (CALM < 2%, ELEVATED 2-4%, HIGH_VOL > 4% 4h range) and a suggested ladder rung count (3/4/5). Information only, not a trading instruction. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).

Input parameters:

- `payment_token` (string): Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
- `payment_tx` (string): Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)
- `pool` (string, required): DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)

### `get_pool_stats` (~220 tokens)

Pool scorecard stats

Scorecard-style stats for one pool over the last N hours: trade count, taker buy/sell split, base/quote volume, VWAP, average trade size, price range, current spread. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).

Input parameters:

- `hours` (integer)
- `payment_token` (string): Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
- `payment_tx` (string): Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)
- `pool` (string, required): DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)

### `estimate_fees` (~255 tokens)

Fee estimate (input token vs DEEP)

Estimated DeepBook fee for a fill of qty at price as maker or taker, paid in the input token (rate x 1.25) versus in DEEP (base rate), using the live on-chain fee rates and the DEEP_USDC mid. Education/information only; not financial advice. Read-only public data, may be delayed or wrong. Free: 100 calls/day per client, then 0.002 USDC per call on Sui mainnet, prepaid in batches of about 0.01 USDC (the payment-required response gives an exact amount and a payment_token).

Input parameters:

- `payment_token` (string): Only after the free tier: the private payment_token from the payment-required response; it holds your prepaid calls
- `payment_tx` (string): Only after the free tier: Sui transaction digest of your exact USDC payment for payment_token (see the payment-required response)
- `pool` (string, required): DeepBook pool name BASE_QUOTE, e.g. SUI_USDC (case-insensitive; '/' or '-' also accepted)
- `price` (number): Price; defaults to the current mid
- `qty` (number, required): Base quantity
- `role` (string)

### `list_templates` (~87 tokens)

List desk templates

List The Spice Melange Golden Path Grok Bot templates with prices in Sui USDC, versions and the no-checkout agent buying flow (from https://thespicemelange.org/store/catalog.json). Educational templates, not financial advice; no returns promised. All sales final, except where the law requires otherwise. You pay from your own wallet; this connector never holds keys or funds.

### `create_template_order` (~144 tokens)

Create a template order

Create a store order for one template. Returns the order id, a PRIVATE order token (shown once; keep it secret), the payee and the EXACT Sui USDC amount to send from your own wallet before the expiry. Nothing is charged by this call. Limited to a few orders per client per hour. Educational templates, not financial advice; no returns promised. All sales final, except where the law requires otherwise. You pay from your own wallet; this connector never holds keys or funds.

Input parameters:

- `email` (string): Optional receipt email
- `sku` (string, required): Template sku from list_templates, e.g. dune-saga-collection or fish-speakers

### `check_template_order` (~164 tokens)

Verify payment / get download

With a digest: verify your on-chain payment for an order and get the signed download link (plus add-ons). Without: return the order's status (and a fresh link once paid). The token is sent only to the store, in a header, and is never stored. Educational templates, not financial advice; no returns promised. All sales final, except where the law requires otherwise. You pay from your own wallet; this connector never holds keys or funds.

Input parameters:

- `digest` (string): Sui transaction digest of your exact USDC payment
- `order_id` (string, required): Order id from create_template_order (SM-...)
- `token` (string, required): Private order token from create_template_order (smt_...). Sent only to the store, in a header.

### `get_desk_rhythm` (~88 tokens)

Desk rhythm (signed guidance)

The desk's weekly rhythm from https://thespicemelange.org/rhythm.json: focus pools, ladder windows, rung guidance, rebalance ranges, projects and lessons. The ed25519 signature is verified against the pinned release key, and the call fails closed if it doesn't match. Guidance only: no orders, no sizes in money, no promised returns. Not financial advice.

### `wallet_setup_guide` (~95 tokens)

Wallet setup guide (self-custody)

Exact steps and @mysten/sui code for an agent to create its OWN Sui Ed25519 keypair locally, fund it with SUI (gas) and USDC, and sign/submit transactions itself. Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

### `get_swap_quote` (~175 tokens)

Swap quote: DeepBook v3 vs Cetus aggregator

Quote a spot swap between SUI/USDC/WAL/DEEP/CETUS and compare DeepBook v3 pools directly (direct or 2-hop) with the Cetus aggregator. Returns the best route, expected output, price impact and fees. Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `amount` (number, required): Amount of the from coin in human units, e.g. 2.5
- `from` (string, required): Coin symbol: SUI, USDC, WAL, DEEP, CETUS
- `sender` (string, required): YOUR Sui address (0x...). Public address only; never send a key.
- `to` (required)

### `build_swap_tx` (~281 tokens)

Build UNSIGNED swap transaction

Build base64 UNSIGNED Sui transaction bytes for a swap on the chosen venue, with the sender set to your address and an on-chain minimum-out from slippage_bps. The bytes are simulated against mainnet before return. You sign locally and submit yourself; nothing is executed by the desk. Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `amount` (number, required): Amount of the from coin in human units, e.g. 2.5
- `from` (string, required): Coin symbol: SUI, USDC, WAL, DEEP, CETUS
- `route` (string): DeepBook only: route string from get_swap_quote, e.g. 'SUI_USDC -> WAL_USDC'
- `sender` (string, required): YOUR Sui address (0x...). Public address only; never send a key.
- `simulate` (boolean): Simulate the unsigned bytes against mainnet (no signature, nothing executed)
- `slippage_bps` (integer): Max slippage in basis points (50 = 0.5%); tx reverts below min_out
- `to` (required)
- `venue` (string, required): Venue from get_swap_quote (best.venue)

### `check_holder` (~115 tokens)

The Secret Journals holder check

Check on chain (Sui mainnet) whether an address holds the The Secret Journals license token. Holders unlock extra read-only education tools (golden_path_market_read). Non-holders keep every basic tool. Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `address` (string, required): YOUR Sui address (0x...). Public address only; never send a key.

### `golden_path_market_read` (~149 tokens)

Golden Path market read (holders)

For The Secret Journals holders (checked on chain from 'address'): a compact market read across SUI, WAL and DEEP on DeepBook (mid, spread, 24h volume, 1h/4h/24h range and regime) plus the Golden Path pre-trade checklist. Education only, not a signal to buy or sell, no return claims. Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `address` (string, required): YOUR Sui address (0x...). Public address only; never send a key.

### `build_create_balance_manager_tx` (~106 tokens)

Build: create my DeepBook BalanceManager

Create and share a DeepBook v3 BalanceManager owned by your address (needed for limit orders). Returns UNSIGNED tx bytes (simulated against mainnet). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `sender` (string, required): YOUR Sui address (0x...). Public address only; never send a key.

### `build_bm_deposit_tx` (~175 tokens)

Build: deposit into my BalanceManager

Deposit a coin from your wallet into your own BalanceManager. Returns UNSIGNED tx bytes (simulated against mainnet). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `amount` (number, required): Amount of the from coin in human units, e.g. 2.5
- `balance_manager_id` (string, required): YOUR DeepBook BalanceManager id (0x + 64 hex), from build_create_balance_manager_tx effects
- `coin` (string, required): Coin symbol: SUI, USDC, WAL, DEEP, CETUS
- `sender` (string, required): YOUR Sui address (0x...). Public address only; never send a key.

### `build_bm_withdraw_tx` (~181 tokens)

Build: withdraw from my BalanceManager

Withdraw a coin from your own BalanceManager back to your address (always to the owner). Returns UNSIGNED tx bytes (simulated against mainnet). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `amount` (number, required): Amount of the from coin in human units, e.g. 2.5
- `balance_manager_id` (string, required): YOUR DeepBook BalanceManager id (0x + 64 hex), from build_create_balance_manager_tx effects
- `coin` (string, required): Coin symbol: SUI, USDC, WAL, DEEP, CETUS
- `sender` (string, required): YOUR Sui address (0x...). Public address only; never send a key.

### `build_limit_order_tx` (~263 tokens)

Build: DeepBook limit order

Place a spot limit order on a DeepBook v3 pool from your BalanceManager (fees in the input coin, no DEEP needed). Validates tick/lot/min size. Optional deposit_first funds it in the same tx. No leverage. Returns UNSIGNED tx bytes (simulated against mainnet). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `balance_manager_id` (string, required): YOUR DeepBook BalanceManager id (0x + 64 hex), from build_create_balance_manager_tx effects
- `client_order_id` (string)
- `deposit_first` (boolean): Also deposit the needed coin from your wallet in the same tx
- `expire_hours` (number)
- `pool` (string, required): DeepBook pool BASE_QUOTE, e.g. SUI_USDC
- `post_only` (boolean): Post-only (maker): rejects if it would cross
- `price` (number, required)
- `quantity` (number, required): Base quantity
- `sender` (string, required): YOUR Sui address (0x...). Public address only; never send a key.
- `side` (string, required)

### `build_cancel_order_tx` (~168 tokens)

Build: cancel DeepBook order(s)

Cancel one order (order_id) or all your orders in a pool, and withdraw settled amounts into your BalanceManager. Returns UNSIGNED tx bytes (simulated against mainnet). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `balance_manager_id` (string, required): YOUR DeepBook BalanceManager id (0x + 64 hex), from build_create_balance_manager_tx effects
- `order_id` (string)
- `pool` (string, required): DeepBook pool BASE_QUOTE, e.g. SUI_USDC
- `sender` (string, required): YOUR Sui address (0x...). Public address only; never send a key.

### `get_book_depth` (~103 tokens)

DeepBook depth (on-chain)

Level-2 depth around mid read on chain from a DeepBook v3 pool (bids/asks [price, qty]). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `pool` (string, required): DeepBook pool BASE_QUOTE, e.g. SUI_USDC
- `ticks` (integer)

### `get_cetus_pool` (~144 tokens)

Cetus CLMM pool info

Read-only Cetus CLMM pool state (coins, fee rate, tick spacing, liquidity, current tick, price) by pool_id, or discover the Cetus pools on the current from->to route. Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `from` (string): Coin symbol: SUI, USDC, WAL, DEEP, CETUS
- `pool_id` (string)
- `to`: Coin symbol: SUI, USDC, WAL, DEEP, CETUS

### `walrus_store_guide` (~83 tokens)

Walrus: store a public receipt/note

How to store a PUBLIC trade receipt or strategy note on Walrus mainnet with your own key (receipt schema + @mysten/walrus code). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

### `build_walrus_register_tx` (~153 tokens)

Build: Walrus register blob

Encode your public text (receipt/note) and build the Walrus register-blob tx paid in WAL by you; returns the blob_id. Then upload+certify locally (see walrus_store_guide). Refuses content that looks like a secret. Returns UNSIGNED tx bytes (simulated against mainnet). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `content` (string, required)
- `epochs` (integer)
- `sender` (string, required): YOUR Sui address (0x...). Public address only; never send a key.

### `read_walrus_blob` (~96 tokens)

Read a Walrus blob

Read a public Walrus mainnet blob by id via the public aggregator (text, or base64 preview if binary; max 64 KB). Non-custodial: the desk never sees or holds keys and never moves funds; it returns quotes and UNSIGNED transactions only. Spot only, no leverage. Education only, not financial advice.

Input parameters:

- `blob_id` (string, required)
- `max_bytes` (integer)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/sajanmelcher-plumbline-mcp/plumbline-mcp-2#diagnostics

## Score history

- 2026-11-05: 81
- 2026-11-04: 80
- 2026-11-03: 80
- 2026-11-02: 79
- 2026-11-01: 79
- 2026-10-31: 78
- 2026-10-30: 78
- 2026-10-29: 77
- 2026-10-28: 77
- 2026-10-27: 76
- 2026-10-26: 76
- 2026-10-25: 75
- 2026-10-24: 75
- 2026-10-23: 74
- 2026-10-22: 74
- 2026-10-21: 74
- 2026-10-20: 73
- 2026-10-19: 73
- 2026-10-18: 72
- 2026-10-17: 72
- 2026-10-16: 71
- 2026-10-15: 73
- 2026-10-14: 72
- 2026-10-13: 72
- 2026-10-12: 71

## Common questions

### What is the The Spice Melange Trading Desk: DeepBook market data… MCP server?

The Spice Melange Trading Desk: DeepBook market data… is an MCP server listed in the public MCP registry as io.github.SajanMelcher/plumbline-mcp. A Mentat's eye on Sui DeepBook v3: read-only market data plus desk template tools. No keys. This page covers its hosted endpoint (https://plumbline-mcp.fly.dev/mcp).

### Is the The Spice Melange Trading Desk: DeepBook market data… MCP server safe to use?

The Spice Melange Trading Desk: DeepBook market data… scores 81 out of 100 on VerifyMCP. 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 The Spice Melange Trading Desk: DeepBook market data… MCP server expose?

The Spice Melange Trading Desk: DeepBook market data… exposes 31 tools: list_pools, get_mid_price, get_order_book, get_volume, get_pool_params, and 26 more. Their descriptions and schemas cost roughly 5,520 tokens of context every time the server is loaded.

### Does the The Spice Melange Trading Desk: DeepBook market data… MCP server require authentication?

No. We connected to The Spice Melange Trading Desk: DeepBook market data… without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the The Spice Melange Trading Desk: DeepBook market data… MCP server still maintained?

The Spice Melange Trading Desk: DeepBook market data… is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

### What did VerifyMCP test on the The Spice Melange Trading Desk: DeepBook market data… MCP server?

VerifyMCP ran 13 checks on The Spice Melange Trading Desk: DeepBook market data…, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.

## Links

- Remote endpoint: https://plumbline-mcp.fly.dev/mcp
- Repository: https://github.com/SajanMelcher/plumbline-mcp
- Website: https://thespicemelange.org/plumbline/
- Changelog RSS feed: https://verifymcp.io/servers/sajanmelcher-plumbline-mcp/plumbline-mcp-2.xml
- Changelog JSON feed: https://verifymcp.io/servers/sajanmelcher-plumbline-mcp/plumbline-mcp-2/changelog.json
- Trust report (JSON): https://verifymcp.io/servers/sajanmelcher-plumbline-mcp/plumbline-mcp-2.json
- HTML version of this page: https://verifymcp.io/servers/sajanmelcher-plumbline-mcp/plumbline-mcp-2
