Quote.Trade MCP Adapter
by quote.trade · remote · no sign-in to list tools · v1.5.8 · published by trade.quote
Quote.Trade MCP: login, deposit address, market data, orders, and withdraws.
25 tools: 3 can delete or cancel things, 2 do something that can't be undone, 7 change things and 13 only read.
Scanned Oct 21, 2026
- Deletes or cancels3Claude Code: deny: see these tools
- Can't be undone2Claude Code: ask: see these tools
- Changes things7Claude Code: ask: see these tools
- Only reads13Claude Code: allow: see these tools
6 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http quote https://quote.trade/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "quote_trade_get_challenge" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":true}; The name "quote_trade_get_challenge" says "get": a word for reading.
The server marks "quote_trade_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "quote_trade_status" says "status": a word for reading.
The server marks "quote_trade_exchange_info" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The description's first verb is "call": a word for a change.
The server marks "quote_trade_account" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The description's first verb is "withdraw": a word that usually means money moves, which cannot be taken back.
The server marks "quote_trade_withdraw_preview" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "quote_trade_withdraw_preview" says "withdraw": a word that usually means money moves, which cannot be taken back.
The description mentions "credentials".
What this check looks forMatched text
description: "...r explicit list; empty denies), and API credentials. No MCP USD notional cap applies. Sendi..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
25 tools
Deletes or cancels 3Claude Code: deny
quote_trade_cancel_orderCancel one order by orderId.Reads text others writeNo findings
Why it is in this group
- The name "quote_trade_cancel_order" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: true
- readOnlyHint: false
- openWorldHint: true
quote_trade_place_orderTrade step 4.Reads text others write1 finding
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...r explicit list; empty denies), and API credentials. No MCP USD notional cap applies. Sendi..."
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: true
- readOnlyHint: false
- openWorldHint: true
quote_trade_withdrawWithdraw step 3.Reads text others writeNo findings
Why it is in this group
- The name "quote_trade_withdraw" says "withdraw": a word that usually means money moves, which cannot be taken back.
- The server marks it destructive (destructiveHint: true).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: true
- readOnlyHint: false
- openWorldHint: true
Can't be undone 2Claude Code: ask
quote_trade_accountWithdraw step 1 / anytime account check.Reads text others write1 finding
Why it is in this group
- The description's first verb is "withdraw": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "quote_trade_account" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The description's first verb is "withdraw": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it Withdraw step 1 / anytime account check. GET /api/account with per-request X-MBX-APIKEY. Inspect available balances before withdraw. No live trading action.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_withdraw_previewOptional before live withdraw.1 finding
Why it is in this group
- The name "quote_trade_withdraw_preview" says "withdraw": a word that usually means money moves, which cannot be taken back.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "quote_trade_withdraw_preview" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":false}; The name "quote_trade_withdraw_preview" says "withdraw": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: false
Changes things 7Claude Code: ask
quote_trade_depthTrade step 3.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Trade step 3. GET /api/depth?symbol=SYMBOL&limit=N. Use depth quantity to choose a suitable limit price before placing an order.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_exchange_infoCall GET /api/exchangeInfo and return a paginated slice of trading symbols plus rate limits/server time.Reads text others write1 finding
Why it is in this group
- The description's first verb is "call": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "quote_trade_exchange_info" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The description's first verb is "call": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_get_challengeOptional wallet login/register step 1 (not required for trading with an existing API key).Reads text others write1 finding
Why it is in this group
- The name "quote_trade_get_challenge" says "get": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Findings
- Warn
The server marks "quote_trade_get_challenge" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"openWorldHint":true}; The name "quote_trade_get_challenge" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: false
- openWorldHint: true
quote_trade_instrumentsTrade step 1.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_logonOptional wallet login/register step 3 (not required if the agent already has an API key).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: false
- openWorldHint: true
quote_trade_statusCall GET /api/status and return system status, server time, contracts URL, and feature flags.Reads text others write1 finding
Why it is in this group
- The name "quote_trade_status" says "status": a word for reading.
- The description's first verb is "call": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
- untrusted-inputThe description's first sentence says "call" and "url": it reads web pages, which anyone can write.
Findings
- Warn
The server marks "quote_trade_status" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "quote_trade_status" says "status": a word for reading.
Description, as the server wrote it Call GET /api/status and return system status, server time, contracts URL, and feature flags.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_tickerTrade step 2.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Trade step 2. GET /api/ticker?symbol=SYMBOL for a symbol from quote_trade_instruments. Returns last price, bid, ask, lastUpdateId.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
Only reads 13Claude Code: allow
quote_trade_api_discoveryRead once to learn efficient direct REST/WebSocket use: routes, signing, streaming, cumulative depth, and client execution controls.Reads text others writeNo findings
Why it is in this group
- The description's first verb is "read": a word for reading.
What it can reach
- untrusted-inputThe description's first sentence says "read" and "web": it reads web pages, which anyone can write.
Description, as the server wrote it Read once to learn efficient direct REST/WebSocket use: routes, signing, streaming, cumulative depth, and client execution controls. Public guidance only; no upstream calls.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: false
quote_trade_api_manifestExplains that MCP is only a tool/schema adapter around the existing Quote.Trade APIs, and returns local servlet guardrail configuration.No findings
Why it is in this group
- The description's first verb is "explain": a word for reading.
Description, as the server wrote it Explains that MCP is only a tool/schema adapter around the existing Quote.Trade APIs, and returns local servlet guardrail configuration.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: false
quote_trade_get_deposit_addressDeposit step 1.Reads text others writeNo findings
Why it is in this group
- The name "quote_trade_get_deposit_address" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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).
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_get_deposit_historyAnytime deposit check.Reads text others writeNo findings
Why it is in this group
- The name "quote_trade_get_deposit_history" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_get_index_positionsAnytime position check.Reads text others writeNo findings
Why it is in this group
- The name "quote_trade_get_index_positions" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_get_order_historyAnytime order check.Reads text others writeNo findings
Why it is in this group
- The name "quote_trade_get_order_history" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_get_order_statusAnytime order check.Reads text others writeNo findings
Why it is in this group
- The name "quote_trade_get_order_status" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_get_ordersAnytime order check.Reads text others writeNo findings
Why it is in this group
- The name "quote_trade_get_orders" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_get_positionsAnytime position check.Reads text others writeNo findings
Why it is in this group
- The name "quote_trade_get_positions" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_get_riskAnytime risk check.Reads text others writeNo findings
Why it is in this group
- The name "quote_trade_get_risk" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_get_user_walletsAnytime wallet check.Reads text others writeNo findings
Why it is in this group
- The name "quote_trade_get_user_wallets" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_get_withdraw_requestsAnytime withdrawal check.Reads text others writeNo findings
Why it is in this group
- The name "quote_trade_get_withdraw_requests" says "get": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it 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.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: true
quote_trade_order_previewOptional before live trade.No findings
Why it is in this group
- The name "quote_trade_order_preview" says "preview": a word for reading.
Description, as the server wrote it Optional before live trade. Normalize/validate a BUY/SELL order locally without sending it.
Annotations the server declares
- destructiveHint: false
- readOnlyHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged private-data or outbound.
- Reads private data0
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write22
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- quote_trade_account
- quote_trade_api_discovery
- quote_trade_cancel_order
- quote_trade_depth
- quote_trade_exchange_info
- quote_trade_get_challenge
- quote_trade_get_deposit_address
- quote_trade_get_deposit_history
- quote_trade_get_index_positions
- quote_trade_get_order_history
- quote_trade_get_order_status
- quote_trade_get_orders
- and 10 more
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Install
Pinned to version 1.5.8. Values in angle brackets are yours to fill in.
claude mcp add --transport http quote https://quote.trade/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__quote__quote_trade_api_discovery",
"mcp__quote__quote_trade_api_manifest",
"mcp__quote__quote_trade_get_deposit_address",
"mcp__quote__quote_trade_get_positions",
"mcp__quote__quote_trade_get_orders",
"mcp__quote__quote_trade_get_order_status",
"mcp__quote__quote_trade_get_risk",
"mcp__quote__quote_trade_get_order_history",
"mcp__quote__quote_trade_get_deposit_history",
"mcp__quote__quote_trade_get_withdraw_requests",
"mcp__quote__quote_trade_get_user_wallets",
"mcp__quote__quote_trade_get_index_positions",
"mcp__quote__quote_trade_order_preview"
],
"ask": [
"mcp__quote__quote_trade_get_challenge",
"mcp__quote__quote_trade_logon",
"mcp__quote__quote_trade_status",
"mcp__quote__quote_trade_exchange_info",
"mcp__quote__quote_trade_instruments",
"mcp__quote__quote_trade_ticker",
"mcp__quote__quote_trade_depth",
"mcp__quote__quote_trade_account",
"mcp__quote__quote_trade_withdraw_preview"
],
"deny": [
"mcp__quote__quote_trade_place_order",
"mcp__quote__quote_trade_cancel_order",
"mcp__quote__quote_trade_withdraw"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as quote. Review it before you use it.
Capability tags behind 22 rules
- mcp__quote__quote_trade_api_discovery untrusted-input
- mcp__quote__quote_trade_get_challenge untrusted-input
- mcp__quote__quote_trade_logon untrusted-input
- mcp__quote__quote_trade_get_deposit_address untrusted-input
- mcp__quote__quote_trade_status untrusted-input
- mcp__quote__quote_trade_exchange_info untrusted-input
- mcp__quote__quote_trade_instruments untrusted-input
- mcp__quote__quote_trade_ticker untrusted-input
- mcp__quote__quote_trade_depth untrusted-input
- mcp__quote__quote_trade_account untrusted-input
- mcp__quote__quote_trade_get_positions untrusted-input
- mcp__quote__quote_trade_get_orders untrusted-input
- mcp__quote__quote_trade_get_order_status untrusted-input
- mcp__quote__quote_trade_get_risk untrusted-input
- mcp__quote__quote_trade_get_order_history untrusted-input
- mcp__quote__quote_trade_get_deposit_history untrusted-input
- mcp__quote__quote_trade_get_withdraw_requests untrusted-input
- mcp__quote__quote_trade_get_user_wallets untrusted-input
- mcp__quote__quote_trade_get_index_positions untrusted-input
- mcp__quote__quote_trade_place_order untrusted-input
- mcp__quote__quote_trade_cancel_order untrusted-input
- mcp__quote__quote_trade_withdraw untrusted-input