get_book_ticker
Retrieve real-time best bid/ask prices and quantities for Binance cryptocurrency trading pairs to monitor market liquidity and execute trades.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Trading pair symbol, e.g. BTCUSDT | |
| symbols | No | Array of multiple trading pair symbols |
Implementation Reference
- src/index.ts:341-363 (handler)The handler function that implements the tool logic by fetching the order book ticker data from the Binance API (/api/v3/ticker/bookTicker), supporting single or multiple symbols, with proxy configuration and error handling.async (args: { symbol?: string; symbols?: string[] }) => { try { let params = {}; if (args.symbol) { params = { symbol: args.symbol }; } else if (args.symbols) { params = { symbols: JSON.stringify(args.symbols) }; } const response = await axios.get(`${BASE_URL}/api/v3/ticker/bookTicker`, { params, proxy: getProxy(), }); return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] }; } catch (error: any) { return { content: [{ type: "text", text: `Failed to get order book ticker: ${error.message}` }], isError: true }; } }
- src/index.ts:337-339 (schema)Input schema defined using Zod for validating the tool arguments: optional single symbol or array of symbols.{ symbol: z.string().optional().describe("Trading pair symbol, e.g. BTCUSDT"), symbols: z.array(z.string()).optional().describe("Array of multiple trading pair symbols")
- src/index.ts:335-364 (registration)Registration of the 'get_book_ticker' tool on the MCP server using server.tool(), specifying the tool name, input schema, and handler function.server.tool( "get_book_ticker", { symbol: z.string().optional().describe("Trading pair symbol, e.g. BTCUSDT"), symbols: z.array(z.string()).optional().describe("Array of multiple trading pair symbols") }, async (args: { symbol?: string; symbols?: string[] }) => { try { let params = {}; if (args.symbol) { params = { symbol: args.symbol }; } else if (args.symbols) { params = { symbols: JSON.stringify(args.symbols) }; } const response = await axios.get(`${BASE_URL}/api/v3/ticker/bookTicker`, { params, proxy: getProxy(), }); return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] }; } catch (error: any) { return { content: [{ type: "text", text: `Failed to get order book ticker: ${error.message}` }], isError: true }; } } );
- src/index.ts:403-412 (helper)Helper function getProxy() used by the handler to configure HTTP proxy if set via environment variables.function getProxy():any { const proxy: any = {} if (proxyURL) { const urlInfo = new URL(proxyURL); proxy.host = urlInfo.hostname; proxy.port = urlInfo.port; proxy.protocol = urlInfo.protocol.replace(":", ""); } return proxy }