Skip to main content
Glama

Binance Cryptocurrency MCP

by snjyor

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

NameRequiredDescriptionDefault
symbolNoTrading pair symbol, e.g. BTCUSDT
symbolsNoArray 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

  • 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 }; } } );
  • 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 }; } } );
  • 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 }

Latest Blog Posts

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/snjyor/binance-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server