The multi MCP server
One Model Context Protocol server gives any MCP-capable harness the aggregated book across every perp venue and — with a scoped key — routed perp trades, pair trades, and cross-chain funding.
Run it
Run it locally over stdio (any harness that spawns a command), or point your harness at the hosted endpoint https://multi-venym-labs.vercel.app/mcp and send your key via Authorization: Bearer. See per-harness setup for the exact config in every harness.
MULTI_API_KEY=multi_sk_live_... npx -y @multidex/mcpEnvironment variables
MULTI_API_KEYmulti_sk_… key. Unlocks account reads + execution tools.MULTI_BASE_URLREST base (default https://multi-venym-labs.vercel.app/api).MULTI_READONLY1 → hard read-only (no execution tools registered).MULTI_READONLY is unset — and the backend enforces scopes + risk policy regardless.Real-time in MCP
MCP tool calls are request/response, so there are no long-lived stream_* tools. Use the snapshot tools (get_orderbook, get_ticker) and the bounded watch_* collectors, which gather a short burst of live events and return them. For continuous streaming, use the SDK directly.
Tool reference
29 tools with a key, 9 without. The 9 public market-data and watcher tools need no key; account, execution, strategy, pair, and swap tools require a multi_sk_ key with the matching scope.
Market data
Public — no key required.
get_marketspublicList tradable perp markets (optional search).get_tickerpublicLatest price + 24h stats for a symbol.get_orderbookpublicAggregated bids/asks across every venue.get_candlespublicHistorical OHLCV candles.get_tradespublicRecent trade prints.get_routingpublicBest venue + the alternatives it beat, for a given order.get_market_statspublic24h volume, funding, open interest.Watchers
Bounded live collectors — public, no key required.
watch_tradespublicCollect a bounded (≤10s) burst of live trades.watch_orderbookpublicCollect a bounded (≤10s) burst of book updates.Account
Read the key's subject wallet.
get_positionsaccount:readOpen positions for the subject wallet.get_balancesaccount:readBalances across venues.get_ordersaccount:readOpen orders.get_portfolioaccount:readOne-call cross-venue portfolio: positions, PnL, funding, risk summary.list_strategiesaccount:readList execution strategies (optional status filter).get_strategyaccount:readFetch one strategy by id (slices, fills, status).Execution
Real trades — scope-gated and risk-policy checked.
execute_orderorders:executePlace a smart-routed perp order. Real trade.cancel_orderorders:executeCancel an open order.batch_ordersorders:executePlace up to 10 orders in one call. Real trades.open_positionorders:executeOpen a position by direction + size; optional TP/SL bracket. Real trade.close_positionorders:executeClose / reduce a position. Real trade.Strategies
Server-run execution algos.
create_twap_orderorders:executeServer-run TWAP: timed market slices. Real trades.create_scaled_orderorders:executeScaled ladder of limit orders across a price range. Real trades.cancel_strategyorders:executeCancel a strategy (stops future TWAP slices).Pairs
Long/short pair trades.
open_pair_positionpairs:executeOpen a long/short pair trade. Real trades.close_pair_positionpairs:executeClose a pair position.Swaps
Cross-chain swaps: quote, prepare (non-custodial), or execute.
swap_quoteswap:quoteCompare cross-chain swap routes.swap_prepareswap:quoteBuild an unsigned swap tx (non-custodial).swap_executeswap:executeExecute a swap headlessly. Moves funds.get_swap_statusswap:quotePoll a swap by id.open_position also accepts takeProfitPrice / stopLossPrice — after the entry fills, the server places reduce-only TP (limit) and SL (stop-market) orders on the same venue.Resources & prompts
- —Resources:
multi://llms.txt,multi://markets,multi://ticker/{symbol}. - —Prompts:
analyze_market(pull data + summarize a symbol),plan_swap(quote + explain, confirm before executing),review_portfolio(pull the portfolio + assess risk),plan_position(size an entry with TP/SL, confirm before executing).