{"protocolVersion":"2025-06-18","capabilities":{"tools":{"listChanged":false}},"agentGuidance":{"description":"General guidance for external AI agents using this MCP server. Read before selecting a project endpoint, requesting tool schemas, or calling protocol tools.","skillUrl":"https://erc8004.heyanon.ai/mcp/skill.md"},"serverInfo":{"name":"heyanon-erc8004-mexc","version":"1.0.0"},"tools":[{"name":"getSpotBalance","description":"Query for balance and get the amount of funds available for trading or funds locked in orders","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createSpotOrderWithAmountIn","description":"Create a spot order with amount in.","inputSchema":{"type":"object","properties":{"tokenIn":{"type":"string","description":"Unified currency code."},"tokenOut":{"type":"string","description":"Unified currency code."},"amountIn":{"type":"string","description":"The amount of input tokens to trade in decimal format. -1 is not supported here: read the balance with getSpotBalance and pass a concrete amount."},"type":{"type":"string","enum":["limit","market"],"description":"The type of order to create. Default is market."},"price":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The price at which the order is to be fulfilled, ignored in market orders. Default is null."},"priceToken":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The token to use for the price. Default is null. Should be the same as the tokenIn or tokenOut."}},"required":["tokenIn","tokenOut","amountIn","type","price","priceToken"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createSpotOrderWithAmountOut","description":"Create a spot order with amount out.","inputSchema":{"type":"object","properties":{"tokenIn":{"type":"string","description":"Unified currency code."},"tokenOut":{"type":"string","description":"Unified currency code."},"amountOut":{"type":"string","description":"The amount of tokens to get after trading in decimal format."},"type":{"type":"string","enum":["limit","market"],"description":"The type of order to create. Default is market."},"price":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The price at which the order is to be fulfilled, ignored in market orders. Default is null."},"priceToken":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"The token to use for the price. Default is null. Should be the same as the tokenIn or tokenOut."}},"required":["tokenIn","tokenOut","amountOut","type","price","priceToken"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getSpotOrdersById","description":"Get order details for multiple orders.","inputSchema":{"type":"object","properties":{"orderIDsWithTokens":{"type":"array","items":{"type":"object","properties":{"orderID":{"type":"string","description":"The ID of the order to get."},"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."}},"required":["orderID","token1","token2"],"additionalProperties":false},"description":"Array of order IDs with their token pairs."}},"required":["orderIDsWithTokens"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getSpotTradingFees","description":"Get trading fees for multiple token pairs.","inputSchema":{"type":"object","properties":{"tokenPairs":{"type":"array","items":{"type":"object","properties":{"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."}},"required":["token1","token2"],"additionalProperties":false},"description":"Array of token pairs to get trading fees for."}},"required":["tokenPairs"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getSpotMyTrades","description":"Get all trades made by the user for multiple token pairs","inputSchema":{"type":"object","properties":{"tokenPairsWithLimit":{"type":"array","items":{"type":"object","properties":{"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."},"limit":{"type":"number","maximum":100,"description":"The maximum number of user trades to get. Default is 5, and MEXC caps this endpoint at 100."}},"required":["token1","token2","limit"],"additionalProperties":false},"description":"Array of token pairs with their limits to get user trades for."}},"required":["tokenPairsWithLimit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"cancelSpotOrder","description":"Cancel an order.","inputSchema":{"type":"object","properties":{"orderID":{"type":"string","description":"The ID of the order to cancel."},"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."}},"required":["orderID","token1","token2"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getSpotOrders","description":"Get user orders for multiple token pairs.","inputSchema":{"type":"object","properties":{"tokenPairsWithTypeAndLimit":{"type":"array","items":{"type":"object","properties":{"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."},"type":{"type":"string","enum":["all","open","closed","canceled"],"description":"The type of orders to get. Default is all."},"limit":{"type":"number","description":"The maximum number of orders to get. Default is 5"}},"required":["token1","token2","type","limit"],"additionalProperties":false},"description":"Array of token pairs with their order types and limits."}},"required":["tokenPairsWithTypeAndLimit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"cancelAllSpotOrders","description":"Cancel all orders for a symbol.","inputSchema":{"type":"object","properties":{"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."}},"required":["token1","token2"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getSpotOrderBooks","description":"Gets information on open orders with bid (buy) and ask (sell) prices, volumes and other data for multiple markets.","inputSchema":{"type":"object","properties":{"tokenPairsWithLimit":{"type":"array","items":{"type":"object","properties":{"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."},"limit":{"type":"number","description":"The maximum number of orders to get. Default is 20."}},"required":["token1","token2","limit"],"additionalProperties":false},"description":"Array of token pairs with their limits to get order books for."}},"required":["tokenPairsWithLimit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"market":{"type":"string","description":"Unified market symbol"},"quote":{"type":"string","description":"Quote currency of the market"},"bids":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number","description":"Price level in human-readable decimal format (e.g. '1.5')"},"quantity":{"type":"number","description":"Quantity resting at the level in human-readable decimal format (e.g. '1.5')"},"total":{"type":"number","description":"Quantity multiplied by price, in human-readable decimal format (e.g. '1.5')"}},"required":["price","quantity","total"],"additionalProperties":false},"description":"Buy orders, best price first"},"asks":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number","description":"Price level in human-readable decimal format (e.g. '1.5')"},"quantity":{"type":"number","description":"Quantity resting at the level in human-readable decimal format (e.g. '1.5')"},"total":{"type":"number","description":"Quantity multiplied by price, in human-readable decimal format (e.g. '1.5')"}},"required":["price","quantity","total"],"additionalProperties":false},"description":"Sell orders, best price first"}},"required":["market","quote","bids","asks"],"additionalProperties":false},{"type":"object","properties":{"error":{"type":"string","description":"Why this entry could not be resolved"},"market":{"type":"string","description":"Market the entry referred to"}},"required":["error","market"],"additionalProperties":false}]}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getSpotMarkets","description":"Get market details for multiple token pairs. For example, type, active, precision, limits, etc.","inputSchema":{"type":"object","properties":{"symbolsWithTokens":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol."},"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."}},"required":["symbol","token1","token2"],"additionalProperties":false},"description":"Array of symbols with their token pairs."}},"required":["symbolsWithTokens"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol as requested"},"market":{"type":"object","properties":{"symbol":{"type":"string","description":"Unified market symbol, e.g. \"BTC/USDT\""},"base":{"type":"string","description":"Base currency of the market"},"quote":{"type":"string","description":"Quote currency of the market"},"type":{"type":"string","description":"Market type, e.g. \"spot\""},"active":{"type":"boolean","description":"Whether the market can be traded through the API"},"makerFeePercent":{"type":"number","description":"Maker fee as a percentage"},"takerFeePercent":{"type":"number","description":"Taker fee as a percentage"},"amountPrecision":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Smallest tradable amount step"},"pricePrecision":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Smallest price step"},"minCost":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Minimum order cost in the quote currency"},"maxCost":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Maximum order cost in the quote currency"}},"required":["symbol","base","quote","type","active","makerFeePercent","takerFeePercent","amountPrecision","pricePrecision","minCost","maxCost"],"additionalProperties":false,"description":"Market details"},"ticker":{"anyOf":[{"type":"object","properties":{"symbol":{"type":"string","description":"Unified market symbol"},"datetime":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 time of the ticker"},"open":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Opening price in human-readable decimal format (e.g. '1.5')"},"close":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Closing price in human-readable decimal format (e.g. '1.5')"},"last":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Last traded price in human-readable decimal format (e.g. '1.5')"},"high":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"24h high price in human-readable decimal format (e.g. '1.5')"},"low":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"24h low price in human-readable decimal format (e.g. '1.5')"},"baseVolume":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"24h volume in the base currency"},"quoteVolume":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"24h volume in the quote currency"}},"required":["symbol","datetime","open","close","last","high","low","baseVolume","quoteVolume"],"additionalProperties":false},{"type":"null"}],"description":"24-hour ticker statistics, or null when the ticker could not be read"},"tickerError":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Why the ticker could not be read, or null when it was"}},"required":["symbol","market","ticker","tickerError"],"additionalProperties":false},{"type":"object","properties":{"error":{"type":"string","description":"Why this entry could not be resolved"},"symbol":{"type":"string","description":"Market symbol as requested"}},"required":["error","symbol"],"additionalProperties":false}]}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getDepositAddresses","description":"Get deposit addresses for multiple currencies.","inputSchema":{"type":"object","properties":{"codes":{"type":"array","items":{"type":"string"},"description":"Array of unified currency codes, e.g. [\"BTC\", \"USDT\"]"}},"required":["codes"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getDeposits","description":"Get all deposits for last 7 days made to an account for multiple currencies.","inputSchema":{"type":"object","properties":{"codesWithLimit":{"type":"array","items":{"type":"object","properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Unified currency code. Default is null."},"limit":{"type":"number","description":"The maximum number of deposits to get. Default is 5"}},"required":["code","limit"],"additionalProperties":false},"description":"Array of currencies with their limits to get deposits for."}},"required":["codesWithLimit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getTransfers","description":"Get a history of internal transfers made on an account, in one direction.","inputSchema":{"type":"object","properties":{"from":{"type":"string","enum":["spot","futures"],"description":"Wallet the transfers left. MEXC scopes this history to one direction, so \"spot\" lists spot-to-futures transfers and \"futures\" lists futures-to-spot."},"limit":{"type":"number","description":"The maximum number of transfers to get. Default is 5"}},"required":["from","limit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getWithdrawals","description":"Get all withdrawals for last 7 days made from an account for multiple currencies.","inputSchema":{"type":"object","properties":{"codesWithLimit":{"type":"array","items":{"type":"object","properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Unified currency code. Default is null."},"limit":{"type":"number","description":"The maximum number of withdrawals to get. Default is 5"}},"required":["code","limit"],"additionalProperties":false},"description":"Array of currencies with their limits to get withdrawals for."}},"required":["codesWithLimit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"transfer","description":"Transfer funds between accounts.","inputSchema":{"type":"object","properties":{"code":{"type":"string","description":"Unified currency code."},"amount":{"type":"number","description":"The amount of funds to transfer, in human-readable decimal format (e.g. '1.5')."},"fromAccount":{"type":"string","enum":["Spot","Futures"],"description":"The account to transfer funds from."},"toAccount":{"type":"string","enum":["Spot","Futures"],"description":"The account to transfer funds to."}},"required":["code","amount","fromAccount","toAccount"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"withdraw","description":"Withdraw funds from an account. NEVER use \"common\" or \"transfer\" tools such as \"common-resolveTokenAddresses\" or \"transfer-getAddressWhitelist\" for this flow, because they are unrelated to CEX withdrawals.","inputSchema":{"type":"object","properties":{"code":{"type":"string","description":"Unified currency code."},"amount":{"type":"number","description":"The amount of funds to withdraw, in human-readable decimal format (e.g. '1.5'). Read the balance with getSpotBalance to withdraw everything."},"network":{"type":"string","description":"The network to withdraw funds to."},"address":{"type":"string","description":"The address to withdraw funds to."},"memo":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Memo or destination tag, required by networks that identify the recipient with one (e.g. EOS). getNetworksForAllCurrencies reports which networks need it. Pass null when the network does not use one."}},"required":["code","amount","network","address","memo"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getNetworksForAllCurrencies","description":"Get every listed currency with its available networks and its deposit and withdrawal fees. MEXC returns all of this in one currency-configuration response, so there is no per-currency variant.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createDepositAddress","description":"Create a currency deposit address.","inputSchema":{"type":"object","properties":{"code":{"type":"string","description":"Unified currency code of the currency for the deposit address."},"network":{"type":"string","description":"Network to create the deposit address for."}},"required":["code","network"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createSimpleOrder","description":"Create an immediate MEXC perpetual futures market or limit order. Amount is the final leveraged position size, not margin. If leverage or margin mode must change, call setLeverage or setMarginMode first.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Futures market, e.g. \"BTC/USDT\"."},"side":{"type":"string","enum":["long","short"],"description":"Open a long or short position."},"amount":{"type":"number","description":"Final position size denominated by amountCurrency. Do not multiply it by leverage."},"amountCurrency":{"type":"string","enum":["BASE","QUOTE"],"description":"Whether amount is in the base asset or quote currency."},"limitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Limit price, or null for a market order."},"leverage":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Leverage to submit the order with, or null to use the contract minimum. Leverage is part of the MEXC order payload, so call getUserLeverageAndMarginModeOnMarkets first when the account is configured differently."},"marginMode":{"anyOf":[{"type":"string","enum":["isolated","cross"]},{"type":"null"}],"description":"Margin mode to submit the order with, or null to use the contract's default. Call getUserLeverageAndMarginModeOnMarkets first when the account is configured differently."}},"required":["market","side","amount","amountCurrency","limitPrice","leverage","marginMode"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"createTriggerOrder","description":"Create a MEXC perpetual futures trigger order that opens a position when the market breaks through a price. A long is entered on the way up so its trigger price must be above the current price, and a short is entered on the way down so its trigger price must be below it.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Futures market, e.g. \"BTC/USDT\"."},"side":{"type":"string","enum":["long","short"],"description":"Position to open once the trigger fires."},"triggerPrice":{"type":"number","description":"Price that activates the order. Must be above the current price for a long and below it for a short."},"amount":{"type":"number","description":"Final position size denominated by amountCurrency. Do not multiply it by leverage."},"amountCurrency":{"type":"string","enum":["BASE","QUOTE"],"description":"Whether amount is in the base asset or quote currency."},"limitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Limit price for the order placed once triggered, or null to fill at market."},"leverage":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Leverage to submit the order with, or null to use the contract minimum. Leverage is part of the MEXC order payload, so call getUserLeverageAndMarginModeOnMarkets first when the account is configured differently."},"marginMode":{"anyOf":[{"type":"string","enum":["isolated","cross"]},{"type":"null"}],"description":"Margin mode to submit the order with, or null to use the contract's default. Call getUserLeverageAndMarginModeOnMarkets first when the account is configured differently."}},"required":["market","side","triggerPrice","amount","amountCurrency","limitPrice","leverage","marginMode"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getBalance","description":"Get all MEXC futures account balances, including available, used, and total equity amounts.","inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOrderBooks","description":"Get MEXC futures order books for multiple markets.","inputSchema":{"type":"object","properties":{"tokenPairsWithLimit":{"type":"array","items":{"type":"object","properties":{"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."},"limit":{"type":"number","description":"Maximum order-book rows."}},"required":["token1","token2","limit"],"additionalProperties":false}}},"required":["tokenPairsWithLimit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"market":{"type":"string","description":"Contract symbol"},"quote":{"type":"string","description":"Quote asset of the contract"},"timestamp":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Order book time in milliseconds since the epoch"},"bids":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number","description":"Price level in human-readable decimal format (e.g. '1.5')"},"volume":{"type":"number","description":"Quantity resting at the level, in contracts"},"total":{"type":"number","description":"Value of the level in the quote currency"}},"required":["price","volume","total"],"additionalProperties":false},"description":"Buy orders, best price first"},"asks":{"type":"array","items":{"type":"object","properties":{"price":{"type":"number","description":"Price level in human-readable decimal format (e.g. '1.5')"},"volume":{"type":"number","description":"Quantity resting at the level, in contracts"},"total":{"type":"number","description":"Value of the level in the quote currency"}},"required":["price","volume","total"],"additionalProperties":false},"description":"Sell orders, best price first"}},"required":["market","quote","timestamp","bids","asks"],"additionalProperties":false},{"type":"object","properties":{"error":{"type":"string","description":"Why this entry could not be resolved"},"market":{"type":"string","description":"Market the entry referred to"}},"required":["error","market"],"additionalProperties":false}]}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOrdersById","description":"Get MEXC futures order details for multiple order IDs.","inputSchema":{"type":"object","properties":{"orderIDsWithTokens":{"type":"array","items":{"type":"object","properties":{"orderID":{"type":"string","description":"Futures order ID."},"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."}},"required":["orderID","token1","token2"],"additionalProperties":false}}},"required":["orderIDsWithTokens"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getTradingFees","description":"Get the user’s actual maker and taker fees for multiple MEXC futures markets.","inputSchema":{"type":"object","properties":{"tokenPairs":{"type":"array","items":{"type":"object","properties":{"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."}},"required":["token1","token2"],"additionalProperties":false}}},"required":["tokenPairs"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getMyTrades","description":"Get the user’s recent MEXC futures trades for multiple markets.","inputSchema":{"type":"object","properties":{"tokenPairsWithLimit":{"type":"array","items":{"type":"object","properties":{"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."},"limit":{"type":"number","description":"Maximum number of trades."}},"required":["token1","token2","limit"],"additionalProperties":false}}},"required":["tokenPairsWithLimit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"cancelOrder","description":"Cancel a MEXC futures order by its ID. MEXC keeps three separate order namespaces, so orderKind must say which one the ID belongs to: a regular order, a standalone trigger order, or a position take-profit/stop-loss record. getOrders reports each kind separately.","inputSchema":{"type":"object","properties":{"orderID":{"type":"string","description":"Futures order ID."},"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."},"orderKind":{"type":"string","enum":["order","trigger","takeProfitStopLoss"],"description":"Which MEXC namespace the ID belongs to: \"order\" for a regular order, \"trigger\" for a standalone trigger order, \"takeProfitStopLoss\" for a position take-profit/stop-loss record."}},"required":["orderID","token1","token2","orderKind"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getOrders","description":"Get MEXC futures orders for multiple markets and statuses, including trigger orders and position take-profit/stop-loss records. Pass an empty array to get every open order across all markets.","inputSchema":{"type":"object","properties":{"tokenPairsWithTypeAndLimit":{"type":"array","items":{"type":"object","properties":{"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."},"type":{"type":"string","enum":["all","open","closed","canceled"],"description":"Order status filter."},"limit":{"type":"number","minimum":1,"maximum":100,"description":"Maximum number of orders, up to 100."}},"required":["token1","token2","type","limit"],"additionalProperties":false}}},"required":["tokenPairsWithTypeAndLimit"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"cancelAllOrders","description":"Cancel all unfinished MEXC futures orders on one market, including trigger orders and any position take-profit/stop-loss.","inputSchema":{"type":"object","properties":{"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."}},"required":["token1","token2"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getMarkets","description":"Get contract details for multiple MEXC futures markets.","inputSchema":{"type":"object","properties":{"symbolsWithTokens":{"type":"array","items":{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol."},"token1":{"type":"string","description":"Unified base or quote currency code."},"token2":{"type":"string","description":"Unified base or quote currency code."}},"required":["symbol","token1","token2"],"additionalProperties":false}}},"required":["symbolsWithTokens"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"data":{"type":"array","items":{"anyOf":[{"type":"object","properties":{"symbol":{"type":"string","description":"Market symbol as requested"},"market":{"type":"object","properties":{"symbol":{"type":"string","description":"Contract symbol, e.g. \"BTC_USDT\""},"baseCoin":{"type":"string","description":"Base asset of the contract"},"quoteCoin":{"type":"string","description":"Quote asset of the contract"},"settleCoin":{"type":"string","description":"Settlement asset of the contract"},"type":{"type":"string","description":"Contract type, \"perpetual\" or \"delivery\""},"inverse":{"type":"boolean","description":"Whether the contract settles in its base asset"},"active":{"type":"boolean","description":"Whether the contract is live"},"apiAllowed":{"type":"boolean","description":"Whether API trading is permitted on the contract"},"contractSize":{"type":"number","description":"Value of one contract, denominated in contractSizeCurrency"},"contractSizeCurrency":{"type":"string","description":"Currency one contract is denominated in"},"minVol":{"type":"number","description":"Minimum order size in contracts"},"maxVol":{"type":"number","description":"Maximum order size in contracts"},"minLeverage":{"type":"number","description":"Lowest leverage the contract supports"},"maxLeverage":{"type":"number","description":"Highest leverage the contract supports"},"priceUnit":{"type":"number","description":"Price tick size"},"volUnit":{"type":"number","description":"Order size step in contracts"},"makerFeePercent":{"type":"number","description":"Maker fee as a percentage"},"takerFeePercent":{"type":"number","description":"Taker fee as a percentage"},"marginModes":{"type":"array","items":{"type":"string"},"description":"Margin modes the contract supports"}},"required":["symbol","baseCoin","quoteCoin","settleCoin","type","inverse","active","apiAllowed","contractSize","contractSizeCurrency","minVol","maxVol","minLeverage","maxLeverage","priceUnit","volUnit","makerFeePercent","takerFeePercent","marginModes"],"additionalProperties":false,"description":"Contract details"},"ticker":{"anyOf":[{"type":"object","properties":{"symbol":{"type":"string","description":"Contract symbol"},"lastPrice":{"type":"number","description":"Last traded price in human-readable decimal format (e.g. '1.5')"},"bid":{"type":"number","description":"Best bid price"},"ask":{"type":"number","description":"Best ask price"},"high24h":{"type":"number","description":"Highest price over the last 24 hours"},"low24h":{"type":"number","description":"Lowest price over the last 24 hours"},"volume24h":{"type":"number","description":"24h volume in contracts"},"turnover24h":{"type":"number","description":"24h turnover in the quote currency"},"openInterest":{"type":"number","description":"Open interest in contracts"},"indexPrice":{"type":"number","description":"Index price"},"fairPrice":{"type":"number","description":"Fair (mark) price"},"fundingRate":{"type":"number","description":"Current funding rate"},"datetime":{"type":"string","description":"ISO 8601 time of the ticker"},"timestamp":{"type":"number","description":"Ticker time in milliseconds since the epoch"}},"required":["symbol","lastPrice","bid","ask","high24h","low24h","volume24h","turnover24h","openInterest","indexPrice","fairPrice","fundingRate","datetime","timestamp"],"additionalProperties":false},{"type":"null"}],"description":"24-hour ticker, funding and open-interest data, or null when it could not be read"},"tickerError":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Why the ticker could not be read, or null when it was"}},"required":["symbol","market","ticker","tickerError"],"additionalProperties":false},{"type":"object","properties":{"error":{"type":"string","description":"Why this entry could not be resolved"},"symbol":{"type":"string","description":"Market symbol as requested"}},"required":["error","symbol"],"additionalProperties":false}]}}},"required":["project","operation","data"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"closePosition","description":"Close an open MEXC futures position on one market with a market order. Read the position first with getPositionOnMarkets: amount is the size to close, side says which position it belongs to, and marginMode must be the mode that position actually uses.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Futures market, e.g. \"BTC/USDT\"."},"side":{"type":"string","enum":["long","short"],"description":"Side of the position to close."},"amount":{"type":"number","description":"Size to close, denominated by amountCurrency. Use the open position size to close it in full."},"amountCurrency":{"type":"string","enum":["BASE","QUOTE"],"description":"Whether amount is in the base asset or quote currency."},"marginMode":{"type":"string","enum":["cross","isolated"],"description":"Margin mode of the position being closed, as reported by getPositionOnMarkets. It must match the open position: MEXC will not close an isolated position with a cross close request. Do not infer it from the market's supported modes."}},"required":["market","side","amount","amountCurrency","marginMode"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getPositionOnMarkets","description":"Get open MEXC futures positions on selected markets. Pass an empty array to get all open positions.","inputSchema":{"type":"object","properties":{"markets":{"type":"array","items":{"type":"string"},"description":"Futures market symbols; empty means all."}},"required":["markets"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"setLeverage","description":"Set the leverage of one position side on one MEXC futures market. MEXC rejects the change while an order is open on the market, so cancel open orders first.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Futures market, e.g. \"BTC/USDT\"."},"side":{"type":"string","enum":["long","short"],"description":"Position side to configure. MEXC keeps long and short leverage separate, so this request changes only the named side."},"leverage":{"type":"number","description":"Integer leverage supported by the contract."},"marginMode":{"anyOf":[{"type":"string","enum":["isolated","cross"]},{"type":"null"}],"description":"Margin mode the leverage applies to, or null to use the contract's default. Read the current mode with getUserLeverageAndMarginModeOnMarkets."}},"required":["market","side","leverage","marginMode"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"setMarginMode","description":"Set isolated or cross margin mode for one position side on a MEXC futures market. Existing positions and open orders must be closed first.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Futures market, e.g. \"BTC/USDT\"."},"side":{"type":"string","enum":["long","short"],"description":"Position side to configure. MEXC keeps long and short leverage separate, so this request changes only the named side."},"marginMode":{"type":"string","enum":["cross","isolated"],"description":"Margin mode to configure."},"leverage":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Leverage to keep on that side, or null to use the contract minimum. MEXC sets margin mode and leverage in the same request."}},"required":["market","side","marginMode","leverage"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"modifyIsolatedPositionMargin","description":"Add margin to or reduce margin from an open isolated MEXC futures position. Read positionId with getPositionOnMarkets first.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Futures market, e.g. \"BTC/USDT\"."},"positionId":{"type":"string","description":"ID of the open isolated position, as reported by getPositionOnMarkets."},"action":{"type":"string","enum":["add","reduce"],"description":"Whether to add or reduce isolated margin."},"amount":{"type":"number","description":"Positive margin amount in the contract settlement currency."}},"required":["market","positionId","action","amount"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"setTakeProfitStopLoss","description":"Set take-profit and/or stop-loss on an open MEXC futures position. The levels attach to the position itself, so they do not expire and they close at market when reached. Read positionId, side and positionVolume with getPositionOnMarkets first.","inputSchema":{"type":"object","properties":{"market":{"type":"string","description":"Futures market, e.g. \"BTC/USDT\"."},"side":{"type":"string","enum":["long","short"],"description":"Side of the position to protect."},"positionId":{"type":"string","description":"ID of the open position, as reported by getPositionOnMarkets."},"positionVolume":{"type":"number","description":"Current size of the position in contracts, as reported by getPositionOnMarkets."},"takeProfitPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Take-profit trigger price, or null to leave the profit side unprotected. Must be above the last price for a long position and below it for a short one."},"stopLossPrice":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"Stop-loss trigger price, or null to leave the loss side unprotected. Must be below the last price for a long position and above it for a short one."},"amount":{"anyOf":[{"type":"number"},{"type":"null"}],"description":"How much of the position to close when a level triggers, denominated by amountCurrency. Null protects the whole position and keeps following it as its size changes."},"amountCurrency":{"anyOf":[{"type":"string","enum":["BASE","QUOTE"]},{"type":"null"}],"description":"Whether amount is in the base asset or the quote currency. Required when amount is set, otherwise null."}},"required":["market","side","positionId","positionVolume","takeProfitPrice","stopLossPrice","amount","amountCurrency"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}},{"name":"getUserLeverageAndMarginModeOnMarkets","description":"Get configured long and short leverage and margin mode for selected MEXC futures markets. MEXC reports leverage per symbol, so at least one market is required; use getPositionOnMarkets first to discover which markets to ask about.","inputSchema":{"type":"object","properties":{"markets":{"type":"array","items":{"type":"string"},"description":"Futures market symbols. At least one is required; an empty array is rejected."}},"required":["markets"],"additionalProperties":false},"outputSchema":{"type":"object","anyOf":[{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"note":{"description":"Human-readable summary of the action","type":"string"},"cexApiRequestActions":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"The URL of the CEX API request"},"method":{"type":"string","enum":["POST","GET","PUT","DELETE"],"description":"HTTP method"},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Request headers"},"body":{"description":"Request body as JSON string","type":"string"},"toSign":{"type":"string","description":"Raw bytes (hex) to sign/HMAC for auth header"}},"required":["url","method","headers","toSign"],"additionalProperties":false},"description":"Unsigned MEXC API requests to sign and send sequentially"}},"required":["project","operation","cexApiRequestActions"],"additionalProperties":false},{"type":"object","properties":{"project":{"type":"string","description":"Protocol identifier"},"operation":{"type":"string","description":"Operation that produced this response"},"error":{"type":"string","description":"Error message"}},"required":["project","operation","error"],"additionalProperties":false}]}}]}