Skip to main content
Glama
questflowai

Aster Finance MCP Server

by questflowai

setLeverage

Adjust trading leverage for cryptocurrency positions on Aster Finance. Modify risk exposure by setting leverage ratios between 1x and 125x for specific trading pairs.

Instructions

Change user's initial leverage.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
leverageYes
symbolYes

Implementation Reference

  • src/index.ts:398-409 (registration)
    Registration of the 'setLeverage' tool in the ListToolsRequestHandler, defining its name, description, and input schema (symbol and leverage).
    { name: 'setLeverage', description: "Change user's initial leverage.", inputSchema: { type: 'object', properties: { symbol: { type: 'string' }, leverage: { type: 'number', minimum: 1, maximum: 125 }, }, required: ['symbol', 'leverage'], }, },
  • Input schema definition for the setLeverage tool, specifying required parameters: symbol (string) and leverage (number between 1 and 125).
    inputSchema: { type: 'object', properties: { symbol: { type: 'string' }, leverage: { type: 'number', minimum: 1, maximum: 125 }, }, required: ['symbol', 'leverage'],
  • Handler implementation for the setLeverage tool within the CallToolRequestHandler switch statement. It invokes the shared makeRequest function with a signed POST request to the Aster Futures API endpoint '/fapi/v1/leverage'.
    case 'setLeverage': return makeRequest('POST', '/fapi/v1/leverage', args, true);
  • Shared helper function 'makeRequest' used by all signed tool handlers, including setLeverage. Handles API signing with timestamp and HMAC-SHA256 signature using API_KEY and API_SECRET, makes axios request to Aster API, and formats response or throws MCP errors.
    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; } };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/questflowai/aster-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server