Skip to main content

JW3 MCP Server

io.github.agnostic4321-ops/jw3-mcp-cliVersion 0.1.1

JW3.ai remote MCP server for market reads and confirm-gated trading execution.

Status

Responds344 msAnswered our handshake without sign-in.

Registry data may be out of date

We could not refresh it, so this page shows the last copy.
Last checked
Nov 14, 2026, 14:44 UTC
Latency
344 ms
Remotes responding
1 of 1
Sign-in
No sign-in
Hosting
Hosted outside the EU (detected)
Registry data as of
Nov 14, 2026, 22:14 UTC

Data from the official MCP Registry, checked by run.zero. How we check

Connect

Streamable HTTP
https://nzhbfeahymmyqerzjgbt.supabase.co/functions/v1/mcp-serverResponds344 ms
No sign-in

Claude Code

claude mcp add --transport http jw3-mcp-cli https://nzhbfeahymmyqerzjgbt.supabase.co/functions/v1/mcp-server

Claude Desktop and claude.ai

Settings > Connectors > Add custom connector
Name: jw3-mcp-cli
Remote MCP server URL: https://nzhbfeahymmyqerzjgbt.supabase.co/functions/v1/mcp-server

Cursor

{
  "mcpServers": {
    "jw3-mcp-cli": {
      "url": "https://nzhbfeahymmyqerzjgbt.supabase.co/functions/v1/mcp-server"
    }
  }
}

VS Code

code --add-mcp '{"name":"jw3-mcp-cli","type":"http","url":"https://nzhbfeahymmyqerzjgbt.supabase.co/functions/v1/mcp-server"}'

Built your own server? run.zero hosts MCP servers on European infrastructure.

Host your own MCP server on run.zero

Tools

27 tools

