bybit-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BYBIT_API_KEY | No | Your Bybit API key (optional for market data) | |
| BYBIT_TESTNET | No | Set to 'true' to use Bybit testnet | false |
| BYBIT_SECRET_KEY | No | Your Bybit secret key (optional for market data) |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_symbol_priceA | Get the current price of a cryptocurrency pair. Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: spot, linear, inverse (default: spot). Returns: Price information from Bybit. |
| get_funding_rate_historyA | Get funding rate history for a perpetual contract. Args: symbol: Perpetual contract symbol, e.g., BTCUSDT. category: Product type: linear, inverse (default: linear). limit: Number of records to return (default: 100, max: 200). Returns: Funding rate data list. |
| get_klineA | Get kline/candlestick data. Args: symbol: The trading pair, e.g., BTCUSDT. interval: Kline interval: 1,3,5,15,30,60,120,240,360,720,D,M,W (default: 60). category: Product type: spot, linear, inverse (default: spot). limit: Number of records (default: 100, max: 1000). Returns: List of kline data [startTime, openPrice, highPrice, lowPrice, closePrice, volume, turnover]. |
| get_orderbookA | Get order book depth data. Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: spot, linear, inverse (default: spot). limit: Depth limit: 1-200 (default: 25). Returns: Order book with bids and asks. |
| get_instruments_infoA | Get instrument specification info. Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: spot, linear, inverse, option (default: spot). Returns: Instrument specification details including lot size, price filter, etc. |
| get_server_timeB | Get Bybit server time. Returns: Server time information. |
| get_risk_limitC | Get risk limit info for a symbol. Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: linear, inverse (default: linear). Returns: Risk limit tiers for the symbol. |
| get_tickersB | Get tickers for all symbols in a category. Args: category: Product type: spot, linear, inverse, option (default: spot). Returns: List of all tickers for the category. |
| get_adl_alertC | Get ADL (Auto-Deleveraging) alert info. Args: symbol: Contract name, e.g., BTCUSDT (optional). |
| get_delivery_priceC | Get delivery price for futures/options. Args: category: Product type: linear, inverse, option. symbol: Symbol name (optional). limit: Number of records (default: 50, max: 200). |
| get_fee_group_infoB | Get fee group structure info. Args: product_type: Product type: contract. group_id: Group ID: 1-7 (optional). |
| get_index_price_componentsC | Get index price components. Args: index_name: Index name, e.g., BTCUSDT. |
| get_index_price_klineB | Get index price kline data. Args: symbol: Symbol, e.g., BTCUSDT. interval: Kline interval: 1,3,5,15,30,60,120,240,360,720,D,W,M. category: Product type: linear, inverse (default: linear). limit: Number of records (default: 200, max: 1000). |
| get_insuranceB | Get insurance pool data. Args: coin: Coin name (optional, returns all if empty). |
| get_historical_volatilityC | Get historical volatility for options. Args: category: Product type: option. base_coin: Base coin (default: BTC). period: Period in days (default: 7). |
| get_long_short_ratioC | Get long/short ratio (account ratio). Args: category: Product type: linear, inverse. symbol: Symbol, e.g., BTCUSDT. period: Period: 5min, 15min, 30min, 1h, 4h, 1d. limit: Number of records (default: 50, max: 500). |
| get_mark_price_klineB | Get mark price kline data. Args: symbol: Symbol, e.g., BTCUSDT. interval: Kline interval: 1,3,5,15,30,60,120,240,360,720,D,M,W. category: Product type: linear, inverse (default: linear). limit: Number of records (default: 200, max: 1000). |
| get_new_delivery_priceC | Get new delivery price for options. Args: category: Product type: option. base_coin: Base coin (default: BTC). |
| get_open_interestB | Get open interest data. Args: category: Product type: linear, inverse. symbol: Symbol, e.g., BTCUSDT. interval_time: Interval: 5min, 15min, 30min, 1h, 4h, 1d. limit: Number of records (default: 50, max: 200). |
| get_price_limitB | Get order price limit for a symbol. Args: symbol: Symbol, e.g., BTCUSDT. category: Product type: spot, linear, inverse (default: linear). |
| get_premium_index_price_klineB | Get premium index price kline data. Args: symbol: Symbol, e.g., BTCUSDT. interval: Kline interval: 1,3,5,15,30,60,120,240,360,720,D,W,M. category: Product type: linear (default: linear). limit: Number of records (default: 200, max: 1000). |
| get_recent_tradeA | Get recent public trades. Args: category: Product type: spot, linear, inverse, option. symbol: Symbol (required for spot/linear/inverse). limit: Number of records (default: 60 for spot, 500 for others). |
| get_rpi_orderbookA | Get RPI (Retail Price Improvement) orderbook. Args: symbol: Symbol, e.g., BTCUSDT. limit: Depth limit: 1-50. category: Product type: spot, linear, inverse (optional). |
| place_market_orderA | Place a market order to buy or sell. Args: symbol: The trading pair, e.g., BTCUSDT. side: Buy or Sell. qty: Amount to trade. category: Product type: spot, linear, inverse (default: spot). Returns: Order placement result. |
| place_limit_orderB | Place a limit order to buy or sell. Args: symbol: The trading pair, e.g., BTCUSDT. side: Buy or Sell. qty: Amount to trade. price: Limit price. category: Product type: spot, linear, inverse (default: spot). Returns: Order placement result. |
| get_trade_historyB | Get recent trade history for a pair. Args: symbol: The trading pair. category: Product type: spot, linear, inverse (default: spot). limit: Number of trades to fetch (default: 20, max: 100). Returns: List of trade summaries. |
| get_open_ordersA | Get open orders for a symbol. Args: symbol: The trading pair. category: Product type: spot, linear, inverse (default: spot). Returns: List of open orders. |
| cancel_orderA | Cancel a specific order. Args: symbol: The trading pair. order_id: Order ID to cancel. category: Product type: spot, linear, inverse (default: spot). Returns: Cancellation result. |
| cancel_all_ordersB | Cancel all open orders for a symbol. Args: symbol: The trading pair. category: Product type: spot, linear, inverse (default: spot). Returns: Cancellation result. |
| amend_orderA | Amend (modify) an existing open order. Args: symbol: The trading pair, e.g., BTCUSDT. order_id: Order ID to amend. category: Product type: spot, linear, inverse (default: spot). qty: New quantity (optional, leave empty to keep unchanged). price: New price (optional, leave empty to keep unchanged). Returns: Amendment result. |
| get_order_historyA | Get historical (closed/cancelled/filled) orders. Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: spot, linear, inverse (default: spot). limit: Number of records (default: 50, max: 50). Returns: List of historical orders. |
| batch_place_orderA | Place multiple orders in a single request (max 10). Args: category: Product type: spot, linear, inverse, option. orders: List of order dicts. Each must contain: symbol, side, orderType, qty. Optional fields: price, timeInForce, orderLinkId, etc. Example: [{"symbol": "BTCUSDT", "side": "Buy", "orderType": "Limit", "qty": "0.01", "price": "50000"}] Returns: Batch order placement results. |
| batch_cancel_orderA | Cancel multiple orders in a single request (max 10). Args: category: Product type: spot, linear, inverse, option. orders: List of order dicts. Each must contain: symbol and orderId (or orderLinkId). Example: [{"symbol": "BTCUSDT", "orderId": "123456"}] Returns: Batch cancellation results. |
| batch_amend_orderA | Amend multiple orders in a single request (max 20 for derivatives, 10 for spot). Args: category: Product type: spot, linear, inverse, option. orders: List of order dicts. Each must contain: symbol, and either orderId or orderLinkId. Optional: qty, price, triggerPrice, takeProfit, stopLoss, etc. Returns: Batch amendment results. |
| set_dcpA | Set Disconnect Cancel All (DCP) - auto-cancel orders on disconnect. Args: time_window: Time window in seconds (3-300). product: Product type: OPTIONS, DERIVATIVES, SPOT (default: OPTIONS). |
| get_open_closed_ordersB | Get open and/or closed orders (unified endpoint). Args: category: Product type: linear, inverse, spot, option. symbol: Filter by symbol (optional). open_only: 0: open orders only (default), 1: recent 500 closed orders. order_filter: Filter: Order, StopOrder, tpslOrder, OcoOrder (optional). limit: Number of records (default: 20, max: 50). |
| pre_check_orderA | Pre-check an order before placing it (validates margin, limits, etc.). Args: category: Product type: inverse, linear, option. symbol: Symbol, e.g., BTCUSDT. side: Buy or Sell. order_type: Market or Limit. qty: Order quantity. price: Order price (required for Limit). |
| get_spot_borrow_quotaB | Get spot borrow quota for margin trading. Args: symbol: Symbol, e.g., BTCUSDT. side: Buy or Sell. |
| get_account_balanceB | Get the balance of a specific cryptocurrency asset. Args: coin: The cryptocurrency symbol, e.g., BTC. account_type: Account type: UNIFIED, CONTRACT, SPOT, FUND (default: UNIFIED). Returns: Asset balance info. |
| get_fee_rateA | Get trading fee rate for a symbol. Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: spot, linear, inverse, option (default: spot). Returns: Fee rate information. |
| get_account_infoC | Get account info including margin mode and account type. Returns: Account configuration information. |
| get_transaction_logA | Get transaction logs. Args: category: Product type: spot, linear, inverse, option (default: spot). limit: Number of records (default: 50, max: 50). Returns: List of transaction log entries. |
| batch_set_collateral_coinA | Batch set collateral coin on/off. Args: request: List of objects, each with: coin (string), collateralSwitch ("ON"/"OFF"). |
| manual_borrowC | Manually borrow funds in unified margin account. Args: coin: Coin to borrow, e.g., USDT. amount: Borrow amount. |
| get_borrow_historyC | Get borrow history. Args: currency: Filter by currency (optional). limit: Number of records (default: 20, max: 50). |
| get_coin_greeksC | Get coin greeks (delta, gamma, vega, theta). Args: base_coin: Base coin, e.g., BTC (optional). |
| get_collateral_infoC | Get collateral coin info (haircut rates, etc.). Args: currency: Filter by currency (optional). |
| get_dcp_infoB | Get Disconnect Cancel All (DCP) configuration info. |
| get_mmp_stateC | Get Market Maker Protection (MMP) state. Args: base_coin: Base coin, e.g., BTC. |
| get_trade_behaviour_configC | Get trade behaviour configuration settings. |
| get_account_instruments_infoB | Get account-level instruments info (tradable instruments for your account). Args: category: Product type: spot, linear, inverse. symbol: Filter by symbol (optional). limit: Number of records (default: 200, max: 200). |
| manual_repay_no_convertC | Manual repay without asset conversion. Args: coin: Coin to repay, e.g., USDT. amount: Repay amount (optional, repays all if empty). |
| manual_repayC | Manual repay (with auto conversion if needed). Args: coin: Coin to repay (optional). amount: Repay amount (optional). |
| repay_liabilityC | Quick repay liability. Args: coin: Coin with liability (optional, repays all if empty). |
| reset_mmpC | Reset Market Maker Protection (MMP). Args: base_coin: Base coin, e.g., BTC. |
| set_collateral_coinB | Set collateral coin on or off. Args: coin: Coin name (USDT/USDC cannot be set). collateral_switch: "ON" or "OFF". |
| set_margin_modeB | Set account margin mode. Args: margin_mode: ISOLATED_MARGIN, REGULAR_MARGIN, or PORTFOLIO_MARGIN. |
| set_mmpC | Set Market Maker Protection (MMP) parameters. Args: base_coin: Base coin, e.g., BTC. window: Time window in ms. frozen_period: Frozen period in ms. qty_limit: Trade quantity limit. delta_limit: Delta limit. |
| set_price_limit_behaviourA | Set price limit behaviour (allow system to modify order price or reject). Args: category: Product type: linear, inverse, spot. modify_enable: true: allow modify, false: reject. |
| set_spot_hedgingB | Set spot hedging mode on or off. Args: mode: "ON" or "OFF". |
| get_smp_groupB | Get Self Match Prevention (SMP) group ID. |
| get_transferable_amountA | Get transferable amount for unified account. Args: coin_name: Coin name(s), comma-separated for multiple (max 20), e.g., "BTC,ETH". |
| upgrade_to_utaB | Upgrade account to Unified Trading Account (UTA). |
| get_positionsA | Get current positions for derivatives. Args: symbol: The trading pair (optional, returns all if empty). category: Product type: linear, inverse (default: linear). Returns: List of current positions. |
| set_leverageB | Set leverage for a symbol. Args: symbol: The trading pair, e.g., BTCUSDT. buy_leverage: Buy side leverage, e.g., "10". sell_leverage: Sell side leverage, e.g., "10". category: Product type: linear, inverse (default: linear). Returns: Leverage setting result. |
| set_trading_stopB | Set take profit and/or stop loss for a position. Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: linear, inverse (default: linear). take_profit: Take profit price. Leave empty to not set. stop_loss: Stop loss price. Leave empty to not set. position_idx: Position index: 0 (one-way), 1 (buy side), 2 (sell side). Default: 0. Returns: Trading stop setting result. |
| switch_position_modeC | Switch position mode between one-way and hedge mode. Args: symbol: The trading pair, e.g., BTCUSDT. mode: Position mode: 0 (merged single side), 3 (both sides). category: Product type: linear, inverse (default: linear). coin: Required for inverse. Coin name, e.g., BTC. Returns: Position mode switch result. |
| get_closed_pnlB | Get closed profit and loss records. Args: symbol: The trading pair, e.g., BTCUSDT. category: Product type: linear, inverse (default: linear). limit: Number of records (default: 50, max: 100). Returns: List of closed PnL records. |
| set_auto_add_marginB | Set auto add margin for a position. Args: symbol: Symbol, e.g., BTCUSDT. auto_add_margin: 0: off, 1: on. category: Product type: linear (default: linear). position_idx: 0: one-way, 1: hedge-Buy, 2: hedge-Sell (default: 0). |
| get_closed_options_positionsC | Get closed options positions. Args: symbol: Filter by symbol (optional). limit: Number of records (default: 50, max: 100). |
| confirm_risk_limitA | Confirm new risk limit (required after risk limit change that triggers margin adjustment). Args: category: Product type: linear, inverse. symbol: Symbol, e.g., BTCUSDT. |
| add_reduce_marginA | Add or reduce margin for a position (isolated margin mode). Args: category: Product type: linear, inverse. symbol: Symbol, e.g., BTCUSDT. margin: Positive to add (e.g., "10"), negative to reduce (e.g., "-10"). position_idx: 0: one-way, 1: hedge-Buy, 2: hedge-Sell (default: 0). |
| move_positionA | Move positions between UIDs (master API key only). Args: from_uid: Source UID. to_uid: Destination UID. legs: List of position legs, each with: category, symbol, price, side, qty. Max 25 legs per request. |
| get_move_position_historyC | Get move position history. Args: category: Product type: linear, inverse, spot, option (optional). symbol: Filter by symbol (optional). limit: Number of records (default: 20, max: 200). |
| get_coin_balanceA | Get the balance of a specific coin in a specific account type. Args: coin: The cryptocurrency symbol, e.g., BTC. account_type: Account type: UNIFIED, CONTRACT, SPOT, FUND (default: UNIFIED). Returns: Coin balance details. |
| get_deposit_recordsB | Get deposit records. Args: coin: Filter by coin (optional). limit: Number of records (default: 50, max: 50). Returns: List of deposit records. |
| get_withdrawal_recordsB | Get withdrawal records. Args: coin: Filter by coin (optional). limit: Number of records (default: 50, max: 50). Returns: List of withdrawal records. |
| create_internal_transferB | Create an internal transfer between account types. Args: coin: Coin to transfer, e.g., USDT. amount: Amount to transfer. from_account_type: Source account: UNIFIED, CONTRACT, SPOT, FUND. to_account_type: Destination account: UNIFIED, CONTRACT, SPOT, FUND. transfer_id: Unique transfer ID (UUID). Auto-generated if not provided. Returns: Transfer result. |
| get_all_coins_balanceC | Get all coins balance for an account type. Args: account_type: UNIFIED, CONTRACT, SPOT, FUND. coin: Filter by coin (optional). |
| get_withdrawable_amountC | Get withdrawable amount for a coin. Args: coin: Coin name, e.g., USDT. |
| get_coin_infoB | Get coin info (chains, deposit/withdraw status, fees). Args: coin: Filter by coin (optional, returns all if empty). |
| get_small_balance_coinsB | Get small balance coins eligible for conversion. Args: account_type: Account type: UNIFIED, FUND. |
| request_small_balance_quoteB | Request a quote for converting small balance coins. Args: account_type: Account type: UNIFIED, FUND. from_coin_list: List of coins to convert from. to_coin: Coin to convert to (e.g., USDT). |
| confirm_small_balance_quoteB | Confirm a small balance conversion quote. Args: quote_id: Quote ID from request_small_balance_quote. |
| get_small_balance_exchange_historyC | Get small balance exchange history. Args: account_type: Filter by account type (optional). limit: Number of records (default: 50). |
| get_convert_coin_listB | Get available coins for crypto-to-crypto conversion. Args: account_type: UNIFIED or eb_convert_funding. coin: Filter by coin (optional). side: 0: from coin, 1: to coin (optional). |
| request_convert_quoteC | Request a quote for crypto-to-crypto conversion. Args: account_type: UNIFIED or eb_convert_funding. from_coin: Source coin. to_coin: Destination coin. request_coin: The coin to specify amount for (from_coin or to_coin). request_amount: Amount of the request_coin. |
| confirm_convert_quoteC | Confirm a crypto-to-crypto conversion quote. Args: quote_tx_id: Quote transaction ID. |
| get_convert_statusC | Get crypto-to-crypto conversion status. Args: quote_tx_id: Quote transaction ID. account_type: Account type. |
| get_convert_historyB | Get crypto-to-crypto conversion history. Args: account_type: Filter by account type (optional). limit: Number of records (default: 50). |
| get_delivery_recordB | Get delivery record. Args: category: Product type: option, linear, inverse. symbol: Filter by symbol (optional). limit: Number of records (default: 20, max: 50). |
| get_settlement_recordB | Get USDC session settlement record. Args: category: Product type: linear. symbol: Filter by symbol (optional). limit: Number of records (default: 20, max: 50). |
| get_internal_deposit_recordsB | Get internal (off-chain) deposit records. Args: coin: Filter by coin (optional). limit: Number of records (default: 50). |
| get_master_deposit_addressB | Get master deposit address. Args: coin: Coin name, e.g., BTC. chain_type: Chain type (optional). |
| set_deposit_accountC | Set deposit account type. Args: account_type: UNIFIED, SPOT, FUND, etc. |
| get_sub_deposit_addressB | Get sub account deposit address. Args: coin: Coin name, e.g., BTC. chain_type: Chain type, e.g., ETH. sub_member_id: Sub UID. |
| get_sub_deposit_recordsC | Get sub account on-chain deposit records. Args: sub_member_id: Sub UID. coin: Filter by coin (optional). limit: Number of records (default: 50). |
| get_allowed_deposit_coinsC | Get allowed deposit coin info. Args: coin: Filter by coin (optional). limit: Number of records (default: 50). |
| get_coin_exchange_recordsD | Get coin exchange records. Args: from_coin: Source coin (optional). to_coin: Destination coin (optional). limit: Number of records (default: 50). |
| get_asset_sub_uid_listC | Get sub UID list for asset transfers. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/JohnnyWic/bybit-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server