Gate DEX MCP
Was dieses MCP kann
Supports wallet authentication, blockchain RPC access, token and market data, transaction construction, transfers, swaps, approvals, and transaction history.
Tools
Eingabeschema
{'type': 'object', 'required': ['wallets'], 'properties': {'wallets': {'type': 'object', 'properties': {}, 'description': '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, and optional accountKey/accountFormat.'}, 'mcp_token': {'type': 'string', 'description': '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'}}}
Eingabeschema
{'type': 'object', 'required': ['flow_id'], 'properties': {'flow_id': {'type': 'string', 'description': 'Flow ID returned by dex_auth_gate_login_start'}, 'auto_replace_binding': {'type': 'boolean', 'description': '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 calling BW.'}}}
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'link_mcp_token': {'type': 'string', 'description': 'Current Google wallet mcp_token for bind-only Gate OAuth; omit for standalone Gate login'}}}
Eingabeschema
{'type': 'object', 'required': ['flow_id'], 'properties': {'flow_id': {'type': 'string', 'description': 'Flow ID returned by dex_auth_google_login_start'}}}
Eingabeschema
{'type': 'object', 'required': [], 'properties': {}}
Eingabeschema
{'type': 'object', 'required': ['code', 'redirect_url'], 'properties': {'code': {'type': 'string', 'description': 'Gate OAuth authorization code'}, 'redirect_url': {'type': 'string', 'description': 'Gate OAuth redirect URL used in the authorization request'}}}
Eingabeschema
{'type': 'object', 'required': ['code', 'redirect_url'], 'properties': {'code': {'type': 'string', 'description': 'Google OAuth authorization code'}, 'redirect_url': {'type': 'string', 'description': 'Google OAuth redirect URL used in the authorization request'}}}
Eingabeschema
{'type': 'object', 'required': ['mcp_token'], 'properties': {'mcp_token': {'type': 'string', 'description': 'MCP session token to revoke'}}}
Eingabeschema
{'type': 'object', 'required': ['chain'], 'properties': {'chain': {'type': 'string', 'description': 'Chain name or alias (matching is case-insensitive). Use the returned `chain` value for all subsequent tools on that network.'}, 'mcp_token': {'type': 'string', 'description': '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'}}}
Eingabeschema
{'type': 'object', 'required': ['chain', 'token_address', 'period'], 'properties': {'chain': {'type': 'string', 'description': 'Chain name. Supported: bsc, base, eth, solana, arbitrum, polygon, avalanche, fantom, zksync, linea, optimism, sui, blast, tron, merlin, world, eni, bera, gatelayer, ton'}, 'limit': {'type': 'string', 'description': 'Max number of candles (default 100, max 1000)'}, 'period': {'type': 'string', 'description': 'K-line period: seconds (e.g. 300, 3600) or 1m, 5m, 1h, 4h, 1d'}, 'end_time': {'type': 'string', 'description': 'End time (unix seconds); default: now'}, 'start_time': {'type': 'string', 'description': 'Start time (unix seconds); default: 100 periods before end_time'}, 'pair_address': {'type': 'string', 'description': 'Optional pair address'}, 'token_address': {'type': 'string', 'description': 'Token contract address'}}}
Eingabeschema
{'type': 'object', 'required': ['chain', 'token_address'], 'properties': {'chain': {'type': 'string', 'description': 'Chain name. Supported: bsc, base, eth, solana, arbitrum, polygon, avalanche, fantom, zksync, linea, optimism, sui, blast, tron, merlin, world, eni, bera, gatelayer, ton'}, 'page_size': {'type': 'string', 'description': 'Page size (default 15, max 15)'}, 'page_index': {'type': 'string', 'description': 'Page index (default 1)'}, 'pair_address': {'type': 'string', 'description': 'Optional pair address'}, 'token_address': {'type': 'string', 'description': 'Token contract address'}}}
Eingabeschema
{'type': 'object', 'required': ['chain', 'token_address'], 'properties': {'chain': {'type': 'string', 'description': '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': {'type': 'string', 'description': 'Optional pair address'}, 'token_address': {'type': 'string', 'description': 'Token contract address'}}}
Eingabeschema
{'type': 'object', 'required': ['chain', 'method'], 'properties': {'chain': {'type': 'string', 'description': 'Chain name (e.g., ETH, BSC, SOL, ARB, POLYGON)'}, 'method': {'type': 'string', 'description': 'RPC method name (e.g., eth_blockNumber, eth_getBalance, getLatestBlockhash)'}, 'params': {'type': 'array', 'description': 'RPC method parameters as JSON array'}, 'mcp_token': {'type': 'string', 'description': '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'}}}
Eingabeschema
{'type': 'object', 'required': ['chain', 'address'], 'properties': {'chain': {'type': 'string', 'description': 'Blockchain network'}, 'address': {'type': 'string', 'description': 'Token contract address'}, 'include_holders': {'type': 'string', 'description': 'Include top holders (true/false, default true)'}}}
Eingabeschema
{'type': 'object', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'description': 'End of creation time range (RFC3339, e.g. 2025-01-02T00:00:00Z)'}, 'chain': {'type': 'string', 'description': 'Optional chain filter; omit for all chains'}, 'limit': {'type': 'string', 'description': 'Max number of tokens (1-100, default 20)'}, 'start': {'type': 'string', 'description': 'Start of creation time range (RFC3339, e.g. 2025-01-01T00:00:00Z)'}}}
Eingabeschema
{'type': 'object', 'required': ['chain', 'address'], 'properties': {'lan': {'type': 'string', 'description': 'Language code (e.g. en, zh)'}, 'chain': {'type': 'string', 'description': 'Chain name. Supported: bsc, polygon, avalanche, arbitrum, optimism, base, fantom, linea, zksync, world, gatelayer, merlin, blast, eni, bera, solana, ton, sui, tron'}, 'ignore': {'type': 'string', 'description': 'Set to true to hide empty risk items'}, 'address': {'type': 'string', 'description': 'Token contract address'}}}
Eingabeschema
{'type': 'object', 'required': ['source_chain', 'source_address', 'chain'], 'properties': {'chain': {'type': 'string', 'description': 'Target chain identifier, e.g. bsc, arbitrum, polygon'}, 'search': {'type': 'string', 'description': 'Search keyword (token symbol or contract address) to filter results'}, 'wallet': {'type': 'string', 'description': 'User wallet address(es), comma-separated. Used to show balances and favorites.'}, 'account_id': {'type': 'string', 'description': 'User account ID. Only used when wallet is empty, to look up wallet addresses.'}, 'search_auth': {'type': 'boolean', 'description': 'When searching, only return certified tokens. Only effective when search is non-empty.'}, 'source_chain': {'type': 'string', 'description': 'Source chain identifier, e.g. eth, bsc, solana'}, 'source_address': {'type': 'string', 'description': 'Source token contract address on the source chain'}}}
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'tag': {'enum': ['', 'favorite', 'recommend'], 'type': 'string', 'description': "List type: empty for normal token list; 'favorite' for user favorites (requires wallet/account_id); 'recommend' for system recommended tokens."}, 'chain': {'type': 'string', 'description': 'Chain identifier, e.g. eth, bsc, solana, arbitrum. Omit to query all chains.'}, 'search': {'type': 'string', 'description': 'Search keyword (token symbol or contract address)'}, 'wallet': {'type': 'string', 'description': 'User wallet address(es), comma-separated. Used for favorites and balance display.'}, 'web3_key': {'type': 'string', 'description': 'Chain web3_key identifier. Only used when chain is empty, auto-maps to chain.'}, 'account_id': {'type': 'string', 'description': 'User account ID. Only used when wallet is empty.'}, 'search_auth': {'type': 'boolean', 'description': 'When searching, only return certified tokens. Only effective when search is non-empty.'}, 'ignore_bridge': {'type': 'boolean', 'description': 'Ignore cross-chain bridge restrictions, only filter by chain. Default false.'}}}
Eingabeschema
{'type': 'object', 'required': ['direction'], 'properties': {'chain': {'type': 'string', 'description': 'Optional chain filter'}, 'top_n': {'type': 'string', 'description': 'Number of tokens (1-100, default 10)'}, 'direction': {'type': 'string', 'description': "'desc' for top gainers, 'asc' for top losers"}}}
Eingabeschema
{'type': 'object', 'required': ['owner', 'spender', 'amount', 'token_decimals'], 'properties': {'chain': {'type': 'string', 'description': 'Chain name (default ETH). Based on backend chain configuration.'}, 'nonce': {'type': 'string', 'description': 'EVM: transaction nonce. Omit to auto-fetch current nonce.'}, 'owner': {'type': 'string', 'description': 'Owner address (your wallet address)'}, 'action': {'type': 'string', 'description': "Action type: 'approve' (default) or 'revoke' (revoke all approvals, Solana only)"}, 'amount': {'type': 'string', 'description': "Approval amount (human-readable). Set to '0' to revoke approval (EVM), set to 'unlimited' or 'max' for maximum allowance"}, 'spender': {'type': 'string', 'description': 'Spender address (EVM: spender contract address; Solana: delegate account address)'}, 'mcp_token': {'type': 'string', 'description': '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_mint': {'type': 'string', 'description': 'Solana: SPL Token mint address (required for Solana)'}, 'token_contract': {'type': 'string', 'description': 'EVM: ERC20 contract address (required for EVM)'}, 'token_decimals': {'type': 'string', 'description': 'Token decimals (e.g. 6, 18, 9)'}, 'max_fee_per_gas': {'type': 'string', 'description': 'EVM: override max fee per gas (wei)'}, 'max_priority_fee_per_gas': {'type': 'string', 'description': 'EVM: override max priority fee per gas (wei)'}, 'priority_fee_micro_lamports': {'type': 'string', 'description': 'Solana: priority fee (micro-lamports per compute unit)'}}}
Eingabeschema
{'type': 'object', 'required': ['hash_id'], 'properties': {'hash_id': {'type': 'string', 'description': 'Transaction hash ID'}, 'mcp_token': {'type': 'string', 'description': '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'}, 'from_wallet': {'type': 'string', 'description': 'Optional sender wallet address filter'}}}
Eingabeschema
{'type': 'object', 'required': ['chain', 'from', 'to'], 'properties': {'to': {'type': 'string', 'description': 'Recipient address'}, 'data': {'type': 'string', 'description': 'Transaction calldata (hex)'}, 'from': {'type': 'string', 'description': 'Sender address'}, 'chain': {'type': 'string', 'description': 'Chain name or alias; resolved via dex_chain_config before calling upstream.'}, 'value': {'type': 'string', 'description': 'Transfer value in wei'}, 'network': {'type': 'string', 'description': 'Network name'}, 'mcp_token': {'type': 'string', 'description': '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'}}}
Eingabeschema
{'type': 'object', 'required': ['from', 'to', 'amount'], 'properties': {'to': {'type': 'string', 'description': 'Recipient address (base58)'}, 'from': {'type': 'string', 'description': 'Sender address (base58)'}, 'amount': {'type': 'string', 'description': 'Amount in SOL, e.g. 0.0001'}, 'mcp_token': {'type': 'string', 'description': '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': {'type': 'string', 'description': 'Optional priority fee (micro-lamports per compute unit). Try 1000-10000 if broadcast returns replacement transaction underpriced.'}}}
Eingabeschema
{'type': 'object', 'required': ['account_id'], 'properties': {'cursor': {'type': 'string', 'description': 'Pagination cursor'}, 'address': {'type': 'string', 'description': 'Wallet address filter'}, 'end_time': {'type': 'string', 'description': 'End time (Unix seconds or ISO8601)'}, 'page_num': {'type': 'string', 'description': 'Page number (1-based)'}, 'mcp_token': {'type': 'string', 'description': '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_size': {'type': 'string', 'description': 'Page size (default 20)'}, 'account_id': {'type': 'string', 'description': 'Account ID'}, 'start_time': {'type': 'string', 'description': 'Start time (Unix seconds or ISO8601)'}}}
Eingabeschema
{'type': 'object', 'required': ['chain', 'signed_tx'], 'properties': {'memo': {'type': 'string', 'description': 'Memo (history_data.memo)'}, 'chain': {'type': 'string', 'description': 'Chain name: must match dex_chain_config response `chain` (canonical). Aliases are resolved via chain config before calling upstream.'}, 'nonce': {'type': 'number', 'description': 'Nonce (history_data.nonce)'}, 'address': {'type': 'string', 'description': 'Sender wallet address (history_data.address); optional when logged in — resolved from session wallet for the chain'}, 'network': {'type': 'string', 'description': 'Network name'}, 'mcp_token': {'type': 'string', 'description': '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'}, 'signed_tx': {'type': 'string', 'description': 'Signed transaction data. For EVM chains: hex string (0x prefix added automatically). For other chains (e.g. Solana): use chain-specific format'}, 'account_id': {'type': 'string', 'description': 'Account ID (for history_data); optional when logged in — resolved from session'}, 'token_addr': {'type': 'string', 'description': 'Token contract address (history_data.token_addr)'}, 'token_name': {'type': 'string', 'description': 'Token name (history_data.token_name)'}, 'trans_time': {'type': 'string', 'description': 'Transaction time ISO8601 (default: now)'}, 'trans_type': {'type': 'string', 'description': 'Transaction type (history_data.trans_type)'}, 'action_type': {'type': 'string', 'description': 'Action type (history_data.action_type)'}, 'trans_balance': {'type': 'string', 'description': 'Display amount (history_data.trans_balance)'}, 'trans_gas_fee': {'type': 'string', 'description': 'Gas fee display (history_data.trans_gas_fee)'}, 'token_short_name': {'type': 'string', 'description': 'Token symbol, e.g. USDT (history_data.token_short_name)'}, 'trans_balance_usd': {'type': 'string', 'description': 'USD value (history_data.trans_balance_usd)'}, 'trans_oppo_address': {'type': 'string', 'description': 'Counterparty address, e.g. recipient (history_data.trans_oppo_address)'}, 'trans_min_unit_amount': {'type': 'string', 'description': 'Amount in smallest unit (history_data.trans_min_unit_amount)'}, 'trans_min_unit_gas_fee': {'type': 'string', 'description': 'Gas fee in smallest unit (history_data.trans_min_unit_gas_fee)'}}}
Eingabeschema
{'type': 'object', 'required': ['swap_session_id', 'stage', 'mcp_token'], 'properties': {'stage': {'type': 'string', 'description': "Preview stage: 'approve' or 'swap'"}, 'mcp_token': {'type': 'string', 'description': '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 checks this argument first, then the HTTP Authorization header (Bearer mcp_pat_...) — often the same string configured as headers.Authorization on your MCP server in local MCP client config. If there is no token yet, run auth start + poll first. If expired, try dex_auth_refresh_token; if that fails, log in again.'}, 'swap_session_id': {'type': 'string', 'description': 'Swap session ID returned by dex_tx_swap_prepare'}}}
Eingabeschema
{'type': 'object', 'required': ['tx_order_id'], 'properties': {'mcp_token': {'type': 'string', 'description': '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': {'type': 'string', 'description': 'Transaction order ID from dex_tx_swap_submit'}}}
Eingabeschema
{'type': 'object', 'required': ['account_id'], 'properties': {'end_time': {'type': 'string', 'description': 'End time filter (ISO8601 format)'}, 'page_num': {'type': 'number', 'description': 'Page number (0-based, default 0)'}, 'dst_chain': {'type': 'number', 'description': 'Destination chain ID filter. 0 or omit for all chains'}, 'mcp_token': {'type': 'string', 'description': '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_size': {'type': 'number', 'description': 'Page size (default 20)'}, 'src_chain': {'type': 'number', 'description': 'Source chain ID filter (e.g. 1=ETH, 56=BSC). 0 or omit for all chains'}, 'account_id': {'type': 'string', 'description': 'Account ID (wallet address)'}, 'start_time': {'type': 'string', 'description': 'Start time filter (ISO8601 format, e.g. 2025-01-01T00:00:00Z)'}}}
Eingabeschema
{'type': 'object', 'required': ['chain_id_in', 'chain_id_out', 'token_in', 'token_out', 'amount', 'slippage', 'user_wallet', 'native_in', 'native_out', 'account_id'], 'properties': {'amount': {'type': 'string', 'description': "Human-readable amount (e.g. '0.01')"}, 'slippage': {'type': 'number', 'description': 'Slippage as decimal (0.01=1%, 0.1=10%)'}, 'token_in': {'type': 'string', 'description': "Source token address. Use '-' for native coin"}, 'mcp_token': {'type': 'string', 'description': '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': {'type': 'number', 'description': "⚠️ 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: ETH, BNB, MATIC, AVAX, SOL — these are the chain's gas coins, native_in=1. Contract tokens: USDT, USDC, WETH, WBNB, DAI, etc. — these are ERC20/BEP20/SPL tokens, native_in=0. NOTE: BNB = native coin (native=1), WBNB = wrapped contract token (native=0). User saying 'BNB' means the native coin unless they explicitly say 'WBNB'. Same for ETH vs WETH, SOL vs WSOL. When native_in=1, token_in is auto-normalized to '-'."}, 'to_wallet': {'type': 'string', 'description': '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. Omit for single-chain swaps — defaults to user_wallet.'}, 'token_out': {'type': 'string', 'description': 'Destination token address'}, 'account_id': {'type': 'string', 'description': 'User account ID (UUID)'}, 'native_out': {'type': 'number', 'description': "⚠️ 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: ETH, BNB, MATIC, AVAX, SOL — these are the chain's gas coins, native_out=1. Contract tokens: USDT, USDC, WETH, WBNB, DAI, etc. — these are ERC20/BEP20/SPL tokens, native_out=0. NOTE: BNB = native coin (native=1), WBNB = wrapped contract token (native=0). User saying 'BNB' means the native coin unless they explicitly say 'WBNB'. Same for ETH vs WETH, SOL vs WSOL. When native_out=1, token_out is auto-normalized to '-'. CROSS-CHAIN EXAMPLE: USDT(BSC) → SOL(Solana): native_in=0 (USDT is contract token), native_out=1 (SOL is native coin). CROSS-CHAIN EXAMPLE: ETH(Ethereum) → USDT(BSC): native_in=1 (ETH is native coin), native_out=0 (USDT is contract token)."}, 'chain_id_in': {'type': 'number', 'description': 'Source chain ID (e.g. 1=ETH, 56=BSC, 501=Solana)'}, 'user_wallet': {'type': 'string', 'description': '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 (chain_id=501). NEVER use an EVM address (0x...) for Solana or a Solana address for EVM chains. For cross-chain swaps this is the FROM (source) chain address.'}, 'chain_id_out': {'type': 'number', 'description': 'Destination chain ID. Same as chain_id_in for single-chain swap'}}}
Eingabeschema
{'type': 'object', 'required': ['chain_id_in', 'chain_id_out', 'token_in', 'token_out', 'amount', 'slippage', 'user_wallet', 'native_in', 'native_out'], 'properties': {'amount': {'type': 'string', 'description': '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.'}, 'slippage': {'type': 'number', 'description': '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. Default: 0.03 (3%).'}, 'token_in': {'type': 'string', 'description': '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 USDT). Obtain from user input, wallet token list (wallet_get_token_list), or known token mappings. If native_in=1, this field will be auto-set to "-".'}, 'mcp_token': {'type': 'string', 'description': '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': {'type': 'number', 'description': "⚠️ 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: ETH, BNB, MATIC, AVAX, SOL — these are the chain's gas coins, native_in=1. Contract tokens: USDT, USDC, WETH, WBNB, DAI, etc. — these are ERC20/BEP20/SPL tokens, native_in=0. NOTE: BNB = native coin (native=1), WBNB = wrapped contract token (native=0). User saying 'BNB' means the native coin unless they explicitly say 'WBNB'. Same for ETH vs WETH, SOL vs WSOL. When native_in=1, token_in is auto-normalized to '-'."}, 'to_wallet': {'type': 'string', 'description': '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_get_addresses: use addresses["SOL"] if dest is Solana, addresses["EVM"] if dest is EVM. Omit for single-chain swaps — defaults to user_wallet.'}, 'token_out': {'type': 'string', 'description': '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 native_out=1, this field will be auto-set to "-". For cross-chain swaps, use the token\'s contract address on the destination chain.'}, 'native_out': {'type': 'number', 'description': "⚠️ 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: ETH, BNB, MATIC, AVAX, SOL — these are the chain's gas coins, native_out=1. Contract tokens: USDT, USDC, WETH, WBNB, DAI, etc. — these are ERC20/BEP20/SPL tokens, native_out=0. NOTE: BNB = native coin (native=1), WBNB = wrapped contract token (native=0). User saying 'BNB' means the native coin unless they explicitly say 'WBNB'. Same for ETH vs WETH, SOL vs WSOL. When native_out=1, token_out is auto-normalized to '-'. CROSS-CHAIN EXAMPLE: USDT(BSC) → SOL(Solana): native_in=0 (USDT is contract token), native_out=1 (SOL is native coin). CROSS-CHAIN EXAMPLE: ETH(Ethereum) → USDT(BSC): native_in=1 (ETH is native coin), native_out=0 (USDT is contract token)."}, 'chain_id_in': {'type': 'number', 'description': '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, must equal chain_id_out.'}, 'user_wallet': {'type': 'string', 'description': '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/Polygon/Arbitrum/Base/Avalanche) or addresses["SOL"] for Solana (chain_id=501). NEVER pass an EVM address (0x...) for Solana transactions or vice versa. For cross-chain swaps this is the FROM (source) chain address.'}, 'chain_id_out': {'type': 'number', 'description': "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."}}}
Eingabeschema
{'type': 'object', 'required': ['swap_session_id', 'checkin_token'], 'properties': {'mcp_token': {'type': 'string', 'description': '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'}, 'checkin_token': {'type': 'string', 'description': "Approve-stage checkin_token returned by the local skill check-in script after dex_tx_swap_checkin_preview(stage='approve')"}, 'swap_session_id': {'type': 'string', 'description': 'Swap session ID returned by dex_tx_swap_prepare'}}}
Eingabeschema
{'type': 'object', 'required': ['swap_session_id', 'checkin_token'], 'properties': {'mcp_token': {'type': 'string', 'description': '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'}, 'checkin_token': {'type': 'string', 'description': "Swap-stage checkin_token returned by the local skill check-in script after dex_tx_swap_checkin_preview(stage='swap')"}, 'swap_session_id': {'type': 'string', 'description': 'Swap session ID returned by dex_tx_swap_prepare'}}}
Eingabeschema
{'type': 'object', 'required': ['swap_session_id'], 'properties': {'mcp_token': {'type': 'string', 'description': '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': {'type': 'string', 'description': 'Swap session ID returned by dex_tx_swap_prepare'}}}
Eingabeschema
{'type': 'object', 'required': ['from', 'to', 'amount'], 'properties': {'to': {'type': 'string', 'description': 'Recipient address'}, 'from': {'type': 'string', 'description': 'Sender (your wallet) address'}, 'chain': {'type': 'string', 'description': 'Chain name or alias (default ETH). Resolved to canonical name from chain config; downstream sign/broadcast should use the same logical chain.'}, 'nonce': {'type': 'string', 'description': '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.'}, 'token': {'type': 'string', 'description': 'Token symbol for display (default USDT). Use ETH/NATIVE for native; USDT for USDT; or use token_contract/token_mint for any token.'}, 'amount': {'type': 'string', 'description': "Amount in token units. Precision depends on token/decimals. Examples: '1', '0.5', '0.000001'"}, 'mcp_token': {'type': 'string', 'description': '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_mint': {'type': 'string', 'description': 'Solana: SPL token mint address for SPL transfer. When set, token_decimals is required. EVM: unused.'}, 'token_contract': {'type': 'string', 'description': 'EVM: ERC20 contract address for arbitrary token. When set, token_decimals is used (default 18). Solana: unused.'}, 'token_decimals': {'type': 'string', 'description': 'Token decimals (e.g. 6, 18). Required when using token_contract (EVM) or token_mint (Solana); default 18 for ERC20, 9 for SOL.'}, 'max_fee_per_gas': {'type': 'string', 'description': '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': {'type': 'string', 'description': 'EVM only: override max priority fee per gas (wei). When replacing, set ≥1.1× previous max_priority_fee_per_gas.'}, 'priority_fee_micro_lamports': {'type': 'string', 'description': 'Solana only: optional priority fee (micro-lamports per compute unit). Use 1000-10000 if broadcast returns replacement transaction underpriced.'}}}
Eingabeschema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Same URL as dex_tx_x402_fetch'}, 'body': {'type': 'string', 'description': 'Optional request body'}, 'method': {'type': 'string', 'description': 'HTTP method; default GET'}, 'headers': {'type': 'string', 'description': 'Optional JSON object of request headers'}, 'mcp_token': {'type': 'string', 'description': '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'}, 'x402_preferred_network': {'type': 'string', 'description': 'Same as dex_tx_x402_fetch'}, 'x402_payment_required_b64': {'type': 'string', 'description': 'Optional: PAYMENT-REQUIRED header base64; when omitted, one outbound request is made and must return 402'}}}
Eingabeschema
{'type': 'object', 'required': ['url', 'checkin_token'], 'properties': {'url': {'type': 'string', 'description': 'Request URL (CoinGecko x402: https://pro-api.coingecko.com/api/v3/x402/...)'}, 'body': {'type': 'string', 'description': 'Optional request body'}, 'method': {'type': 'string', 'description': 'HTTP method; default GET'}, 'headers': {'type': 'string', 'description': 'Optional JSON object of request headers'}, 'mcp_token': {'type': 'string', 'description': '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'}, 'checkin_token': {'type': 'string', 'description': '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.'}, 'x402_preferred_network': {'type': 'string', 'description': 'Optional: base, eth, solana, eip155:8453, ... — restrict which accept.network is used. CoinGecko Pro /x402/ defaults to base when omitted.'}, 'x402_payment_required_b64': {'type': 'string', 'description': '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).'}}}
Eingabeschema
{'type': 'object', 'required': ['gateUid'], 'properties': {'gateUid': {'type': 'string', 'description': 'Must equal login_result.gate_uid from Gate OAuth that created this session'}, 'mcp_token': {'type': 'string', 'description': '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'}}}
Eingabeschema
{'type': 'object', 'required': ['account_id'], 'properties': {'mcp_token': {'type': 'string', 'description': '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'}, 'account_id': {'type': 'string', 'description': 'Account ID'}}}
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'mcp_token': {'type': 'string', 'description': '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'}}}
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'page': {'type': 'number', 'description': 'Page number, default 1'}, 'mcp_token': {'type': 'string', 'description': '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_size': {'type': 'number', 'description': 'Page size, default 20'}, 'account_id': {'type': 'string', 'description': 'Account ID (optional, auto-detected from login session)'}, 'network_keys': {'type': 'string', 'description': '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.'}}}
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'mcp_token': {'type': 'string', 'description': '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'}, 'account_id': {'type': 'string', 'description': 'Account ID (optional, auto-detected from login session)'}}}
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'mcp_token': {'type': 'string', 'description': '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'}, 'account_id': {'type': 'string', 'description': 'Account ID; used with session to resolve EVM address if wallet_address omitted'}, 'wallet_address': {'type': 'string', 'description': 'EVM wallet address to classify'}, 'for_gate_oauth_bind': {'type': 'boolean', 'description': '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': {'type': 'boolean', 'description': 'Withdraw-to-exchange: when gateUid is missing, start Gate device OAuth (Google: link binding)'}}}
Eingabeschema
{'type': 'object', 'required': [], 'properties': {'mcp_token': {'type': 'string', 'description': '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'}}}
Eingabeschema
{'type': 'object', 'required': ['newUid'], 'properties': {'newUid': {'type': 'string', 'description': 'Must equal login_result.gate_uid from latest Gate OAuth (stamped on session)'}, 'mcp_token': {'type': 'string', 'description': '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'}}}
Eingabeschema
{'type': 'object', 'required': ['message', 'chain', 'checkin_token'], 'properties': {'chain': {'type': 'string', 'description': '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 chain "EVM" or lowercase "sol" for Solana.'}, 'message': {'type': 'string', 'description': 'Message to sign (hex)'}, 'mcp_token': {'type': 'string', 'description': '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'}, 'checkin_token': {'type': 'string', 'description': 'From successful tx-checkin response: the checkin_token string (terminal CLI stdout JSON). Must match the signing intent in the same flow.'}}}
Eingabeschema
{'type': 'object', 'required': ['raw_tx', 'chain', 'checkin_token'], 'properties': {'chain': {'type': 'string', 'description': 'Chain name: must match dex_chain_config response `chain` (canonical). Aliases are resolved via chain config.'}, 'raw_tx': {'type': 'string', 'description': 'Raw transaction data'}, 'mcp_token': {'type': 'string', 'description': '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'}, 'checkin_token': {'type': 'string', 'description': 'From successful tx-checkin response: the checkin_token string (terminal CLI stdout JSON). Must match the signing intent in the same flow.'}}}
Eingabeschema
{'type': 'object', 'required': ['chain_name', 'coin_symbol', 'amount'], 'properties': {'amount': {'type': 'string', 'description': 'Required. Human-readable amount (same units as on-chain transfer); must be ≥ exchange min_deposit_amount'}, 'mcp_token': {'type': 'string', 'description': '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'}, 'chain_name': {'type': 'string', 'description': 'Chain name, e.g. BSC, ETH'}, 'coin_symbol': {'type': 'string', 'description': 'Coin symbol, e.g. USDT'}, 'token_address': {'type': 'string', 'description': 'Optional. ERC20 contract for gate-deposit; empty for native. If omitted, USDT is resolved from chain_name; other symbols may require this field'}}}
Letzte Tool-Änderungen
Ähnliche MCP-Server
FortFi Treasury MCP
Provides policy-controlled crypto treasury operations across chains, including wallets, payments, token discovery, swaps, bridges…
Tokenbooks - crypto and fiat accounting and payments
Maintains double-entry accounting for crypto and fiat portfolios, including wallet synchronization, transaction classification, c…
xrploracle
Provides XRPL intelligence for payments, accounts, DEX and AMM liquidity, escrows, NFTs, validators, issued-token compliance, and…
Liquid Agent
Provides USDC bridge quotes and tracking, cross-chain balance checks, gas sponsorship information, tokenized stock portfolio oper…
Inferventis MCP Server
Provides financial calculations, stock and cryptocurrency prices, currency conversion, banking transactions, and Stripe payment d…
Bity
Connects to Bity accounts for cryptocurrency and fiat balances, market tickers, order books, trades, open orders, executed orders…
wallet
Provides account balances, stock-token prices and quotes, USDG trade information, and on-chain payment settlement records.
SAP MCP Server
Provides an MCP gateway connecting SAP-related tools with Solana, DeFi, decentralized identity, and x402 payments.