bybit-mcp-server
Version:
MCP server for Bybit trading API access
56 lines • 3.35 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.WalletBalanceSchema = exports.OpenOrdersSchema = exports.OrderHistorySchema = exports.CancelOrderSchema = exports.PlaceOrderSchema = exports.TickerSchema = exports.KlinesSchema = exports.OrderBookSchema = exports.PriceSchema = exports.BybitConfig = void 0;
const zod_1 = require("zod");
exports.BybitConfig = zod_1.z.object({
apiKey: zod_1.z.string(),
apiSecret: zod_1.z.string(),
environment: zod_1.z.enum(['testnet', 'mainnet']).default('testnet'),
baseUrl: zod_1.z.string().optional(),
debug: zod_1.z.boolean().default(false),
});
exports.PriceSchema = zod_1.z.object({
symbol: zod_1.z.string().describe('Trading symbol (e.g., BTCUSDT)')
});
exports.OrderBookSchema = zod_1.z.object({
symbol: zod_1.z.string().describe('Trading symbol (e.g., BTCUSDT)'),
limit: zod_1.z.number().min(1).max(500).optional().describe('Number of entries to return (default: 25)')
});
exports.KlinesSchema = zod_1.z.object({
symbol: zod_1.z.string().describe('Trading symbol (e.g., BTCUSDT)'),
interval: zod_1.z.enum(['1', '3', '5', '15', '30', '60', '120', '240', '360', '720', 'D', 'M', 'W']).describe('Kline interval'),
limit: zod_1.z.number().min(1).max(1000).optional().describe('Number of klines to return (default: 200)')
});
exports.TickerSchema = zod_1.z.object({
symbol: zod_1.z.string().optional().describe('Trading symbol (if not provided, returns all symbols)')
});
exports.PlaceOrderSchema = zod_1.z.object({
category: zod_1.z.enum(['spot', 'linear', 'inverse', 'option']).describe('Product type'),
symbol: zod_1.z.string().describe('Trading symbol'),
side: zod_1.z.enum(['Buy', 'Sell']).describe('Order side'),
orderType: zod_1.z.enum(['Market', 'Limit']).describe('Order type'),
qty: zod_1.z.string().describe('Order quantity'),
price: zod_1.z.string().optional().describe('Order price (required for limit orders)'),
timeInForce: zod_1.z.enum(['GTC', 'IOC', 'FOK']).optional().describe('Time in force (default: GTC)')
});
exports.CancelOrderSchema = zod_1.z.object({
category: zod_1.z.enum(['spot', 'linear', 'inverse', 'option']).describe('Product type'),
symbol: zod_1.z.string().describe('Trading symbol'),
orderId: zod_1.z.string().optional().describe('Order ID'),
orderLinkId: zod_1.z.string().optional().describe('Order link ID')
});
exports.OrderHistorySchema = zod_1.z.object({
category: zod_1.z.enum(['spot', 'linear', 'inverse', 'option']).describe('Product type'),
symbol: zod_1.z.string().optional().describe('Trading symbol'),
limit: zod_1.z.number().min(1).max(50).optional().describe('Number of records to return (default: 20)')
});
exports.OpenOrdersSchema = zod_1.z.object({
category: zod_1.z.enum(['spot', 'linear', 'inverse', 'option']).describe('Product type'),
symbol: zod_1.z.string().optional().describe('Trading symbol'),
limit: zod_1.z.number().min(1).max(50).optional().describe('Number of records to return (default: 20)')
});
exports.WalletBalanceSchema = zod_1.z.object({
accountType: zod_1.z.enum(['UNIFIED', 'CONTRACT', 'SPOT', 'INVESTMENT', 'OPTION', 'FUND']).describe('Account type'),
coin: zod_1.z.string().optional().describe('Coin name (if not provided, returns all coins)')
});
//# sourceMappingURL=types.js.map