Skip to main content
Glama
questflowai

Aster Finance MCP Server

by questflowai

cancelAllOpenOrders

Cancel all open cryptocurrency trading orders for a specific symbol on the Aster Finance exchange. Use this tool to clear pending orders and manage your trading positions effectively.

Instructions

Cancel all open orders on a symbol.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
symbolYes

Implementation Reference

  • src/index.ts:322-332 (registration)
    Registration of the 'cancelAllOpenOrders' tool, including its description and input schema requiring a 'symbol'.
    {
      name: 'cancelAllOpenOrders',
      description: 'Cancel all open orders on a symbol.',
      inputSchema: {
        type: 'object',
        properties: {
          symbol: { type: 'string' },
        },
        required: ['symbol'],
      },
    },
  • Input schema for cancelAllOpenOrders tool: requires 'symbol' string.
    inputSchema: {
      type: 'object',
      properties: {
        symbol: { type: 'string' },
      },
      required: ['symbol'],
    },
  • Handler implementation: calls makeRequest to perform a signed DELETE request to '/fapi/v1/allOpenOrders' endpoint with provided arguments.
    case 'cancelAllOpenOrders':
        return makeRequest('DELETE', '/fapi/v1/allOpenOrders', args, true);
  • Shared helper function 'makeRequest' that constructs and sends signed HTTP requests to the AsterDEX Futures API using axios, handles errors, and returns JSON response.
    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