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) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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