queryOpenOrder
Check the status and details of active cryptocurrency futures orders on Aster exchange using symbol, order ID, or client order ID parameters.
Instructions
Query current open order.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| orderId | No | ||
| origClientOrderId | No | ||
| symbol | Yes |
Implementation Reference
- src/index.ts:358-370 (registration)Registration of the 'queryOpenOrder' tool in the ListTools response, including its input schema definition.{ name: 'queryOpenOrder', description: 'Query current open order.', inputSchema: { type: 'object', properties: { symbol: { type: 'string' }, orderId: { type: 'number' }, origClientOrderId: { type: 'string' }, }, required: ['symbol'], }, },
- src/index.ts:358-370 (schema)Input schema for the queryOpenOrder tool.{ name: 'queryOpenOrder', description: 'Query current open order.', inputSchema: { type: 'object', properties: { symbol: { type: 'string' }, orderId: { type: 'number' }, origClientOrderId: { type: 'string' }, }, required: ['symbol'], }, },
- src/index.ts:655-656 (handler)Handler for queryOpenOrder tool: makes a signed GET request to the /fapi/v1/openOrder Aster API endpoint.case 'queryOpenOrder': return makeRequest('GET', '/fapi/v1/openOrder', args, true);
- src/index.ts:542-579 (helper)Shared helper function makeRequest used by all signed tools, including queryOpenOrder, to make authenticated API calls 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; } };