getCommissionRate
Retrieve commission rates for cryptocurrency trading on Aster Finance. Use this tool to check current commission percentages for specific trading pairs before executing trades.
Instructions
Get user's commission rate.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes |
Implementation Reference
- src/index.ts:524-534 (registration)Registration of the 'getCommissionRate' tool, including its description and input schema requiring a 'symbol'.{ name: 'getCommissionRate', description: "Get user's commission rate.", inputSchema: { type: 'object', properties: { symbol: { type: 'string' }, }, required: ['symbol'], }, },
- src/index.ts:685-686 (handler)Handler implementation for 'getCommissionRate' tool. Makes a signed GET request to the Aster API endpoint '/fapi/v1/commissionRate' with the provided arguments.case 'getCommissionRate': return makeRequest('GET', '/fapi/v1/commissionRate', args, true);
- src/index.ts:527-532 (schema)Input schema for 'getCommissionRate' tool, defining the required 'symbol' parameter.inputSchema: { type: 'object', properties: { symbol: { type: 'string' }, }, required: ['symbol'],
- src/index.ts:542-579 (helper)Shared 'makeRequest' helper function used by the handler to perform signed API requests to AsterDex.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; } };