Skip to main content
Glama
questflowai

Aster Finance MCP Server

by questflowai

getAllOpenOrders

Retrieve all active trading orders for a specific cryptocurrency symbol to monitor positions and manage order execution.

Instructions

Get all open orders on a symbol.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
symbolNo

Implementation Reference

  • Handler case for getAllOpenOrders tool that dispatches a signed GET request to Binance Futures API /fapi/v1/openOrders endpoint with provided arguments.
    case 'getAllOpenOrders':
        return makeRequest('GET', '/fapi/v1/openOrders', args, true);
  • Input schema definition for getAllOpenOrders tool, specifying an object with optional 'symbol' property.
    inputSchema: {
      type: 'object',
      properties: {
        symbol: { type: 'string' },
      },
    },
  • src/index.ts:371-380 (registration)
    Registration of the getAllOpenOrders tool in the MCP server's tools list, including name, description, and input schema.
    {
      name: 'getAllOpenOrders',
      description: 'Get all open orders on a symbol.',
      inputSchema: {
        type: 'object',
        properties: {
          symbol: { type: 'string' },
        },
      },
    },
  • Generic helper function makeRequest used by all tool handlers, including getAllOpenOrders, to make authenticated HTTP requests to the Binance API.
    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