Skip to main content
Glama
snjyor

Binance Cryptocurrency MCP

by snjyor

get_historical_trades

Retrieve past trade data for cryptocurrency pairs on Binance to analyze market activity, track transaction history, and inform trading decisions.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
symbolYesTrading pair symbol, e.g. BTCUSDT
limitNoNumber of trades to return, default 500, max 1000
fromIdNoTrade ID to start from, default returns the most recent trades

Implementation Reference

  • The asynchronous handler function that implements the core logic for the 'get_historical_trades' tool, fetching historical trade data from Binance API /api/v3/historicalTrades using axios, with proxy support, API key header, and error handling.
    async (args: { symbol: string; limit?: number; fromId?: number }) => { try { const response = await axios.get(`${BASE_URL}/api/v3/historicalTrades`, { params: { symbol: args.symbol, limit: args.limit, fromId: args.fromId }, headers: { "X-MBX-APIKEY": process.env.BINANCE_API_KEY || "" }, proxy: getProxy(), }); return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] }; } catch (error: any) { return { content: [{ type: "text", text: `Failed to get historical trades: ${error.message}` }], isError: true }; } }
  • Zod input schema for the 'get_historical_trades' tool defining parameters: symbol (string, required), limit (number, optional), fromId (number, optional).
    { symbol: z.string().describe("Trading pair symbol, e.g. BTCUSDT"), limit: z.number().optional().describe("Number of trades to return, default 500, max 1000"), fromId: z.number().optional().describe("Trade ID to start from, default returns the most recent trades") },
  • src/index.ts:71-100 (registration)
    Registration of the 'get_historical_trades' tool using McpServer.tool method within the registerTools function.
    "get_historical_trades", { symbol: z.string().describe("Trading pair symbol, e.g. BTCUSDT"), limit: z.number().optional().describe("Number of trades to return, default 500, max 1000"), fromId: z.number().optional().describe("Trade ID to start from, default returns the most recent trades") }, async (args: { symbol: string; limit?: number; fromId?: number }) => { try { const response = await axios.get(`${BASE_URL}/api/v3/historicalTrades`, { params: { symbol: args.symbol, limit: args.limit, fromId: args.fromId }, headers: { "X-MBX-APIKEY": process.env.BINANCE_API_KEY || "" }, proxy: getProxy(), }); return { content: [{ type: "text", text: JSON.stringify(response.data, null, 2) }] }; } catch (error: any) { return { content: [{ type: "text", text: `Failed to get historical trades: ${error.message}` }], isError: true }; } } );
  • Helper function getProxy() used by the tool's handler to configure proxy settings from HTTP_PROXY or HTTPS_PROXY environment variables 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