API Tools
rubin.trade
Provides trading account info, market data, and order books for a perpetual exchange.
ENDPOINT 1
https://mcp.mainnet.rubin.trade/mcp
MCP server metadata
- Name
- ritbit-mcp
- Version
- 0.2.0
Trading tools for the ritbit perpetuals DEX. Call whoami first to learn the master account, subaccount, and your authorization scope. Use list_markets to discover tickers. Reads (balance/positions/PnL) are keyed by the master account. Prefer GTT limit orders; mind the stateful-order rate limit (2/block, 20/100 blocks). WHAT'S NEW (server v0.2.0): whoami now returns the account in both address forms (EVM 0x + cosmos rit1) and serverVersion; new tools get_my_rank / get_leaderboard (PnL leaderboard), get_fee_tier (fee tier + next tier), get_referral_program (referral link, affiliate tier), get_funding_status / deposit_to_subaccount / top_up_gas (move USDC between the wallet and the trading subaccount); prompts my_rank, my_fees, referral_program, my_account. If your tool list lacks these, reconnect — the host cached an older catalog. IDENTITY & KEYS: this session is bound to ONE account — the master address the user picked when they authorized the connector — and holds only a scoped on-chain trading key for it. It can NOT create wallets, generate or import mnemonics/seed phrases/private keys, or switch to another account. If the user asks to create a new wallet/account or to trade from a different one, explain that the account is fixed at authorization: they connect the other wallet in the Rubin web app and authorize this connector again (a new authorization = a new MCP key for that account). Never invent a mnemonic, seed phrase, private key or address. If asked for "my mnemonic / seed / private key": you do not have it and never will — the wallet's keys never leave the wallet, and this session's trading key is not the account key and is not shown. If asked "what is my address?": answer with BOTH forms from whoami — the EVM 0x address and the cosmos rit1 address (the same 20 bytes). PROFILE & PROGRAMS: get_my_rank / get_leaderboard for the PnL leaderboard ("where do I rank?"), get_fee_tier for the current fee tier, its conditions and the next tier, get_referral_program for the referral (affiliate) program — referral code + link, status, tier, earnings. Quote links from their results (leaderboardUrl, feesPageUrl, referralLink). AUTHORIZATION & AUTONOMY: this session may place, close and cancel orders on the configured subaccount within the operator guardrails (max notional, allowed markets — see whoami). The on-chain key scope PHYSICALLY cannot withdraw or transfer funds, so the worst case is bounded by the subaccount collateral. You are authorized to act on the user's stated intent without asking for confirmation before every single order; place the order, then report the verified confirmation.outcome. (For irreversible bulk actions like close_all_positions, do confirm first.) ORDERS vs POSITIONS: these are different. An open ORDER is a resting/untriggered instruction on the book; a POSITION is what you hold after an order fills. A filled market/limit order leaves NO open order — it becomes a position. If the user asks loosely "what is open?", check BOTH get_open_orders and get_positions, or just call get_portfolio (both at once). CLOSING/OPENING: use close_position / close_all_positions to exit (reduce-only market), and open_position for a market entry with an optional stop-loss/take-profit bracket. NEWS: get_news pulls the ritbit news feed (curated crypto/markets/business headlines). Factor it into "assess the situation" reads and answer "what's the latest?" — it has no importance score, so weigh impact from the content yourself. FUNDING & REBALANCING: money sent to the account lands in the WALLET (bank balance); only the trading SUBACCOUNT balance backs trading, so a freshly funded account still shows 0 collateral. The trading key CAN move USDC between the account's own wallet and its own subaccount (never to any other address). When the user says they sent/deposited funds, when collateral reads 0, or when an order fails for insufficient collateral: call get_funding_status (or read get_balance.funding). If depositableUsdc > 0, call deposit_to_subaccount — it moves everything above the $0.95 gas reserve (or a given amountUsd, keeping $0.95). ALWAYS leave $0.95 in the wallet: it pays gas for deposit/withdraw transactions (orders are fee-free). If the wallet is at or below $0.55 and a transaction fails for gas, call top_up_gas (pulls the reserve back from the subaccount). If the wallet has nothing to deposit, the user must send USDC to the account from outside (whoami.depositUrl) — a low balance is NEVER an auth problem, do NOT suggest re-authorizing or reconnecting for it. Reducing the order size is the other option.
Known tools 33
whoamiReport 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 messages, which subaccount, and that it CANNOT withdraw/transfer).
Potential side effectsget_marketGet details for one perpetual market (clobPairId, atomicResolution, quantumConversionExponent, tick/step sizes, oracle price, status).
Inferred read-onlyget_orderbookGet the live orderbook (bids/asks) for a market, optionally truncated to a depth.
Inferred read-onlyget_candles_multiGet 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.
Inferred read-onlyget_balanceGet the subaccount collateral (USDC asset position) and the on-chain wallet bank balances.
Inferred read-onlyget_equityGet the subaccount summary: equity, freeCollateral, marginEnabled, open perpetual positions and asset positions.
Inferred read-onlyget_positionsGet perpetual POSITIONS with size, side, entryPrice, unrealizedPnl, realizedPnl and netFunding.
Inferred read-onlyget_open_ordersGet currently active ORDERS for the subaccount, optionally filtered by market and side.
Inferred read-onlyget_portfolioOne-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 risk.
Inferred read-onlyget_position_riskMargin health for the subaccount: equity, freeCollateral, total maintenance/initial margin, maintenanceMarginBufferUsd (the EXACT liquidation guard — liquidatable when < 0), marginUsageRatio (1.
Inferred read-onlyget_fillsGet executed fills for the subaccount, including price, size, fee and maker/taker liquidity.
Inferred read-onlyget_pnlGet historical PnL ticks for the subaccount (equity, totalPnl, netTransfers over time).
Inferred read-onlyget_funding_statusWhere 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).
Inferred read-onlydeposit_to_subaccountDeposit USDC from the account's WALLET into its trading SUBACCOUNT so it becomes collateral.
Inferred read-onlytop_up_gasMove a little USDC from the trading subaccount back to the WALLET when the wallet is at or below $0.
Inferred read-onlycancel_all_ordersCancel every OPEN order for the subaccount in a market (handles SHORT_TERM and LONG_TERM automatically).
Inferred read-onlyplace_stop_lossPlace a reduce-only Stop loss (conditional market order) that triggers at triggerPrice.
Inferred read-onlyplace_take_profitPlace a reduce-only Take profit (conditional market order) that triggers at triggerPrice.
Inferred read-onlyclose_positionClose all or part of an open perpetual position with a reduce-only MARKET order.
Inferred read-onlyclose_all_positionsFlatten EVERY open perpetual position with reduce-only MARKET orders (one per market).
Inferred read-onlyopen_positionEnter 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).
Inferred read-onlyget_newsFetch the latest headlines from the ritbit news feed (curated crypto / markets / business channels, newest first).
Inferred read-onlyget_leaderboardThe 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.
Inferred read-onlyget_my_rankWhere 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.
Inferred read-onlyget_fee_tierThis 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 takes, plus the full fee-tier table.
Inferred read-onlyget_referral_programThis 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), earnings and referred-user stats, who referred this account, the full affiliate tier table and the program parameters (referee starting fee tier, 30d caps).
Inferred read-onlyCONNECT WITH APPROVAL
Client installation
Review this server and its permissions before adding it. Secret placeholders must be set locally.
Codex
~/.codex/config.toml
[mcp_servers.ritbit-mcp]
url = "https://mcp.mainnet.rubin.trade/mcp"
enabled = true
Claude Code
.mcp.json
{
"mcpServers": {
"ritbit-mcp": {
"type": "http",
"url": "https://mcp.mainnet.rubin.trade/mcp"
}
}
}
Claude Desktop
Settings → Connectors → Add custom connector
Name: ritbit-mcp
Remote MCP URL: https://mcp.mainnet.rubin.trade/mcp
Add this remote URL as a custom connector in Claude Desktop. Availability depends on the user plan and workspace policy.
Cursor
.cursor/mcp.json
{
"mcpServers": {
"ritbit-mcp": {
"url": "https://mcp.mainnet.rubin.trade/mcp"
}
}
}
Visual Studio Code
.vscode/mcp.json
Add to Visual Studio Code{
"servers": {
"ritbit-mcp": {
"type": "http",
"url": "https://mcp.mainnet.rubin.trade/mcp"
}
}
}
Generic MCP
Client-specific MCP configuration
{
"name": "ritbit-mcp",
"transport": "streamable-http",
"url": "https://mcp.mainnet.rubin.trade/mcp"
}
MCP Inspector
Run the official MCP Inspector locally and enter the indexed Streamable HTTP endpoint.
TRUST AND VERIFICATION EVIDENCE
Trust Data Available
BuiltWith Trust API v2 evidence for rubin.trade was fetched 2026-07-26T08:50:53.998Z and is being refreshed.
rubin.trade is assessed as Neutral: No suspicious signals found, but no strong positive signal either
Evidence is source-attributed and does not guarantee that a third-party server is safe. Risk labels are conservative metadata heuristics.