ticker_24hr
Get 24-hour rolling window price change statistics for cryptocurrency trading pairs to analyze market movements and inform trading decisions.
Instructions
24 hour rolling window price change statistics.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "ticker_24hr"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Trading symbol |
Implementation Reference
- src/index.ts:609-610 (handler)Handler case for the 'ticker_24hr' tool. Executes a GET request to the Aster API endpoint '/fapi/v1/ticker/24hr' using the shared makeRequest utility with the provided arguments.
case 'ticker_24hr': return makeRequest('GET', '/fapi/v1/ticker/24hr', args); - src/index.ts:185-194 (registration)Registration of the 'ticker_24hr' tool in the ListTools response, including its description and input schema (optional 'symbol').
{ name: 'ticker_24hr', description: '24 hour rolling window price change statistics.', inputSchema: { type: 'object', properties: { symbol: { type: 'string', description: 'Trading symbol' }, }, }, }, - src/index.ts:188-193 (schema)Input schema for the 'ticker_24hr' tool, defining an optional 'symbol' parameter.
inputSchema: { type: 'object', properties: { symbol: { type: 'string', description: 'Trading symbol' }, }, }, - src/index.ts:542-579 (helper)Shared helper function 'makeRequest' used by all tools, including 'ticker_24hr', to perform HTTP requests to the Aster API, handling signing for authenticated endpoints and returning JSON-formatted responses.
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; } };