{"name":"trade.quote/mcp","slug":"quote-mcp","title":"Quote.Trade MCP Adapter","description":"Quote.Trade MCP: login, deposit address, market data, orders, and withdraws.","url":"https://mcp.market/server/quote-mcp","rating":null,"grade":"C","score":63,"certified":false,"status":"active","category":"ecommerce","tags":["ecommerce"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://quote.trade","version":"1.5.8","remotes":[{"type":"streamable-http","url":"https://quote.trade/mcp","headers":[{"description":"API key from Quote.Trade (wallet login optional). Trade-only: no withdraw. Full-access: trade+withdraw.","isSecret":true,"name":"X-MBX-APIKEY"},{"description":"API secret for the key above. MCP host HMAC-signs with it (full signing authority for that key). Prefer trade-only keys for agents.","isSecret":true,"name":"X-MBX-APISECRET"}]}],"packages":[],"tools":[{"name":"quote_trade_account","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"quote_trade_api_discovery","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"quote_trade_api_manifest","description":"Explains that MCP is only a tool/schema adapter around the existing Quote.Trade APIs, and returns local servlet guardrail configuration.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"quote_trade_cancel_order","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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"account":{"type":"integer","description":"Quote.Trade account/user id. Optional (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0)."},"symbol":{"type":"string","description":"Instrument symbol the order was placed on, such as BTC."},"orderId":{"type":"integer","description":"The order id returned by quote_trade_place_order."},"side":{"type":"string","description":"Optional BUY or SELL, matching the original order. Passed through if given."},"humanApproved":{"type":"boolean","description":"Agent-supplied confirmation friction (not a security control). Must be true; enableTrading remains authoritative."},"approvalText":{"type":"string","description":"Agent-supplied confirmation friction (not a security control). Must exactly equal: APPROVE QUOTE.TRADE CANCEL ORDER"}},"required":["symbol","orderId","humanApproved","approvalText"],"additionalProperties":false}},{"name":"quote_trade_depth","description":"Trade step 3. GET /api/depth?symbol=SYMBOL&limit=N. Use depth quantity to choose a suitable limit price before placing an order.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Instrument symbol from quote_trade_instruments, such as BTC or ETH."},"limit":{"type":"integer","description":"Optional maximum levels per side. Positive values are enforced by MCP; omitted/nonpositive uses upstream depth."}},"required":["symbol"],"additionalProperties":false}},{"name":"quote_trade_exchange_info","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"type":"integer","description":"Max symbols to return. Default 50, max 200."},"skip":{"type":"integer","description":"Number of matching symbols to skip before returning. Default 0."},"symbols":{"type":"string","description":"Optional comma-separated symbol filter, e.g. BTC,ETH,SOL. When set, pagination applies to the filtered list."}},"required":[],"additionalProperties":false}},{"name":"quote_trade_get_challenge","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"login":{"type":"string","description":"Wallet address used as login, e.g. 0x15b65a49faf9a4047e912d7de4a77fe24c7cf483."}},"required":["login"],"additionalProperties":false}},{"name":"quote_trade_get_deposit_address","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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Deposit asset symbol: USDC or USDT (mainnet), or XUSDC (USDC on XDC network)."}},"required":["symbol"],"additionalProperties":false}},{"name":"quote_trade_get_deposit_history","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"quote_trade_get_index_positions","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"assetType":{"type":"string","description":"Optional index/basket asset type filter. Omit for all."}},"required":[],"additionalProperties":false}},{"name":"quote_trade_get_order_history","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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"orderId":{"type":"integer","description":"Optional order id to narrow to one order's history. Omit for the full order history."}},"required":[],"additionalProperties":false}},{"name":"quote_trade_get_order_status","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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"orderId":{"type":"integer","description":"The order id returned by quote_trade_place_order."}},"required":["orderId"],"additionalProperties":false}},{"name":"quote_trade_get_orders","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.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Optional instrument symbol filter, such as BTC. Omit for all symbols."},"limit":{"type":"integer","description":"Optional maximum number of orders to return."},"startTime":{"type":"integer","description":"Optional inclusive start of a time range, epoch milliseconds."},"endTime":{"type":"integer","description":"Optional inclusive end of a time range, epoch milliseconds."}},"required":[],"additionalProperties":false}},{"name":"quote_trade_get_positions","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"quote_trade_get_risk","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"quote_trade_get_user_wallets","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"quote_trade_get_withdraw_requests","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"quote_trade_instruments","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"limit":{"type":"integer","description":"Max instruments to return. Default 50, max 200."},"skip":{"type":"integer","description":"Number of instruments to skip before returning. Default 0."}},"required":[],"additionalProperties":false}},{"name":"quote_trade_logon","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"challenge":{"type":"string","description":"Challenge text returned by quote_trade_get_challenge (Sign auth token: ...)."},"signature":{"type":"string","description":"Wallet signature of the challenge text (0x-prefixed hex)."},"isNewUser":{"type":"boolean","description":"From quote_trade_get_challenge. true -> registerUser; false -> logon. If omitted, logon is tried first then registerUser on failure."}},"required":["challenge","signature"],"additionalProperties":false}},{"name":"quote_trade_order_preview","description":"Optional before live trade. Normalize/validate a BUY/SELL order locally without sending it.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"account":{"type":"integer","description":"Quote.Trade account/user id. Optional for preview (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0). Required for live place_order."},"symbol":{"type":"string","description":"Instrument symbol from quote_trade_instruments, such as BTC."},"side":{"type":"string","description":"BUY or SELL."},"type":{"type":"string","description":"LIMIT only in this adapter."},"price":{"type":"number","description":"Limit price chosen after quote_trade_depth."},"quantity":{"type":"number","description":"Order quantity."},"paymentCurrency":{"type":"string","description":"Payment currency such as USDT."},"disableLeverage":{"type":"integer","description":"1 disables leverage; 0 enables leverage/shorting only if server allowLeverage is true."},"timestamp":{"type":"integer","description":"Optional client timestamp in milliseconds."}},"required":["symbol","side","price","quantity"],"additionalProperties":false}},{"name":"quote_trade_place_order","description":"Trade step 4. POST /api/order with a suitable price after instruments/ticker/depth. Requires tradingEnabled, allowedSymbols (* or explicit list; empty denies), maxNotionalUsd>0, and API credentials. Sending X-MBX-APISECRET to this MCP host grants it full signing authority. humanApproved/approvalText are agent friction only.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"account":{"type":"integer","description":"Quote.Trade account/user id. Optional for preview (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0). Required for live place_order."},"symbol":{"type":"string","description":"Instrument symbol from quote_trade_instruments, such as BTC."},"side":{"type":"string","description":"BUY or SELL."},"type":{"type":"string","description":"LIMIT only in this adapter."},"price":{"type":"number","description":"Limit price chosen after quote_trade_depth."},"quantity":{"type":"number","description":"Order quantity."},"paymentCurrency":{"type":"string","description":"Payment currency such as USDT."},"disableLeverage":{"type":"integer","description":"1 disables leverage; 0 enables leverage/shorting only if server allowLeverage is true."},"timestamp":{"type":"integer","description":"Optional client timestamp in milliseconds."},"humanApproved":{"type":"boolean","description":"Agent-supplied confirmation friction (not a security control). Must be true; enableTrading remains authoritative."},"approvalText":{"type":"string","description":"Agent-supplied confirmation friction (not a security control). Must exactly equal: APPROVE QUOTE.TRADE LIVE ORDER"}},"required":["account","symbol","side","price","quantity","humanApproved","approvalText"],"additionalProperties":false}},{"name":"quote_trade_status","description":"Call GET /api/status and return system status, server time, contracts URL, and feature flags.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"required":[],"additionalProperties":false}},{"name":"quote_trade_ticker","description":"Trade step 2. GET /api/ticker?symbol=SYMBOL for a symbol from quote_trade_instruments. Returns last price, bid, ask, lastUpdateId.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Instrument symbol from quote_trade_instruments, such as BTC or ETH."}},"required":["symbol"],"additionalProperties":false}},{"name":"quote_trade_withdraw","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, allowedWithdrawAssets (independent of the trading allowedSymbols allowlist), and maxNotionalUsd>0. humanApproved/approvalText are agent friction only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"account":{"type":"integer","description":"Quote.Trade account/user id. Optional for preview (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0). Required for live withdraw."},"symbol":{"type":"string","description":"Stablecoin to withdraw: USDC, USDT, or XUSDC only (not BTC/ETH/other)."},"quantity":{"type":"string","description":"Scaled integer quantity as string (API format). Example: \"20000000\" with quantity_scale=6 means 20 USDC."},"quantity_scale":{"type":"integer","description":"Decimal scale for quantity. Example: 6 for USDC."},"humanApproved":{"type":"boolean","description":"Agent-supplied confirmation friction (not a security control). Must be true; enableTrading remains authoritative."},"approvalText":{"type":"string","description":"Agent-supplied confirmation friction (not a security control). Must exactly equal: APPROVE QUOTE.TRADE LIVE WITHDRAW"}},"required":["account","symbol","quantity","quantity_scale","humanApproved","approvalText"],"additionalProperties":false}},{"name":"quote_trade_withdraw_preview","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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"account":{"type":"integer","description":"Quote.Trade account/user id. Optional for preview (defaults to account init-param, QUOTE_TRADE_ACCOUNT, or 0). Required for live withdraw."},"symbol":{"type":"string","description":"Stablecoin to withdraw: USDC, USDT, or XUSDC only (not BTC/ETH/other)."},"quantity":{"type":"string","description":"Scaled integer quantity as string (API format). Example: \"20000000\" with quantity_scale=6 means 20 USDC."},"quantity_scale":{"type":"integer","description":"Decimal scale for quantity. Example: 6 for USDC."}},"required":["symbol","quantity","quantity_scale"],"additionalProperties":false}}],"scan":{"score":63,"grade":"C","scanned_at":"2026-09-19T00:28:19.542Z","report":{"scannerVersion":"0.1.3","scannedAt":"2026-09-19T00:28:19.458Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":17,"max":20,"notes":["remote reachable in 2872ms"]},"poisoning":{"score":15,"max":15,"notes":["25 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://quote.trade/mcp","reachable":true,"authRequired":false,"latencyMs":2872,"serverInfo":{"name":"quote-trade-mcp","version":"1.5.13"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://quote.trade/favicon.ico","source":"site","width":32,"height":22},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}