aggTrades
Retrieve compressed aggregate market trades for cryptocurrency symbols to analyze trading patterns and market activity with timestamp and volume data.
Instructions
Get compressed, aggregate market trades.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| endTime | No | Timestamp in ms to get aggregate trades until INCLUSIVE. | |
| fromId | No | ID to get aggregate trades from INCLUSIVE. | |
| limit | No | Number of results. Default 500, max 1000. | |
| startTime | No | Timestamp in ms to get aggregate trades from INCLUSIVE. | |
| symbol | Yes | Trading symbol |
Implementation Reference
- src/index.ts:595-596 (handler)Handler logic for the 'aggTrades' tool. Matches the tool name in the switch statement and calls makeRequest to GET /fapi/v1/aggTrades with input arguments.
case 'aggTrades': return makeRequest('GET', '/fapi/v1/aggTrades', args); - src/index.ts:95-104 (schema)Input schema for the aggTrades tool, defining the expected parameters and their types/descriptions.
inputSchema: { type: 'object', properties: { symbol: { type: 'string', description: 'Trading symbol' }, fromId: { type: 'number', description: 'ID to get aggregate trades from INCLUSIVE.' }, startTime: { type: 'number', description: 'Timestamp in ms to get aggregate trades from INCLUSIVE.' }, endTime: { type: 'number', description: 'Timestamp in ms to get aggregate trades until INCLUSIVE.' }, limit: { type: 'number', description: 'Number of results. Default 500, max 1000.' }, }, required: ['symbol'], - src/index.ts:92-105 (registration)Registration of the aggTrades tool in the ListToolsRequestSchema response array, including name, description, and schema.
{ name: 'aggTrades', description: 'Get compressed, aggregate market trades.', inputSchema: { type: 'object', properties: { symbol: { type: 'string', description: 'Trading symbol' }, fromId: { type: 'number', description: 'ID to get aggregate trades from INCLUSIVE.' }, startTime: { type: 'number', description: 'Timestamp in ms to get aggregate trades from INCLUSIVE.' }, endTime: { type: 'number', description: 'Timestamp in ms to get aggregate trades until INCLUSIVE.' }, limit: { type: 'number', description: 'Number of results. Default 500, max 1000.' }, }, required: ['symbol'], }, - src/index.ts:542-579 (helper)Shared utility function makeRequest used by all tool handlers, including aggTrades, to perform HTTP requests to the AsterDex Futures API, with optional signing for private endpoints.
const makeRequest = async (method: 'GET' | 'POST' | 'DELETE', path: string, params: any, isSigned = false) => { try { let config: any = { method, url: path, }; if (isSigned) { if (!API_KEY || !API_SECRET) { throw new McpError(ErrorCode.InvalidRequest, 'API_KEY and API_SECRET must be configured.'); } params.timestamp = Date.now(); const queryString = new URLSearchParams(params).toString(); const signature = crypto.createHmac('sha256', API_SECRET).update(queryString).digest('hex'); params.signature = signature; config.headers = { 'X-MBX-APIKEY': API_KEY }; } if (method === 'GET' || method === 'DELETE') { config.params = params; } else { // POST config.data = new URLSearchParams(params).toString(); config.headers = { ...config.headers, 'Content-Type': 'application/x-www-form-urlencoded' }; } const response = await this.axiosInstance.request(config); return { content: [{ type: 'text', text: JSON.stringify(response.data, null, 2) }] }; } catch (error) { if (axios.isAxiosError(error)) { throw new McpError( ErrorCode.InternalError, `Aster API error: ${error.response?.data?.msg || error.message}` ); } throw error; } };