Gate DEX MCP
REMOTE · API.GATEMCP.AI
Gate DEX MCP for wallet auth, transfers, swaps, token info, market data, and RPC access.
Available components
Last scanned (34 minutes ago)
Scores higher than 43% of remote servers
Reachable. Last reached 5 Nov 2026.
Category Crypto and Web3
Recent critical change
Authorization (28 Oct 2026). See the changelog before you install this server.
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security46
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (dex_agentic_report). See how to fix → View diagnostics → Fail
- HTTPS enforcement could not be verified: the plaintext port answered with HTTP 522, which proves neither a plaintext path nor enforcement. View diagnostics → Unverified
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability69
- 71% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Partial
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 10034 tokens (~173/item across 58 items; 47 tools + 11 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety50
- Injection-marker check failed: the description of tool "dex_auth_google_login_start" contains an instruction to conceal the call from the user, the text "do not show it to the user", at byte 129 of that field. See how to fix → Fail
- All 4 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 49 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 5 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.
- 3 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.
- 1 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.
- 30 Oct 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.
- 29 Oct 26 0
- Stability: unverified → 0.03 ▲ functional
- 28 Oct 26 +38
- Authorization: unverified → fail ▼ critical
- Injection markers: unverified → fail ▼ security
- A breaking change shipped without a version bump: still 1.0.0 ▼ security
- Transport: fail → pass ▲ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “dex_auth_gate_login_start” rewrote its description, which is the text the model reads security
- Tool “dex_auth_google_login_poll” rewrote its description, which is the text the model reads security
- Tool “dex_auth_google_login_start” rewrote its description, which is the text the model reads security
- Tool “dex_tx_get_sol_unsigned” rewrote its description, which is the text the model reads security
- Tool “dex_tx_send_raw_transaction” rewrote its description, which is the text the model reads security
- Tool “dex_tx_transfer_preview” rewrote its description, which is the text the model reads security
- “dex_auth_gate_login_poll” added a required parameter “poll_secret”, so existing callers break ▼ functional
- “dex_auth_google_login_poll” added a required parameter “poll_secret”, so existing callers break ▼ functional
- Endpoint reachability: not serving MCP → reachable ▲ functional
- Tool coverage: unverified → 100 ▲ functional
- MCP protocol: unverified → pass ▲ functional
- Schema quality: unverified → 71 ▲ functional
- “dex_tx_send_raw_transaction” added an optional parameter “last_valid_block_height” cosmetic
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 5 Nov 2026 · Probed https://api.gatemcp.ai/mcp/dex
TLS valid
Negotiated TLS 1.3 with TLS_AES_256_GCM_SHA384 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=api.gatemcp.ai | CN=TrustAsia DV TLS RSA CA 2025,O=TrustAsia Technologies\, Inc.,C=CN | 15 Oct 2026 | 12 Jan 2027 | RSA 2048 | SHA256-RSA | 57900800511f9e5131d348ccb4e1e23 |
| SANs: api.gatemcp.ai | ||||||
| CN=TrustAsia DV TLS RSA CA 2025,O=TrustAsia Technologies\, Inc.,C=CN (CA) | CN=DigiCert Global Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US | 8 Jan 2025 | 7 Jan 2035 | RSA 4096 | SHA256-RSA | 926323b4964e368461512def1a5d52c |
| CN=DigiCert Global Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US (CA) | CN=DigiCert Global Root G2,OU=www.digicert.com,O=DigiCert Inc,C=US | 1 Aug 2013 | 15 Jan 2038 | RSA 2048 | SHA256-RSA | 33af1e6a711a9a0bb2864b11d09fae5 |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of api.gatemcp.ai. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| ai. | present | 1814, 3799 | 8, 8 | Verified |
| gatemcp.ai. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://api.gatemcp.ai/mcp/dex | Verified | 200 | |
| http (plaintext) | http://api.gatemcp.ai/mcp/dex | Inconclusive | 522 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
dex_agentic_report ~119
Register agentic wallet addresses with the wallet service.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| wallets | object | yes | Array of wallet info objects. Each wallet contains walletID and accounts array. Each account contains accountID and chainAddressList array. Each chainAddress contains networkKey, chains, chainAddress… |
No output schema declared.
No examples provided.
dex_auth_gate_login_poll ~158
Poll Gate OAuth; returns pending/ok/error. [write] On ok: replace mcp_token unless linked_to_google_session is true. Pass auto_replace_binding=true to rebind exchange UID on new Gate session.
| Name | Type | Req | Description |
|---|---|---|---|
| auto_replace_binding | boolean | – | If true and status is ok: when new session walletType is not gate_mcp/gate_quick, call BW POST /v1/wallet/inner/rebind (same as dex_wallet_replace_binding). Gate-native sessions are blocked without c… |
| flow_id | string | yes | Flow ID returned by dex_auth_gate_login_start |
| poll_secret | string | yes | One-time poll secret returned by dex_auth_gate_login_start. Do not show this value to the user. |
No output schema declared.
No examples provided.
dex_auth_gate_login_start ~83
Start Gate device login. Show verification_uri and user_code to the user. Keep poll_secret for polling and do not show it. Pass link_mcp_token on a Google session to bind Gate UID without replacing mcp_token.
| Name | Type | Req | Description |
|---|---|---|---|
| link_mcp_token | string | – | Current Google wallet mcp_token for bind-only Gate OAuth; omit for standalone Gate login |
No output schema declared.
No examples provided.
dex_auth_google_login_poll ~101
Poll Google device login; returns pending/ok/error. Requires poll_secret from start. [write] On ok: immediately replace stored mcp_token with login_result.mcp_token — new token is tied to a different account.
| Name | Type | Req | Description |
|---|---|---|---|
| flow_id | string | yes | Flow ID returned by dex_auth_google_login_start |
| poll_secret | string | yes | One-time poll secret returned by dex_auth_google_login_start. Do not show this value to the user. |
No output schema declared.
No examples provided.
dex_auth_google_login_start ~44
Starts Google device login. Show verification_uri and user_code to the user. Keep poll_secret for dex_auth_google_login_poll and do not show it to the user.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
dex_auth_login_gate_wallet ~70
Exchange Gate OAuth code for MCP token. [write] On success, immediately replace any stored mcp_token — new token is tied to a different account.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Gate OAuth authorization code |
| redirect_url | string | yes | Gate OAuth redirect URL used in the authorization request |
No output schema declared.
No examples provided.
dex_auth_login_google_wallet ~70
Exchange Google OAuth code for MCP token. [write] On success, immediately replace any stored mcp_token — new token is tied to a different account.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | Google OAuth authorization code |
| redirect_url | string | yes | Google OAuth redirect URL used in the authorization request |
No output schema declared.
No examples provided.
dex_auth_logout ~34
Revoke the MCP session identified by mcp_token.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | yes | MCP session token to revoke |
No output schema declared.
No examples provided.
dex_chain_config ~116
Returns chain config (networkKey, accountKey, chainID). Use the returned chain value in all subsequent transfer/sign/broadcast tools.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name or alias (matching is case-insensitive). Use the returned `chain` value for all subsequent tools on that network. |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_market_get_kline ~220
OHLCV candles by period and window. Volume aggregates→get_tx_stats. Pool events→get_pair_liquidity.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name. Supported: bsc, base, eth, solana, arbitrum, polygon, avalanche, fantom, zksync, linea, optimism, sui, blast, tron, merlin, world, eni, bera, gatelayer, ton |
| end_time | string | – | End time (unix seconds); default: now |
| limit | string | – | Max number of candles (default 100, max 1000) |
| pair_address | string | – | Optional pair address |
| period | string | yes | K-line period: seconds (e.g. 300, 3600) or 1m, 5m, 1h, 4h, 1d |
| start_time | string | – | Start time (unix seconds); default: 100 periods before end_time |
| token_address | string | yes | Token contract address |
No output schema declared.
No examples provided.
dex_market_get_pair_liquidity ~150
AMM pool deposit and withdrawal events. Candlesticks→get_kline. Volume stats→get_tx_stats.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name. Supported: bsc, base, eth, solana, arbitrum, polygon, avalanche, fantom, zksync, linea, optimism, sui, blast, tron, merlin, world, eni, bera, gatelayer, ton |
| page_index | string | – | Page index (default 1) |
| page_size | string | – | Page size (default 15, max 15) |
| pair_address | string | – | Optional pair address |
| token_address | string | yes | Token contract address |
No output schema declared.
No examples provided.
dex_market_get_tx_stats ~127
Per-interval buy/sell volume and tx counts (5m–24h). Candlesticks→get_kline. Pool events→get_pair_liquidity.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name. Supported: bsc, base, eth, solana, arbitrum, polygon, avalanche, fantom, zksync, linea, optimism, sui, blast, tron, merlin, world, eni, bera, gatelayer, ton |
| pair_address | string | – | Optional pair address |
| token_address | string | yes | Token contract address |
No output schema declared.
No examples provided.
dex_rpc_call ~132
Proxy a JSON-RPC call to a blockchain node.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name (e.g., ETH, BSC, SOL, ARB, POLYGON) |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| method | string | yes | RPC method name (e.g., eth_blockNumber, eth_getBalance, getLatestBlockhash) |
| params | array | – | RPC method parameters as JSON array |
No output schema declared.
No examples provided.
dex_token_get_coin_info ~68
Price, market snapshot, metadata, optional top holders. Security audit→get_risk_info.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Token contract address |
| chain | string | yes | Blockchain network |
| include_holders | string | – | Include top holders (true/false, default true) |
No output schema declared.
No examples provided.
dex_token_get_coins_range_by_created_at ~131
Tokens launched within a given time window; chain optional for all networks.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | – | Optional chain filter; omit for all chains |
| end | string | yes | End of creation time range (RFC3339, e.g. 2025-01-02T00:00:00Z) |
| limit | string | – | Max number of tokens (1-100, default 20) |
| start | string | yes | Start of creation time range (RFC3339, e.g. 2025-01-01T00:00:00Z) |
No output schema declared.
No examples provided.
dex_token_get_risk_info ~133
Contract security audit (honeypot, tax, ownership flags). Price and market stats→get_coin_info.
| Name | Type | Req | Description |
|---|---|---|---|
| address | string | yes | Token contract address |
| chain | string | yes | Chain name. Supported: bsc, polygon, avalanche, arbitrum, optimism, base, fantom, linea, zksync, world, gatelayer, merlin, blast, eni, bera, solana, ton, sui, tron |
| ignore | string | – | Set to true to hide empty risk items |
| lan | string | – | Language code (e.g. en, zh) |
No output schema declared.
No examples provided.
dex_token_list_cross_chain_bridge_tokens ~178
Receivable assets on target chain for a source token. Same-chain trading→list_swap_tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | User account ID. Only used when wallet is empty, to look up wallet addresses. |
| chain | string | yes | Target chain identifier, e.g. bsc, arbitrum, polygon |
| search | string | – | Search keyword (token symbol or contract address) to filter results |
| search_auth | boolean | – | When searching, only return certified tokens. Only effective when search is non-empty. |
| source_address | string | yes | Source token contract address on the source chain |
| source_chain | string | yes | Source chain identifier, e.g. eth, bsc, solana |
| wallet | string | – | User wallet address(es), comma-separated. Used to show balances and favorites. |
No output schema declared.
No examples provided.
dex_token_list_swap_tokens ~223
Tradable assets on a chain; tag selects favorites or recommendations. Bridge targets→list_cross_chain_bridge_tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | User account ID. Only used when wallet is empty. |
| chain | string | – | Chain identifier, e.g. eth, bsc, solana, arbitrum. Omit to query all chains. |
| ignore_bridge | boolean | – | Ignore cross-chain bridge restrictions, only filter by chain. Default false. |
| search | string | – | Search keyword (token symbol or contract address) |
| search_auth | boolean | – | When searching, only return certified tokens. Only effective when search is non-empty. |
| tag | string | – | List type: empty for normal token list; 'favorite' for user favorites (requires wallet/account_id); 'recommend' for system recommended tokens. |
| wallet | string | – | User wallet address(es), comma-separated. Used for favorites and balance display. |
| web3_key | string | – | Chain web3_key identifier. Only used when chain is empty, auto-maps to chain. |
No output schema declared.
No examples provided.
dex_token_ranking ~83
Top movers by 24h price change; direction selects gainers vs losers. Single token→get_coin_info.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | – | Optional chain filter |
| direction | string | yes | 'desc' for top gainers, 'asc' for top losers |
| top_n | string | – | Number of tokens (1-100, default 10) |
No output schema declared.
No examples provided.
dex_tx_approve_preview ~359
Build ERC20/SPL approve or revoke tx (does not broadcast). Sign with dex_wallet_sign_transaction after user confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| action | string | – | Action type: 'approve' (default) or 'revoke' (revoke all approvals, Solana only) |
| amount | string | yes | Approval amount (human-readable). Set to '0' to revoke approval (EVM), set to 'unlimited' or 'max' for maximum allowance |
| chain | string | – | Chain name (default ETH). Based on backend chain configuration. |
| max_fee_per_gas | string | – | EVM: override max fee per gas (wei) |
| max_priority_fee_per_gas | string | – | EVM: override max priority fee per gas (wei) |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| nonce | string | – | EVM: transaction nonce. Omit to auto-fetch current nonce. |
| owner | string | yes | Owner address (your wallet address) |
| priority_fee_micro_lamports | string | – | Solana: priority fee (micro-lamports per compute unit) |
| spender | string | yes | Spender address (EVM: spender contract address; Solana: delegate account address) |
| token_contract | string | – | EVM: ERC20 contract address (required for EVM) |
| token_decimals | string | yes | Token decimals (e.g. 6, 18, 9) |
| token_mint | string | – | Solana: SPL Token mint address (required for Solana) |
No output schema declared.
No examples provided.
dex_tx_detail ~100
Fetch transaction detail by on-chain hash. → swap_detail for swap order detail by order ID.
| Name | Type | Req | Description |
|---|---|---|---|
| from_wallet | string | – | Optional sender wallet address filter |
| hash_id | string | yes | Transaction hash ID |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_tx_gas ~140
Estimate on-chain gas price and gas limit for a given tx.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name or alias; resolved via dex_chain_config before calling upstream. |
| data | string | – | Transaction calldata (hex) |
| from | string | yes | Sender address |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| network | string | – | Network name |
| to | string | yes | Recipient address |
| value | string | – | Transfer value in wei |
No output schema declared.
No examples provided.
dex_tx_get_sol_unsigned ~189
Solana native only: build a fresh unsigned SOL transfer with a confirmed blockhash. Call only after the user confirms, then dex_wallet_sign_transaction and dex_tx_send_raw_transaction in the same turn. Do not reuse dex_tx_transfer_preview output.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | Amount in SOL, e.g. 0.0001 |
| from | string | yes | Sender address (base58) |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| priority_fee_micro_lamports | string | – | Optional priority fee (micro-lamports per compute unit). Try 1000-10000 if broadcast returns replacement transaction underpriced. |
| to | string | yes | Recipient address (base58) |
No output schema declared.
No examples provided.
dex_tx_list ~174
List wallet transaction history (transfers). → swap_history_list for swap/bridge orders. → tx_detail for single tx by hash.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | yes | Account ID |
| address | string | – | Wallet address filter |
| cursor | string | – | Pagination cursor |
| end_time | string | – | End time (Unix seconds or ISO8601) |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| page_num | string | – | Page number (1-based) |
| page_size | string | – | Page size (default 20) |
| start_time | string | – | Start time (Unix seconds or ISO8601) |
No output schema declared.
No examples provided.
dex_tx_send_raw_transaction ~548
Broadcast a signed tx to the chain. [write] Requires user confirmation after transfer preview and prior signing via dex_wallet_sign_transaction. Solana: pass last_valid_block_height from dex_tx_get_sol_unsigned; an expired blockhash is rejected before the upstream send. account_id/address are auto-filled from the login session when omitted.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Account ID (for history_data); optional when logged in — resolved from session |
| action_type | string | – | Action type (history_data.action_type) |
| address | string | – | Sender wallet address (history_data.address); optional when logged in — resolved from session wallet for the chain |
| chain | string | yes | Chain name: must match dex_chain_config response `chain` (canonical). Aliases are resolved via chain config before calling upstream. |
| last_valid_block_height | number | – | Solana: lastValidBlockHeight returned by dex_tx_get_sol_unsigned or the blockhash fetch. Broadcast is rejected when the chain height has passed it. |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| memo | string | – | Memo (history_data.memo) |
| network | string | – | Network name |
| nonce | number | – | Nonce (history_data.nonce) |
| signed_tx | string | yes | Signed transaction data. For EVM chains: hex string (0x prefix added automatically). For other chains (e.g. Solana): use chain-specific format |
| token_addr | string | – | Token contract address (history_data.token_addr) |
| token_name | string | – | Token name (history_data.token_name) |
| token_short_name | string | – | Token symbol, e.g. USDT (history_data.token_short_name) |
| trans_balance | string | – | Display amount (history_data.trans_balance) |
| trans_balance_usd | string | – | USD value (history_data.trans_balance_usd) |
| trans_gas_fee | string | – | Gas fee display (history_data.trans_gas_fee) |
| trans_min_unit_amount | string | – | Amount in smallest unit (history_data.trans_min_unit_amount) |
| trans_min_unit_gas_fee | string | – | Gas fee in smallest unit (history_data.trans_min_unit_gas_fee) |
| trans_oppo_address | string | – | Counterparty address, e.g. recipient (history_data.trans_oppo_address) |
| trans_time | string | – | Transaction time ISO8601 (default: now) |
| trans_type | string | – | Transaction type (history_data.trans_type) |
No output schema declared.
No examples provided.
dex_tx_swap_checkin_preview ~184
Returns check-in fields for a swap stage (approve or swap). Call after prepare and before terminal tx-checkin script.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | yes | MCP session token (required in the tool schema). After Google or Gate wallet login, read it from login_result when dex_auth_google_login_poll or dex_auth_gate_login_poll returns success. The server c… |
| stage | string | yes | Preview stage: 'approve' or 'swap' |
| swap_session_id | string | yes | Swap session ID returned by dex_tx_swap_prepare |
No output schema declared.
No examples provided.
dex_tx_swap_detail ~96
Fetch swap order detail by order ID from swap_submit. → tx_detail for detail by on-chain hash.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| tx_order_id | string | yes | Transaction order ID from dex_tx_swap_submit |
No output schema declared.
No examples provided.
dex_tx_swap_history_list ~229
List swap/bridge order history with pagination; includes single-chain and cross-chain. → tx_list for transfer history.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | yes | Account ID (wallet address) |
| dst_chain | number | – | Destination chain ID filter. 0 or omit for all chains |
| end_time | string | – | End time filter (ISO8601 format) |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| page_num | number | – | Page number (0-based, default 0) |
| page_size | number | – | Page size (default 20) |
| src_chain | number | – | Source chain ID filter (e.g. 1=ETH, 56=BSC). 0 or omit for all chains |
| start_time | string | – | Start time filter (ISO8601 format, e.g. 2025-01-01T00:00:00Z) |
No output schema declared.
No examples provided.
dex_tx_swap_prepare ~839
Stage a swap session (server-side build only); returns swap_session_id. Does not sign or submit. Call after quote confirmed by user.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | yes | User account ID (UUID) |
| amount | string | yes | Human-readable amount (e.g. '0.01') |
| chain_id_in | number | yes | Source chain ID (e.g. 1=ETH, 56=BSC, 501=Solana) |
| chain_id_out | number | yes | Destination chain ID. Same as chain_id_in for single-chain swap |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| native_in | number | yes | ⚠️ CRITICAL — Must be set correctly, wrong value causes transaction failure or fund loss. Simply check: is token_in a native/gas coin? If yes, set 1; if it's a contract token, set 0. Native coins: ET… |
| native_out | number | yes | ⚠️ CRITICAL — Must be set correctly, wrong value causes transaction failure or fund loss. Simply check: is token_out a native/gas coin? If yes, set 1; if it's a contract token, set 0. Native coins: E… |
| slippage | number | yes | Slippage as decimal (0.01=1%, 0.1=10%) |
| to_wallet | string | – | Destination chain receiving address. ONLY required for CROSS-CHAIN swaps where chain_id_in and chain_id_out belong to different address groups (e.g. EVM→Solana). Obtain from dex_wallet_get_addresses.… |
| token_in | string | yes | Source token address. Use '-' for native coin |
| token_out | string | yes | Destination token address |
| user_wallet | string | yes | User's wallet address matching the SOURCE CHAIN. MUST be chain-specific: call dex_wallet_get_addresses(account_id) to get addresses, use addresses["EVM"] for EVM chains or addresses["SOL"] for Solana… |
No output schema declared.
No examples provided.
dex_tx_swap_quote ~1,192
Returns swap route and pricing. Call before swap_prepare; show result to user before proceeding. → transfer_preview for direct token send (not exchange).
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | Human-readable amount of source token to swap, e.g. "0.001" for 0.001 BNB, "1" for 1 USDT. Do NOT convert to smallest unit (wei/lamports). Obtained directly from user's chat message. |
| chain_id_in | number | yes | Source chain ID. Use well-known IDs: ETH=1, BSC=56, Polygon=137, Arbitrum=42161, Base=8453, Avalanche=43114, Solana=501. Only call dex_chain_config for uncommon/unknown chains. For single-chain swap,… |
| chain_id_out | number | yes | Destination chain ID. Use same well-known IDs as chain_id_in. For single-chain swap, set equal to chain_id_in. For cross-chain swap, set to the target chain's ID. |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| native_in | number | yes | ⚠️ CRITICAL — Must be set correctly, wrong value causes transaction failure or fund loss. Simply check: is token_in a native/gas coin? If yes, set 1; if it's a contract token, set 0. Native coins: ET… |
| native_out | number | yes | ⚠️ CRITICAL — Must be set correctly, wrong value causes transaction failure or fund loss. Simply check: is token_out a native/gas coin? If yes, set 1; if it's a contract token, set 0. Native coins: E… |
| slippage | number | yes | Slippage tolerance as decimal ratio: 0.01 = 1%, 0.03 = 3%. Valid range: 0.001 (0.1%) to 0.499 (49.9%). If the user already specified slippage, use it directly. Only ask to confirm when not provided.… |
| to_wallet | string | – | Destination chain receiving address. ONLY required for CROSS-CHAIN swaps where chain_id_in and chain_id_out belong to different address groups (e.g. EVM→Solana or Solana→EVM). Obtain from dex_wallet_… |
| token_in | string | yes | Source token contract address. Use "-" for native coins (ETH, BNB, MATIC, etc.). For ERC20/BEP20 tokens, provide the full contract address (e.g. 0x55d398326f99059ff775485246999027b3197955 for BSC USD… |
| token_out | string | yes | Destination token contract address. Use "-" for native coins. For ERC20/BEP20 tokens, provide the full contract address. Obtain from user input, wallet_get_token_list, or known token mappings. If nat… |
| user_wallet | string | yes | User's wallet address matching the SOURCE CHAIN. CRITICAL: You MUST use the chain-specific address — call dex_wallet_get_addresses(account_id) first, then use addresses["EVM"] for EVM chains (ETH/BSC… |
No output schema declared.
No examples provided.
dex_tx_swap_sign_approve ~136
[write] Sign the ERC20 approve tx for a staged EVM swap. Requires need_approved=true in prepare result.
| Name | Type | Req | Description |
|---|---|---|---|
| checkin_token | string | yes | Approve-stage checkin_token returned by the local skill check-in script after dex_tx_swap_checkin_preview(stage='approve') |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| swap_session_id | string | yes | Swap session ID returned by dex_tx_swap_prepare |
No output schema declared.
No examples provided.
dex_tx_swap_sign_swap ~146
[write] Sign the main swap tx for a staged session. EVM: call sign_approve first if need_approved=true. Solana: generates a fresh signable payload.
| Name | Type | Req | Description |
|---|---|---|---|
| checkin_token | string | yes | Swap-stage checkin_token returned by the local skill check-in script after dex_tx_swap_checkin_preview(stage='swap') |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| swap_session_id | string | yes | Swap session ID returned by dex_tx_swap_prepare |
No output schema declared.
No examples provided.
dex_tx_swap_submit ~110
[write] Broadcast a staged swap to the chain. Does not sign. Requires all signing steps complete (sign_approve if EVM+approval, then sign_swap).
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| swap_session_id | string | yes | Swap session ID returned by dex_tx_swap_prepare |
No output schema declared.
No examples provided.
dex_tx_transfer_preview ~555
Build a transfer summary (sender, recipient, amount, gas). Does not broadcast. Solana native: returns key_info only — after the user confirms, call dex_tx_get_sol_unsigned and sign that result immediately. Do not sign a Solana transaction built before confirmation. EVM: returns unsigned_tx_hex and txBundle. → swap_quote/swap_prepare for token exchange.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | Amount in token units. Precision depends on token/decimals. Examples: '1', '0.5', '0.000001' |
| chain | string | – | Chain name or alias (default ETH). Resolved to canonical name from chain config; downstream sign/broadcast should use the same logical chain. |
| from | string | yes | Sender (your wallet) address |
| max_fee_per_gas | string | – | EVM only: override max fee per gas (wei). Use when replacing a pending tx: set ≥1.1× the previous max_fee_per_gas to fix replacement transaction underpriced. |
| max_priority_fee_per_gas | string | – | EVM only: override max priority fee per gas (wei). When replacing, set ≥1.1× previous max_priority_fee_per_gas. |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| nonce | string | – | Transaction nonce. Omit to use current chain nonce (eth_getTransactionCount), ensuring tx can be mined and found on explorer; wrong nonce causes tx to fail or not appear. |
| priority_fee_micro_lamports | string | – | Solana only: optional priority fee (micro-lamports per compute unit). Use 1000-10000 if broadcast returns replacement transaction underpriced. |
| to | string | yes | Recipient address |
| token | string | – | Token symbol for display (default USDT). Use ETH/NATIVE for native; USDT for USDT; or use token_contract/token_mint for any token. |
| token_contract | string | – | EVM: ERC20 contract address for arbitrary token. When set, token_decimals is used (default 18). Solana: unused. |
| token_decimals | string | – | Token decimals (e.g. 6, 18). Required when using token_contract (EVM) or token_mint (Solana); default 18 for ERC20, 9 for SOL. |
| token_mint | string | – | Solana: SPL token mint address for SPL transfer. When set, token_decimals is required. EVM: unused. |
No output schema declared.
No examples provided.
dex_tx_x402_checkin_preview ~276
Prepare Gate Verify tx_checkin for x402 (EVM exact / EIP-3009 only): returns tx_checkin.message (64-hex digest) and x402_payment_required_b64 without signing. Flow: 1) this tool 2) Gate Verify tx_checkin with returned tx_checkin fields 3) dex_tx_x402_fetch with same url/body/headers, checkin_token, and the same x402_payment_required_b64. If x402_payment_required_b64 is omitted, performs one HTTP call and requires HTTP 402.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | – | Optional request body |
| headers | string | – | Optional JSON object of request headers |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| method | string | – | HTTP method; default GET |
| url | string | yes | Same URL as dex_tx_x402_fetch |
| x402_payment_required_b64 | string | – | Optional: PAYMENT-REQUIRED header base64; when omitted, one outbound request is made and must return 402 |
| x402_preferred_network | string | – | Same as dex_tx_x402_fetch |
No output schema declared.
No examples provided.
dex_tx_x402_fetch ~419
[write] Send an HTTP request to the given URL. If the server responds with 402 Payment Required, pay via x402 (Coinbase-style: USDC EIP-3009 / Permit2 on EVM, SPL on Solana), retry with PAYMENT-SIGNATURE. REQUIRED: Gate Verify tx_checkin before signing; pass checkin_token. For EVM EIP-3009, use dex_tx_x402_checkin_preview first so the agent does not build digest manually; then pass checkin_token and the same x402_payment_required_b64 from preview. CoinGecko Pro x402: do not send x-cg-pro-api-key; default network Base unless x402_preferred_network=solana.
| Name | Type | Req | Description |
|---|---|---|---|
| body | string | – | Optional request body |
| checkin_token | string | yes | From Gate Verify MCP tool tx_checkin success (e.g. structuredContent.data.checkin_token or data.checkin_token). Required before every call so GV can verify signing. |
| headers | string | – | Optional JSON object of request headers |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| method | string | – | HTTP method; default GET |
| url | string | yes | Request URL (CoinGecko x402: https://pro-api.coingecko.com/api/v3/x402/...) |
| x402_payment_required_b64 | string | – | Optional: base64 PAYMENT-REQUIRED header payload from the same 402 as EIP-3009 tx-checkin. When set, skips the first HTTP call and pays using this snapshot (digest/checkin_token must match). |
| x402_preferred_network | string | – | Optional: base, eth, solana, eip155:8453, ... — restrict which accept.network is used. CoinGecko Pro /x402/ defaults to base when omitted. |
No output schema declared.
No examples provided.
dex_wallet_bind_exchange_uid ~114
Bind Gate exchange UID to session. Standalone Gate session only; gateUid must equal login_result.gate_uid from Gate OAuth. → replace_binding to rebind.
| Name | Type | Req | Description |
|---|---|---|---|
| gateUid | string | yes | Must equal login_result.gate_uid from Gate OAuth that created this session |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_wallet_get_addresses ~94
Returns address map by chain type (EVM, SOL, etc.). Call before transfer/swap tools to get the sender address.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | yes | Account ID |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_wallet_get_bindings ~69
Returns current Gate UID binding for the session wallet.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_wallet_get_token_list ~174
Token balances and prices with pagination; filter by network_keys. → get_total_asset for portfolio summary only.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Account ID (optional, auto-detected from login session) |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| network_keys | string | – | Optional. Comma-separated network keys to filter (e.g. ETH,SOL,ARB). Omit or leave empty for all networks. Do not pass a separate chain field — use network_keys only. |
| page | number | – | Page number, default 1 |
| page_size | number | – | Page size, default 20 |
No output schema declared.
No examples provided.
dex_wallet_get_total_asset ~97
Total portfolio value and 24h change. → get_token_list for per-token balance detail.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Account ID (optional, auto-detected from login session) |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_wallet_get_wallet_type ~210
Returns walletAddress, walletType, gateUid. With for_withdraw_to_exchange or for_gate_oauth_bind, also starts Gate OAuth when gateUid is missing.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Account ID; used with session to resolve EVM address if wallet_address omitted |
| for_gate_oauth_bind | boolean | – | Bind/rebind Gate exchange: when walletType is NOT gate_mcp/gate_quick, start Gate OAuth (Google: link); when already Gate-native with gateUid, returns nextSteps only |
| for_withdraw_to_exchange | boolean | – | Withdraw-to-exchange: when gateUid is missing, start Gate device OAuth (Google: link binding) |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| wallet_address | string | – | EVM wallet address to classify |
No output schema declared.
No examples provided.
dex_wallet_google_gate_bind_start ~84
Google sessions only: starts Gate OAuth to bind Gate exchange UID to this session. mcp_token stays unchanged after poll.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
No output schema declared.
No examples provided.
dex_wallet_replace_binding ~121
Rebind Gate exchange UID. [write] newUid must equal login_result.gate_uid from a fresh Gate OAuth. Blocked for gate_mcp/gate_quick sessions and Google sessions.
| Name | Type | Req | Description |
|---|---|---|---|
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| newUid | string | yes | Must equal login_result.gate_uid from latest Gate OAuth (stamped on session) |
No output schema declared.
No examples provided.
dex_wallet_sign_message ~204
Sign a 32-byte hex message with wallet key. [write] Requires checkin_token from terminal tx-checkin. → sign_transaction for raw tx signing.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain: dex_chain_config name/alias (e.g. ETH, BSC, SOL), or pass EVM / SOL directly for the signing family. Unknown names are rejected via chain config; web3_business_wallet sign-message receives cha… |
| checkin_token | string | yes | From successful tx-checkin response: the checkin_token string (terminal CLI stdout JSON). Must match the signing intent in the same flow. |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| message | string | yes | Message to sign (hex) |
No output schema declared.
No examples provided.
dex_wallet_sign_transaction ~168
Sign a raw unsigned transaction. [write] Requires user confirmation after transfer preview and checkin_token from terminal tx-checkin. → dex_tx_send_raw_transaction to broadcast.
| Name | Type | Req | Description |
|---|---|---|---|
| chain | string | yes | Chain name: must match dex_chain_config response `chain` (canonical). Aliases are resolved via chain config. |
| checkin_token | string | yes | From successful tx-checkin response: the checkin_token string (terminal CLI stdout JSON). Must match the signing intent in the same flow. |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| raw_tx | string | yes | Raw transaction data |
No output schema declared.
No examples provided.
dex_withdraw_deposit_address ~197
Fetch Gate exchange deposit address for the session-bound Gate UID. [write] amount must be ≥ min_deposit_amount; do not pass uid — it is resolved from the session.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | Required. Human-readable amount (same units as on-chain transfer); must be ≥ exchange min_deposit_amount |
| chain_name | string | yes | Chain name, e.g. BSC, ETH |
| coin_symbol | string | yes | Coin symbol, e.g. USDT |
| mcp_token | string | – | MCP session token obtained from login (dex_auth_google_login_poll or dex_auth_gate_login_poll). MUST be provided in every call to this tool after login; omitting it will result in 403 |
| token_address | string | – | Optional. ERC20 contract for gate-deposit; empty for native. If omitted, USDT is resolved from chain_name; other symbols may require this field |
No output schema declared.
No examples provided.
How do I install the Gate DEX MCP server?
Gate DEX MCP is a hosted endpoint at https://api.gatemcp.ai/mcp/dex, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · api.gatemcp.ai
claude mcp add --transport http gateio-dev-gate-dex 'https://api.gatemcp.ai/mcp/dex'
What is the Gate DEX MCP server?
Gate DEX MCP is listed in the public MCP registry as io.github.gateio-dev/gate-dex. Gate DEX MCP for wallet auth, transfers, swaps, token info, market data, and RPC access. This page covers its hosted endpoint (https://api.gatemcp.ai/mcp/dex).
Is the Gate DEX MCP server safe to use?
Gate DEX MCP scores 60 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Gate DEX MCP server expose?
Gate DEX MCP exposes 47 tools: dex_agentic_report, dex_auth_gate_login_poll, dex_auth_gate_login_start, dex_auth_google_login_poll, dex_auth_google_login_start, and 42 more. Their descriptions and schemas cost roughly 9,464 tokens of context every time the server is loaded.
Does the Gate DEX MCP server require authentication?
No. We connected to Gate DEX MCP without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the Gate DEX MCP server still maintained?
Gate DEX MCP is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.