{"id":309497,"recorded_at":"2026-10-26T23:55:37.979511Z","observed_at":"2026-10-26T23:55:37.979355Z","subject_kind":"endpoint","subject":"a6c259b4-6791-4162-8e25-135631397e86","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":25,"tools":[{"description":"Withdraw step 1 / anytime account check. GET /api/account with per-request X-MBX-APIKEY. Inspect available balances before withdraw. No live trading action.","inputSchema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"name":"quote_trade_account"},{"description":"Read once to learn efficient direct REST/WebSocket use: routes, signing, streaming, cumulative depth, and client execution controls. Public guidance only; no upstream calls.","inputSchema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"name":"quote_trade_api_discovery"},{"description":"Explains that MCP is only a tool/schema adapter around the existing Quote.Trade APIs, and returns local servlet guardrail configuration.","inputSchema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"name":"quote_trade_api_manifest"},{"description":"Cancel one order by orderId. POST /api/cancelOrder. Identifies exactly one order via the matching engine's single-order cancel path - NOT a mass-cancel. There is no quote_trade_cancel_all: the upstream mass-cancel action's scope for edge-case parameters could not be verified from this codebase alone and is intentionally not exposed through MCP. Requires tradingEnabled, allowedSymbols (same allowlist as quote_trade_place_order), and a trade-scoped API key. No notional check applies: a cancellation has none. humanApproved/approvalText are agent friction only.","inputSchema":{"additionalProperties":false,"properties":{"account":{"description":"Quote.Trade account/user id. Optional (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0).","type":"integer"},"approvalText":{"description":"Agent-supplied confirmation friction (not a security control). Must exactly equal: APPROVE QUOTE.TRADE CANCEL ORDER","type":"string"},"humanApproved":{"description":"Agent-supplied confirmation friction (not a security control). Must be true; enableTrading remains authoritative.","type":"boolean"},"orderId":{"description":"The order id returned by quote_trade_place_order.","type":"integer"},"side":{"description":"Optional BUY or SELL, matching the original order. Passed through if given.","type":"string"},"symbol":{"description":"Instrument symbol the order was placed on, such as BTC.","type":"string"}},"required":["symbol","orderId","humanApproved","approvalText"],"type":"object"},"name":"quote_trade_cancel_order"},{"description":"Trade step 3. GET /api/depth?symbol=SYMBOL&limit=N. Use depth quantity to choose a suitable limit price before placing an order.","inputSchema":{"additionalProperties":false,"properties":{"limit":{"description":"Optional maximum levels per side. Positive values are enforced by MCP; omitted/nonpositive uses upstream depth.","type":"integer"},"symbol":{"description":"Instrument symbol from quote_trade_instruments, such as BTC or ETH.","type":"string"}},"required":["symbol"],"type":"object"},"name":"quote_trade_depth"},{"description":"Call GET /api/exchangeInfo and return a paginated slice of trading symbols plus rate limits/server time. Upstream has no pagination, so this adapter filters/slices locally. Default limit=50, max=200. Prefer quote_trade_instruments for compact tradable-pair discovery.","inputSchema":{"additionalProperties":false,"properties":{"limit":{"description":"Max symbols to return. Default 50, max 200.","type":"integer"},"skip":{"description":"Number of matching symbols to skip before returning. Default 0.","type":"integer"},"symbols":{"description":"Optional comma-separated symbol filter, e.g. BTC,ETH,SOL. When set, pagination applies to the filtered list.","type":"string"}},"required":[],"type":"object"},"name":"quote_trade_exchange_info"},{"description":"Optional wallet login/register step 1 (not required for trading with an existing API key). POST /api/getChallenge with a wallet address (login). Returns challenge text and isNewUser. Step 2: sign the challenge with the wallet outside MCP. Step 3: quote_trade_logon. No API key required.","inputSchema":{"additionalProperties":false,"properties":{"login":{"description":"Wallet address used as login, e.g. 0x15b65a49faf9a4047e912d7de4a77fe24c7cf483.","type":"string"}},"required":["login"],"type":"object"},"name":"quote_trade_get_challenge"},{"description":"Deposit step 1. GET /api/getDepositAddress?symbol=ASSET and return chain + contract/address. Supported assets: USDC and USDT (mainnet), XUSDC (USDC on XDC). Step 2 is transferring funds to that address outside MCP (no backend call).","inputSchema":{"additionalProperties":false,"properties":{"symbol":{"description":"Deposit asset symbol: USDC or USDT (mainnet), or XUSDC (USDC on XDC network).","type":"string"}},"required":["symbol"],"type":"object"},"name":"quote_trade_get_deposit_address"},{"description":"Anytime deposit check. POST /api/getDepositHistory with per-request X-MBX-APIKEY. Requires a trade-scoped API key (same scope as quote_trade_place_order). Read-only: no live trading action.","inputSchema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"name":"quote_trade_get_deposit_history"},{"description":"Anytime position check. POST /api/getIndexPositions with per-request X-MBX-APIKEY. Distinct from quote_trade_get_positions: index/basket instrument positions rather than regular instrument positions. Optional assetType filter. Read-only: no live trading action.","inputSchema":{"additionalProperties":false,"properties":{"assetType":{"description":"Optional index/basket asset type filter. Omit for all.","type":"string"}},"required":[],"type":"object"},"name":"quote_trade_get_index_positions"},{"description":"Anytime order check. POST /api/getOrderHistory with per-request X-MBX-APIKEY. Full order history, or one order's history with optional orderId. Requires a trade-scoped API key (same scope as quote_trade_place_order). Read-only: no live trading action.","inputSchema":{"additionalProperties":false,"properties":{"orderId":{"description":"Optional order id to narrow to one order's history. Omit for the full order history.","type":"integer"}},"required":[],"type":"object"},"name":"quote_trade_get_order_history"},{"description":"Anytime order check. POST /api/orderStatus with per-request X-MBX-APIKEY. Query the status of an order previously placed with quote_trade_place_order. Read-only: no live trading action.","inputSchema":{"additionalProperties":false,"properties":{"orderId":{"description":"The order id returned by quote_trade_place_order.","type":"integer"}},"required":["orderId"],"type":"object"},"name":"quote_trade_get_order_status"},{"description":"Anytime order check. POST /api/getOrders with per-request X-MBX-APIKEY. Read-only: no live trading action. Requires read entitlement on API keys that carry one.","inputSchema":{"additionalProperties":false,"properties":{"endTime":{"description":"Optional inclusive end of a time range, epoch milliseconds.","type":"integer"},"limit":{"description":"Optional maximum number of orders to return.","type":"integer"},"startTime":{"description":"Optional inclusive start of a time range, epoch milliseconds.","type":"integer"},"symbol":{"description":"Optional instrument symbol filter, such as BTC. Omit for all symbols.","type":"string"}},"required":[],"type":"object"},"name":"quote_trade_get_orders"},{"description":"Anytime position check. GET /api/positions with per-request X-MBX-APIKEY. Reconcile current positions when starting or reconnecting, per the direct-discovery guide (quote_trade_api_discovery / rest.privateReads). No live trading action.","inputSchema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"name":"quote_trade_get_positions"},{"description":"Anytime risk check. POST /api/getRisk with per-request X-MBX-APIKEY. Margin/equity/unrealized-PnL summary for the authenticated account. Read-only: no live trading action.","inputSchema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"name":"quote_trade_get_risk"},{"description":"Anytime wallet check. POST /api/getUserWallets with per-request X-MBX-APIKEY. On-chain addresses previously seen depositing to the authenticated account. Read-only: no live trading action.","inputSchema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"name":"quote_trade_get_user_wallets"},{"description":"Anytime withdrawal check. POST /api/getWithdrawRequests with per-request X-MBX-APIKEY. Inspect the status of withdrawals already submitted (including via quote_trade_withdraw). Requires a trade-scoped API key. Read-only: no live trading action, and this tool cannot cancel a withdrawal.","inputSchema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"name":"quote_trade_get_withdraw_requests"},{"description":"Trade step 1. GET /api/getInstrumentPairs — paginated tradable symbols/instruments. Default limit=50, max=200. Use skip to page. Pick a symbol from this response for ticker/depth/order calls.","inputSchema":{"additionalProperties":false,"properties":{"limit":{"description":"Max instruments to return. Default 50, max 200.","type":"integer"},"skip":{"description":"Number of instruments to skip before returning. Default 0.","type":"integer"}},"required":[],"type":"object"},"name":"quote_trade_instruments"},{"description":"Optional wallet login/register step 3 (not required if the agent already has an API key). Pass challenge + wallet signature from steps 1–2. isNewUser=true -> POST /api/registerUser; else POST /api/logon. On success, map body.requestToken/requestSecret to X-MBX-APIKEY / X-MBX-APISECRET; use body.id as account. Wallet signing stays outside MCP.","inputSchema":{"additionalProperties":false,"properties":{"challenge":{"description":"Challenge text returned by quote_trade_get_challenge (Sign auth token: ...).","type":"string"},"isNewUser":{"description":"From quote_trade_get_challenge. true -> registerUser; false -> logon. If omitted, logon is tried first then registerUser on failure.","type":"boolean"},"signature":{"description":"Wallet signature of the challenge text (0x-prefixed hex).","type":"string"}},"required":["challenge","signature"],"type":"object"},"name":"quote_trade_logon"},{"description":"Optional before live trade. Normalize/validate a BUY/SELL order locally without sending it.","inputSchema":{"additionalProperties":false,"properties":{"account":{"description":"Quote.Trade account/user id. Optional for preview (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0). Required for live place_order.","type":"integer"},"disableLeverage":{"description":"1 disables leverage; 0 enables leverage/shorting only if server allowLeverage is true.","type":"integer"},"paymentCurrency":{"description":"Payment currency such as USDT.","type":"string"},"price":{"description":"Limit price chosen after quote_trade_depth.","type":"number"},"quantity":{"description":"Order quantity.","type":"number"},"side":{"description":"BUY or SELL.","type":"string"},"symbol":{"description":"Instrument symbol from quote_trade_instruments, such as BTC.","type":"string"},"timestamp":{"description":"Optional client timestamp in milliseconds.","type":"integer"},"type":{"description":"LIMIT only in this adapter.","type":"string"}},"required":["symbol","side","price","quantity"],"type":"object"},"name":"quote_trade_order_preview"},{"description":"Trade step 4. POST /api/order with a suitable price after instruments/ticker/depth. Requires tradingEnabled, allowedSymbols (* or explicit list; empty denies), and API credentials. No MCP USD notional cap applies. Sending X-MBX-APISECRET to this MCP host grants it full signing authority. humanApproved/approvalText are agent friction only.","inputSchema":{"additionalProperties":false,"properties":{"account":{"description":"Quote.Trade account/user id. Optional for preview (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0). Required for live place_order.","type":"integer"},"approvalText":{"description":"Agent-supplied confirmation friction (not a security control). Must exactly equal: APPROVE QUOTE.TRADE LIVE ORDER","type":"string"},"disableLeverage":{"description":"1 disables leverage; 0 enables leverage/shorting only if server allowLeverage is true.","type":"integer"},"humanApproved":{"description":"Agent-supplied confirmation friction (not a security control). Must be true; enableTrading remains authoritative.","type":"boolean"},"paymentCurrency":{"description":"Payment currency such as USDT.","type":"string"},"price":{"description":"Limit price chosen after quote_trade_depth.","type":"number"},"quantity":{"description":"Order quantity.","type":"number"},"side":{"description":"BUY or SELL.","type":"string"},"symbol":{"description":"Instrument symbol from quote_trade_instruments, such as BTC.","type":"string"},"timestamp":{"description":"Optional client timestamp in milliseconds.","type":"integer"},"type":{"description":"LIMIT only in this adapter.","type":"string"}},"required":["account","symbol","side","price","quantity","humanApproved","approvalText"],"type":"object"},"name":"quote_trade_place_order"},{"description":"Call GET /api/status and return system status, server time, contracts URL, and feature flags.","inputSchema":{"additionalProperties":false,"properties":{},"required":[],"type":"object"},"name":"quote_trade_status"},{"description":"Trade step 2. GET /api/ticker?symbol=SYMBOL for a symbol from quote_trade_instruments. Returns last price, bid, ask, lastUpdateId.","inputSchema":{"additionalProperties":false,"properties":{"symbol":{"description":"Instrument symbol from quote_trade_instruments, such as BTC or ETH.","type":"string"}},"required":["symbol"],"type":"object"},"name":"quote_trade_ticker"},{"description":"Withdraw step 3. POST /api/sendWithdrawWithVTokenRequest for stablecoins only (USDC|USDT|XUSDC) to the user's own login wallet (no toAddress). Not available for BTC/ETH/other assets. Requires a full-access API key with withdraw entitlement (trade-only keys are rejected by Quote.Trade), tradingEnabled, and allowedWithdrawAssets (independent of the trading allowedSymbols allowlist). No MCP USD notional cap applies. humanApproved/approvalText are agent friction only.","inputSchema":{"additionalProperties":false,"properties":{"account":{"description":"Quote.Trade account/user id. Optional for preview (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0). Required for live withdraw.","type":"integer"},"approvalText":{"description":"Agent-supplied confirmation friction (not a security control). Must exactly equal: APPROVE QUOTE.TRADE LIVE WITHDRAW","type":"string"},"humanApproved":{"description":"Agent-supplied confirmation friction (not a security control). Must be true; enableTrading remains authoritative.","type":"boolean"},"quantity":{"description":"Scaled integer quantity as string (API format). Example: \"20000000\" with quantity_scale=6 means 20 USDC.","type":"string"},"quantity_scale":{"description":"Decimal scale for quantity. Example: 6 for USDC.","type":"integer"},"symbol":{"description":"Stablecoin to withdraw: USDC, USDT, or XUSDC only (not BTC/ETH/other).","type":"string"}},"required":["account","symbol","quantity","quantity_scale","humanApproved","approvalText"],"type":"object"},"name":"quote_trade_withdraw"},{"description":"Optional before live withdraw. Stablecoins only: USDC, USDT, or XUSDC (not BTC/ETH/other). Own login wallet only (no toAddress). estimatedNotional is USD at $1 peg. Trade-only API keys cannot withdraw — use a full-access key with withdraw entitlement.","inputSchema":{"additionalProperties":false,"properties":{"account":{"description":"Quote.Trade account/user id. Optional for preview (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0). Required for live withdraw.","type":"integer"},"quantity":{"description":"Scaled integer quantity as string (API format). Example: \"20000000\" with quantity_scale=6 means 20 USDC.","type":"string"},"quantity_scale":{"description":"Decimal scale for quantity. Example: 6 for USDC.","type":"integer"},"symbol":{"description":"Stablecoin to withdraw: USDC, USDT, or XUSDC only (not BTC/ETH/other).","type":"string"}},"required":["symbol","quantity","quantity_scale"],"type":"object"},"name":"quote_trade_withdraw_preview"}]},"body_sha256":"c246c7bb0610a874f91f5bb83791b3d6696c83b7ad6da0085a62050c7afb9dc7","prev_id":null,"leaf":"0x5107fb52226d00fd7c8a713a075f7ac45a69a3b88f04da36e626d2ec779e4d0e","leaf_text":"{\"body\":\"c246c7bb0610a874f91f5bb83791b3d6696c83b7ad6da0085a62050c7afb9dc7\",\"id\":309497,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793058937979355,\"prev\":null,\"subject\":\"a6c259b4-6791-4162-8e25-135631397e86\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-10-26","leaves":296695,"root":"0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8","chained":"0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a","anchor_chain":"eip155:5042002","anchor_tx":"0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae","anchor_block":69251483},"proof":["0x5107a9e3f819fcbea77e5fc6b338e6249adf89e126827f4e305f2acbb0f6c5da","0x94e3e8192d554a09226206ffd42a4652031d828b20f0c7a17d72d7db78277911","0xf351cbd2dee42765f0e728a0c5a71e71dc2cb9499b44b4865b7f4344fa9f7ca4","0x649d1814b34e3832fe8d99e51d8098328224e19eac092fb2d05c99adde64bc74","0xffb1022d0b690332debc195281f0b19668d1bf9484d3b619ad89e18d6376b976","0x658811acd7a52bcdaa20e5d1af11566c673f4893560578d8dbb82123dfd8e7e8","0x2bbab5f1a8f705f8f9ea187de8e67d15f3adcf89a717b460232698f467676f37","0x8b2393b9a0cca266e124c0d9cdd820c770d089235bd6a2a38090e1f9577c48f9","0x417ae96c21259e0ba92e9c16e22f6cdcea1d55df56b3cb0c4812519bf06e866e","0x1cf289732577ec7d4b7786636bf1c834b739571451a5cc67e3aac33256c9be46","0xfa039eb62e5d0ae9f7aaaafb0fcbceacfa661b07228233046b9a9af94e547a55","0xecaf47ba75097c34f2d3c4d62539dace0db8b484bf08941a9259e2d1e8ccea77","0xf7d2cf278e5d2768b8bdb70730c378877cf7165d8efcbec8bcd3282fdc50d177","0x0733993143f0230e79482cef2c38e95d98f9eafbe64a43cdc74a4545938a4167","0x2be1e80e065dd6b2cc75a7142be22225acd144ac975d70bf24b4f01fd76dc497","0x2e6a32eb32761c210560e852405e2f865f958ddbe01027894f8b9c1b3433b9f0","0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d","0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d","0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a"]}