Tools of JW3 MCP Server
Read-only
Idempotent
Open world
analyze_marketSERVER-EXECUTED, read-only: ask the JEV decision model for a typed verdict (verdict + agreement% + snapshot age). Pass family (cex | dex_perps | prediction) + venue + symbol. The server builds multi-timeframe candles itself for CEX (venue+symbol only); dex_perps needs snapshot.timeframes [{tf, candles:[{o,h,l,c,v?}]}]; prediction needs snapshot.brief ONLY — 2–6 research notes YOU assemble ({title, snippet, url, at} with real URLs you can vouch for): the server fetches the live book itself and grounds the call, so never paste prices as snapshot.market (a model-supplied market is ignored). Call this BEFORE any trade proposal and cite the verdict (agree/disagree + why) in the proposal thesis — uncertain/mixed verdicts mean no trade. NEVER narrate instead of calling it.Not declaredYesNot declaredYes
build_defi_txREAD-ONLY / UNSIGNED: build an unsigned DeFi transaction payload (supply, redeem, borrow, repay, claim) or quote LP amounts (quote_lp) via the official Binance Web3 DeFi API. Never signs, never broadcasts, never touches private keys — returns unsigned contract calldata (and optional simulation result) for wallet signing or CLI inspection.Not declaredYesNot declaredYes
cancel_orderCancel an open CEX order by order id. Needs trade:execute + YOLO eligibility; per-call kill-switch/autonomy check.YesNoYesYes
close_positionClose an open CEX futures position (or reduce it) with a reduce-only market order. Real money. Needs the trade:execute scope AND user YOLO eligibility; per-call kill-switch/autonomy check. NEVER touch positions the user marked manual unless explicitly asked.YesNoNoYes
daily_prepBuild the morning brief (risk header, positions, 5-venue funding/OI, liquidation proxy, macro 24h, regime, JEV bias per name) and record it as the day's 'Daily analysis' in the diary. Reads need mcp:read; the diary write needs trade:propose (or pass write:false for a dry run). Sections carry [DATA]/[PROXY]/[UNAVAILABLE] tags — gaps are never synthesized.YesNoNot declaredYes
execute_tradeExecute a live CEX order immediately (real money) via stored exchange keys. Needs the trade:execute scope AND user YOLO eligibility (kill switch off, autonomy != propose_only); caps enforced per order. Fee-aware: pass stop to refuse stops that cannot survive round-trip fees (min-move gate), or risk_usd to size from risk (needs stop, else an ATR stop from venue klines). Returns the fee estimate + min-move in the result. CEX spot/futures only — never on-chain.YesNoNoYes
get_insightsREAD-ONLY: one-shot summary of the user's Insights page — market regime (BTC/ETH price + 24h, total market cap, Fear & Greed, ETF 7d net flow, stablecoin supply), cross-venue funding extremes, the fee-aware carry board, DEX perp volume share, the caller's own fee drag from the Diary, headlines, and a deterministic brief. Values may be null/unknown; missing blocks are listed in `gaps` and are never synthesized. Cite as 'observed at <time>'. Optional args: days (1-90, default 30), notional_usd (default 10000), fee_bps (default 5). Never trades, never writes.Not declaredYesNot declaredYes
list_connectionsREAD-ONLY: list the user's connected CEX venues (id, exchange slug, label, status, markets) so follow-up reads can target a connectionId. `markets` is spot|futures|both as verified at save (Kraken dual keys; KuCoin/Bitget futures scope) — a row with markets=both covers perpetuals, so prefer it for positions reads. Returns metadata only, never keys or secrets. Call this first when the user asks about positions, balances, or anything per-exchange.Not declaredYesNot declaredNot declared
list_fillsREAD-ONLY: list recent execution fills on a CEX connection (individual order executions with price/qty/fee, spot + futures). Never moves funds, never writes Diary rows — fills are Activity history (see read_closed_pnl for realized PnL). Unimplemented venues return an empty list; a venue walk that exceeds its time budget fails loud, never truncated-as-empty.Not declaredYesNot declaredYes
list_open_ordersREAD-ONLY: resting open orders across the user's CEX connections (spot + futures) — the same per-venue envelope as agent-chat kind=open_orders ({kind, observedAt, venues:[{connectionId, exchange, label, ok, orders, count}]}). Narrow with exchange and/or connectionId, filter one market with pair; omit all three to fan out across every active connection. An empty book reads as no resting orders, never as a flat position.Not declaredYesNot declaredYes
propose_bracketAPPROVAL CARD ONLY — NEVER auto-executed: propose one atomic bracket (entry + protective stop + 1–3 OCO take-profits) for in-app approval. Recorded as a proposed setup row (Diary → setups → Send to ticket). Never executes, never moves funds. Needs the trade:propose scope (PAT).NoNoNoNo
propose_close_all_positionsAPPROVAL CARD ONLY — NEVER auto-executed: propose flattening EVERY open position at once (or one venue/pair scope) for in-app approval. Records the proposal only — no order is placed, nothing is cancelled. Needs the trade:propose scope (PAT).NoNoNoNo
propose_diary_noteAppend (default) or replace a markdown note on one diary day (diary_day_notes upsert — the same append/replace write the agent-chat approval path and daily_prep perform). Diary-only: never executes a trade, never moves funds. Needs the trade:propose scope (PAT).YesNoNoNo
propose_predict_marketAPPROVAL CARD ONLY — NEVER auto-executed: propose a prediction-market trade for in-app approval. JEV-gated: pass the consult_jev family=prediction verdict (run analyze_market first) — a call without one is refused. Recorded as a proposal trail row. Never executes, never moves funds. Needs the trade:propose scope (PAT).NoNoNoNo
propose_tradeAPPROVAL CARD ONLY — NEVER auto-executed: propose a trade setup for the user to approve in-app (Diary → setups → Send to ticket). Never executes, never moves funds. Needs the trade:propose scope (PAT).NoNoNoNo
propose_trade_ideasAPPROVAL CARD ONLY — NEVER auto-executed: propose 1–3 personalized trade opportunities (best-first) for in-app approval. Each idea is recorded as a proposed setup row (Diary → setups → Send to ticket) plus one batch trail row. Never executes, never moves funds. Needs the trade:propose scope (PAT).NoNoNoNo
read_closed_pnlREAD-ONLY: realized/closed-PnL history on a CEX connection (one row per closed position carrying net pnl + fees, for diary sync). Never moves funds. Rows whose venue reports no side stay null — side is never inferred from the PnL sign; Binance rows carry entryPrice 0 = unknown (the income feed has no entry price) and exitPrice is the paired closing fill when one was found.Not declaredYesNot declaredYes
read_defiREAD-ONLY: query DeFi protocols, yield/lending/liquid-staking/LP/RWA markets, or wallet positions across all 10 Binance Web3 DeFi chains (BNB 56, Ethereum 1, Base 8453, Arbitrum 42161, Arc 5042, Polygon 137, Optimism 10, Avalanche 43114, Robinhood 4663, Katana 747474). Returns APY, base/reward APY breakdown, TVL, redeemDelayDays, yieldAnalytics, and investmentId with a fetch timestamp. Use propose_defi when the user wants an action card.Not declaredYesNot declaredYes
read_diary_dayREAD-ONLY: read one diary day (trades, setups, analyses, actions) or an explicit day RANGE. Never writes — saving a note stays a propose_diary_note approval card. Pass an explicit day (YYYY-MM-DD) or an explicit start_day + end_day range (inclusive, max 31 days) — there is no today default, so ask the user when no day is given. Returns the most recent rows first with totals; quote it as observed diary state, not a live venue read.Not declaredYesNot declaredNot declared
read_live_datumREAD-ONLY: fetch ONE specific live datum on demand (open positions, account balances, or a market quote) instead of waiting for the context snapshot. Never moves funds, never places an order, never widens the context on its own — ask for exactly the datum you need. Returns numbers WITH the venue and a fetch timestamp; report them as 'observed at <time> on <venue>'. If the result has no fetched number, say the value is unavailable — NEVER invent a placeholder. Present positions/balances/order reads as an inline markdown table in your reply text (never 'shown above'); when empty, say 'No open positions' explicitly. Not for writing anything; use a propose_* tool when the user wants an action.Not declaredYesNot declaredYes
read_news_briefREAD-ONLY: fetch the latest crypto headlines as keyword-matched news clusters for fundamentals analysis (ETF flows, unlocks, macro, hacks — read the headlines here, act through a propose_* tool). Optional pair (BTC, ETH, or SOL — also accepts BTC/USDT or BTC-USD forms) narrows to that asset's keywords; omit it for all three. Returns the top clusters newest-first with per-item source links and recency (publishedAt + ageHrs) plus a fetch timestamp; quote them as 'observed at <time> from <source>'. If no headlines match, say so — NEVER invent a headline.Not declaredYesNot declaredYes
read_onchain_balancesRead-only onchain wallet balances across EVM/Solana/TON/Tron/BTC via the balance cache + public RPCs. Server resolves the user's wallet addresses itself (addresses only, never keys). The chains filter uses canonical slugs and matches non-EVM chains exactly — `sol` never matches `solana`, `bitcoin` reads as `btc`; one linked EVM address is readable on any requested EVM chain. TON matches by chain slug, not address form — raw (0:…), bounceable (EQ…) and non-bounceable (UQ…) versions of one wallet resolve to the same balance. Every linked wallet and every requested chain gets an explicit row in `reads` (ok | empty | invalid-address | no-wallet): lowercased Solana/Tron rows surface as invalid-address with a re-link hint instead of vanishing.Not declaredYesNot declaredYes
read_risk_limitsREAD-ONLY: read the user's risk posture (kill switch, autonomy level, caps, daily usage). Never edits limits — the agent must check this before proposing live size.Not declaredYesNot declaredNot declared
read_venue_balancesREAD-ONLY: venue-held funds per linked wallet address — Hyperliquid (mode-aware total), Aster (keyless per-asset), dYdX (subaccount equity), Pacifica (account by Solana address), Polymarket (spendable pUSD + positions value). Reads are public and keyless against the EXPLICIT owner address (never an agent address); each row names the address it read. A failed venue nulls its leg — never a coerced 0. Omit venue to read every linked venue; totalUsd sums the legs that answered and partial:true names every leg that did not.Not declaredYesNot declaredYes
reconcile_realized_pnlCounts the venue's realized LOSSES against the daily risk counters. A trade closed by the VENUE's own stop never goes through the close path, so without this the daily loss cap can never fire on it. Idempotent: each venue trade is counted exactly once, tracked in the realized-PnL ledger. Never moves funds, never places an order. Returns how many trades were counted, the loss recorded, and what was skipped and why.YesNoNot declaredYes
reserve_sweepKuCoin reserve sweep (real money on live fire): keeps `keep` units of `currency` in the futures wallet and moves the excess futures -> main -> trade in two legs carrying the same amount. Dry-run by default (plan only, zero bytes to the venue, no YOLO gate). Live fire (dryRun:false) needs the trade:execute scope AND user YOLO eligibility (kill switch off, autonomy != propose_only). KuCoin only.YesNoNoYes
set_exitsArm or replace venue-native SL and/or TP on an open CEX position (spot or futures across binance, bybit, okx, kucoin, gateio, mexc, bitget, bingx, coinbase, kraken). Clears existing stops on the pair and arms the new legs sized against the live position. Needs trade:execute + YOLO eligibility.YesNoNoYes

Details

Registry status
Active
Published
Nov 9, 2026
Updated
Nov 9, 2026
Categories (suggested)
Finance and paymentsSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
GDPR
Not declared

Are you the operator? Claim this listing