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
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Trading pair symbol, e.g. BTCUSDT | |
| limit | No | Number of trades to return, default 500, max 1000 | |
| fromId | No | Trade ID to start from, default returns the most recent trades |
Implementation Reference
- src/index.ts:77-99 (handler)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 }; } }
- src/index.ts:72-76 (schema)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 }; } } );
- src/index.ts:403-412 (helper)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 }