Skip to content
Rubin logo

Rubin MCP server

Which MCP servers are Rubin's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.

read 2026-10-26

← Back to Rubin

Whose server it is
  • Registry nametrade.rubin/exchangeverified in the MCP registry

The registry name sits under rubin.trade. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.

When we asked itchecked 2026-10-26
  • Stateanswerschecked 2026-10-26
  • Tools33
  • Server calls itselfritbit-mcp
  • Server version0.2.0
  • Protocol version2025-06-18

On 2026-10-26 the server answered initialize and tools/list without a sign-in. First answer in 557 ms.

Should an agent connect itNot proven either way yet
  • Whether its tools do the product's job has not been judged yet.

Once connected

  • cancel_order, cancel_all_orders, batch_cancel change data without a sign-in: anyone with the address can call them.
  • Parameters are untyped or undescribed in 14 of 33 tools: check arguments before calling.

Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.

Measured dailydaily checks: 8, the first on 2026-10-26
  • INITE MCP score66 of 100answers 100 · definitions 93 · context 79 · use 0 · connects 100 · lowered by the warning signs below
  • Answered100% of days8 of 8 daily checks
  • Median first answer553 ms
  • Space in an agent's context≈ 6,419 tokensthe definitions of all its tools (33), which an agent carries on every turn
  • Tool definitionsA · 93 of 100
  • Typed results0 of 33 toolsdeclared outputSchema: results come typed, read once
  • Parameters without a description: in 14 of 33

What an agent can do with it

  • can do · trade crypto perpetual futures with leverage from their own wallet
  • not sure · automate market making and algorithmic trading through API trading keys

Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?

Worth a look

  • Tools that change data, on a server that answers without a sign-in: cancel_order, cancel_all_orders, batch_cancel

A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →

