fundingInfo
Retrieve funding rate configuration for cryptocurrency trading symbols to inform trading decisions and risk management strategies.
Instructions
Get funding rate config.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Trading symbol |
Implementation Reference
- src/index.ts:607-608 (handler)Handler for the 'fundingInfo' tool that delegates to the makeRequest helper to perform a GET request to the Aster Futures API fundingInfo endpoint.case 'fundingInfo': return makeRequest('GET', '/fapi/v1/fundingInfo', args);
- src/index.ts:178-183 (schema)Input schema definition for the 'fundingInfo' tool, specifying an optional 'symbol' parameter.inputSchema: { type: 'object', properties: { symbol: { type: 'string', description: 'Trading symbol' }, }, },
- src/index.ts:175-184 (registration)Registration of the 'fundingInfo' tool in the tools list provided by the ListToolsRequestSchema handler.{ name: 'fundingInfo', description: 'Get funding rate config.', inputSchema: { type: 'object', properties: { symbol: { type: 'string', description: 'Trading symbol' }, }, }, },
- src/index.ts:542-579 (helper)Shared helper function 'makeRequest' that handles HTTP requests to the Aster API, including signing with API key and secret when required, used by the fundingInfo handler and other tools.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; } };