get_book_ticker
Fetch real-time best bid/ask prices and quantities for specific cryptocurrency trading pairs on Binance using a single symbol or an array of symbols.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Trading pair symbol, e.g. BTCUSDT | |
| symbols | No | Array of multiple trading pair symbols |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"symbol": {
"description": "Trading pair symbol, e.g. BTCUSDT",
"type": "string"
},
"symbols": {
"description": "Array of multiple trading pair symbols",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
}
Implementation Reference
- src/index.ts:341-364 (handler)Handler function that calls the Binance API /api/v3/ticker/bookTicker endpoint to retrieve the best bid/ask prices or 24hr change statistics.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-340 (schema)Input schema using Zod for 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-365 (registration)Tool registration via server.tool() in the registerTools function, including schema and handler.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 used by all tools to set up proxy configuration for axios requests.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 }