Tools it offers33 tools · read 2026-10-26
  • whoami

    Report what this session controls: the master account (its address in BOTH forms — cosmos rit1… and EVM 0x…, the same 20 bytes), the subaccount, whether it can trade or is read-only, and the exact on-chain authorization scope (which…

  • get_block_height

    Return the latest chain block height. Useful for SHORT_TERM order goodTilBlock math.

  • list_markets

    List all perpetual markets with ticker, status and oracle price. Use this first to discover valid market tickers (e.g. BTC-USD) before placing orders.

  • get_market

    Get details for one perpetual market (clobPairId, atomicResolution, quantumConversionExponent, tick/step sizes, oracle price, status).

  • get_orderbook

    Get the live orderbook (bids/asks) for a market, optionally truncated to a depth.

  • get_candles

    Get OHLCV candles for a market at a given resolution. Useful for trend/volatility analysis.

  • get_candles_multi

    Get recent OHLCV candles for a market across MULTIPLE resolutions in one call — by default ALL indexer resolutions (1MIN, 5MINS, 15MINS, 30MINS, 1HOUR, 4HOURS, 1DAY) — so the agent can read the trend across timeframes at once. Returns {…

  • get_balance

    Get the subaccount collateral (USDC asset position) and the on-chain wallet bank balances. Collateral is what backs trading; the WALLET balance is where money sent to the account lands and is NOT collateral until deposited. `funding`…

  • get_equity

    Get the subaccount summary: equity, freeCollateral, marginEnabled, open perpetual positions and asset positions.

  • get_positions

    Get perpetual POSITIONS with size, side, entryPrice, unrealizedPnl, realizedPnl and netFunding. Defaults to OPEN positions. NOTE: a position is what you HOLD after an order fills — it is NOT an open order. When the user asks loosely "what…

  • get_open_orders

    Get currently active ORDERS for the subaccount, optionally filtered by market and side. Includes OPEN resting orders and UNTRIGGERED conditional orders (TP/SL accepted on-chain but not yet triggered). Returns { orders: [...] }. This does…

  • get_portfolio

    One-call snapshot of everything the account has "open": equity & freeCollateral, every open POSITION (with notional, unrealized PnL and estimated liquidation price), every active ORDER (resting + untriggered TP/SL), and account margin…

  • get_position_risk

    Margin health for the subaccount: equity, freeCollateral, total maintenance/initial margin, maintenanceMarginBufferUsd (the EXACT liquidation guard — liquidatable when < 0), marginUsageRatio (1.0 = at liquidation), account leverage, and…

  • get_fills

    Get executed fills for the subaccount, including price, size, fee and maker/taker liquidity.

  • get_pnl

    Get historical PnL ticks for the subaccount (equity, totalPnl, netTransfers over time). Use createdOnOrAfter to bound the range.

  • get_funding_status

    Where the account's USDC sits: in the WALLET (bank balance — money sent to the account lands here and is NOT collateral) vs in the trading SUBACCOUNT (equity / free collateral). Returns depositableUsdc (wallet minus the $0.95 gas…

  • deposit_to_subaccount

    Deposit USDC from the account's WALLET into its trading SUBACCOUNT so it becomes collateral. Without amountUsd it moves everything above the $0.95 gas reserve (what the web app does); with amountUsd it moves exactly that much, as long as…

  • top_up_gas

    Move a little USDC from the trading subaccount back to the WALLET when the wallet is at or below $0.55 — just enough to restore the $0.95 gas reserve that deposit/withdraw transactions need. Only the gas reserve, only to the account's own…

  • place_limit_order

    Place a limit order. Default timeInForce=GTT (long-term, durable, broadcast-commit so errors return synchronously). Use SHORT_TERM only for latency-sensitive orders (expire within ~20 blocks, broadcast async). NOTE: stateful (GTT) orders…

  • place_market_order

    Place an IOC market order. It executes as an IOC limit at a worst-acceptable price mirrored around the oracle by side — BUY caps ABOVE the oracle, SELL below — at slippageBps distance (default 500 = 5%). Fills happen at book prices; the…

  • cancel_order

    Cancel a single order by clientId. For SHORT_TERM pass goodTilBlock; for LONG_TERM/CONDITIONAL pass goodTilTimeSeconds (the original good-til value, available from get_open_orders). Returns `confirmation` with the verified result…

  • cancel_all_orders

    Cancel every OPEN order for the subaccount in a market (handles SHORT_TERM and LONG_TERM automatically). Returns `confirmation.remainingOpen` — orders still OPEN after the cancel (0 = all gone); if > 0, retry.

  • batch_cancel

    Cancel multiple SHORT_TERM orders in one tx. SHORT_TERM only (chain limitation) — for stateful/mixed use cancel_all_orders.

  • place_stop_loss

    Place a reduce-only Stop loss (conditional market order) that triggers at triggerPrice. Side must be the CLOSING side of the position: SELL closes a LONG, BUY closes a SHORT. Once triggered it executes as an IOC limit bounded at…

  • place_take_profit

    Place a reduce-only Take profit (conditional market order) that triggers at triggerPrice. Side must be the CLOSING side of the position: SELL closes a LONG, BUY closes a SHORT. Once triggered it executes as an IOC limit bounded at…

  • close_position

    Close all or part of an open perpetual position with a reduce-only MARKET order. Reads the current position, flips the side automatically (LONG→SELL, SHORT→BUY) and sizes the close. percent defaults to 100 (full close); a partial close is…

  • close_all_positions

    Flatten EVERY open perpetual position with reduce-only MARKET orders (one per market). Respects the operator market allowlist (disallowed markets are skipped and reported). Each close is bounded at oracle ± slippageBps mirrored by side…

  • open_position

    Enter a NEW position with a MARKET order, sized by base `size` OR quote `notionalUsd` (exactly one required; notionalUsd converts at the oracle price and is floored to the step size). Optionally attach a reduce-only stopLossPrice and/or…

  • get_news

    Fetch the latest headlines from the ritbit news feed (curated crypto / markets / business channels, newest first). Filter by `category` (crypto|markets|business) or explicit `channels`, and/or a free-text `query` (a ticker or keyword…

  • get_leaderboard

    The trader PnL leaderboard for a time span (ONE_DAY, SEVEN_DAYS, THIRTY_DAYS, ONE_YEAR, ALL_TIME): rank, username, address, PnL (USD), ROI (%) and current equity per trader, paginated. Also returns `me` — this account's own row on that…

  • get_my_rank

    Where THIS account ranks on the PnL leaderboard: rank, board size ("21 of 66"), PnL, ROI and equity — for one time span, or for every time span (ONE_DAY … ALL_TIME) when none is given. A null entry means the account is not ranked on that…

  • get_fee_tier

    This account's current trading fee tier and conditions: maker/taker fee (% of notional; a negative maker fee is a rebate), the 30-day maker/taker volume it is judged on, any staking discount, the next tier and how much more 30d volume it…

  • get_referral_program

    This account's referral / affiliate program status: referral code and link, whether the link is unlocked (lifetime volume threshold, or already an affiliate), current affiliate tier and taker-fee share, referred volume (30d / all-time)…

How to connect

Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:

{
  "mcpServers": {
    "exchange": {
      "type": "http",
      "url": "https://mcp.mainnet.rubin.trade/mcp"
    }
  }
}

Add it

Claude Code, in a terminal

claude mcp add --transport http rubin https://mcp.mainnet.rubin.trade/mcp

Add to CursorAdd to VS Code

claude.ai, ChatGPT and other clients: add https://mcp.mainnet.rubin.trade/mcp as a custom connector in the settings.

Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.