set_margin_mode
Configure margin trading settings on Bybit exchange to manage risk exposure by setting isolated or cross margin modes with specific leverage for buying and selling positions.
Instructions
Set margin mode
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | Category (spot, linear, inverse, etc.) | |
| symbol | Yes | Symbol (e.g., BTCUSDT) | |
| tradeMode | Yes | Trading mode (0: Isolated, 1: Cross) | |
| buyLeverage | Yes | Buying leverage | |
| sellLeverage | Yes | Selling leverage |
Implementation Reference
- src/bybit-service.ts:413-427 (handler)The core handler function implementing the set_margin_mode tool logic by calling the Bybit API endpoint /v5/account/set-margin-mode.async setMarginMode( category: string, symbol: string, tradeMode: number, buyLeverage: string, sellLeverage: string ): Promise<BybitResponse<any> | { error: string }> { return this.makeBybitRequest('/v5/account/set-margin-mode', 'POST', { category, symbol, tradeMode, buyLeverage, sellLeverage }); }
- src/index.ts:422-446 (schema)The input schema defining parameters for the set_margin_mode tool: category, symbol, tradeMode, buyLeverage, sellLeverage.inputSchema: { type: 'object', properties: { category: { type: 'string', description: 'Category (spot, linear, inverse, etc.)', }, symbol: { type: 'string', description: 'Symbol (e.g., BTCUSDT)', }, tradeMode: { type: 'number', description: 'Trading mode (0: Isolated, 1: Cross)', }, buyLeverage: { type: 'string', description: 'Buying leverage', }, sellLeverage: { type: 'string', description: 'Selling leverage', }, }, required: ['category', 'symbol', 'tradeMode', 'buyLeverage', 'sellLeverage'],
- src/index.ts:420-448 (registration)Tool registration in the listTools response, including name, description, and input schema.name: 'set_margin_mode', description: 'Set margin mode', inputSchema: { type: 'object', properties: { category: { type: 'string', description: 'Category (spot, linear, inverse, etc.)', }, symbol: { type: 'string', description: 'Symbol (e.g., BTCUSDT)', }, tradeMode: { type: 'number', description: 'Trading mode (0: Isolated, 1: Cross)', }, buyLeverage: { type: 'string', description: 'Buying leverage', }, sellLeverage: { type: 'string', description: 'Selling leverage', }, }, required: ['category', 'symbol', 'tradeMode', 'buyLeverage', 'sellLeverage'], }, },
- src/index.ts:908-924 (registration)Dispatch handler in the CallToolRequestSchema that routes set_margin_mode calls to BybitService.setMarginMode.case 'set_margin_mode': { const result = await this.bybitService.setMarginMode( typedArgs.category, typedArgs.symbol, typedArgs.tradeMode, typedArgs.buyLeverage, typedArgs.sellLeverage ); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], }; }