dex_agentic_report
Register agentic wallet addresses with the wallet service.
walletsrequiredmcp_token
io.github.gateio-devPublished by GitHub account gateio-devv1.0.0Updated Oct 29, 2026
Gate DEX MCP for wallet auth, transfers, swaps, token info, market data, and RPC access.
Gate DEX MCP lets an assistant manage an on-chain wallet, quote and execute swaps and transfers, and read token and market data across many chains.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.gateio-dev%2Fgate-dex/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"gate-dex": {
"type": "http",
"url": "https://api.gatemcp.ai/mcp/dex"
}
}
}A Gate MCP (Model Context Protocol) server that enables AI agents to interact with the Gate cryptocurrency exchange for market data, trading, and account management.
The service exposes the following MCP endpoints:
/mcp (no Gate account needed)/mcp/exchange (Gate OAuth2 required)/mcp/dex (Google / Gate OAuth required)/mcp/info (no auth)/mcp/open/info (7-tool allowlist; no auth)/mcp/news (no auth)/mcp/docs (no auth)Transport: Streamable HTTP (with SSE fallback).
/mcp/exchange requires Gate OAuth2; /mcp/dex requires Google or Gate OAuth. The endpoints /mcp, /mcp/info, /mcp/open/info, /mcp/news, and /mcp/docs do not require any authentication.
Prerequisites: Node.js >= 18, npm. See Quick Start - mcporter for full installation steps.
/mcp/exchange)Requirements for base, spot_trade, futures_trade, earn, cfd, stock depend on the tool and account type. In ordinary matching, base includes read and asset and is not read-only. Ordinary tokens retain per-tool OR compatibility with legacy scopes; Agentic accounts have separate read/write overrides and denied operations. mcp:tools does not replace a business scope.
See the per-tool permissions and authorization/PKCE resource reference. The connected endpoint's tools/list determines visibility; default scope advertisement does not establish application choices in every environment.
/mcp/exchange)Just paste the following into the Cursor AI chat — the agent will auto-install all Gate MCP servers and Skills:
Help me auto install Gate Skills and MCPs: https://github.com/gate/gate-skills
See gate-skills for details.
For full trading (OAuth on connect):
Edit ~/.cursor/mcp.json:
For market data only (no auth):
For DEX (on-chain wallet, swap):
For Info & News (no auth):
See Cursor setup.
Just paste the following into the OpenClaw AI chat — the agent will auto-install all Gate MCP servers and Skills:
Help me auto install Gate Skills and MCPs: https://github.com/gate/gate-skills
See gate-skills for details.
node -v and npm -v/mcp/exchange)Alternatively, run without installing: npx mcporter <command> (uses current Node.js/npm).
See OpenClaw setup for detailed steps.
Just paste the following into Claude CLI — the agent will auto-install all Gate MCP servers and Skills:
Help me auto install Gate Skills and MCPs: https://github.com/gate/gate-skills
See gate-skills for details.
Edit Trae settings. Uses mcp-remote to proxy HTTP MCP (OAuth prompt on first connect for /mcp/exchange):
Edit Qoder MCP settings (e.g. ~/.qoder/mcp.json or in Qoder settings):
Claude Desktop supports remote custom connectors; a local proxy is not mandatory. Connect to https://api.gatemcp.ai/mcp for public data or use https://api.gatemcp.ai/mcp/exchange with Gate OAuth2 for authorized private tools.
The repository's Python stdio proxy is an optional public-data compatibility path, without OAuth or SSE parsing. See Claude Desktop setup.
For local development without OAuth, use gate-local-mcp (npm: gate-mcp) — a stdio MCP server that uses GATE_API_KEY / GATE_API_SECRET (optional for public market data only). Configure it as a command-based MCP server (e.g. "command": "npx", "args": ["-y", "gate-mcp"]). By default it registers 384 tools across 22 modules (spot, futures, delivery, margin, wallet, account, options, earn, flash_swap, unified, sub_account, multi_collateral_loan, p2p, tradfi, crossex, alpha, rebate, activity, coupon, launch, square, welfare). Reduce the set with GATE_MODULES or --modules=spot,futures, or enable read-only mode with GATE_READONLY=true / --readonly.
Important: Wire-level tool names use abbreviations (futures→fx, delivery→dc, sub_account→sa, etc.); they differ from the remote api.gatemcp.ai naming. Always use the names returned by tools/list.
Full tool list: gate-local-mcp-tools.md.
On the LobeHub MCP marketplace this server appears as identifier gate-gate-mcp. The npm package name is gate-mcp — run npx -y gate-mcp, not gate-gate-mcp.
Per LobeHub custom MCP, stdio servers work on the desktop app only; inject environment variables for Gate API authentication. Use Import JSON when adding a custom skill.
Public endpoints only:
With API key authentication:
You can add GATE_MODULES, GATE_READONLY, or GATE_BASE_URL inside env as needed. Click Test connection before saving.
Query Price
What's the current price of BTC/USDT?
Get Order Book
Show me the order book for ETH/USDT
K-line Data
Get the daily K-line data for BTC over the last 7 days
All tools use the cex_ prefix. Tools are split between Public MCP (no auth) and Private MCP (OAuth2).
/mcp — no OAuth, 83 tools)Inventory reference: service version v1.16.7, checked on 2026-11-04. The public name set was checked against the live directory on that date. Counts below separate the two endpoints; private does not include public tools.
/mcp/exchange — OAuth2, source ceiling 310 tools)Token permissions, account type and operational policies determine visibility; not every user sees 310 tools. Remote sub-account/API-key administration, CrossEx, P2P, activity, coupon, welfare and Launch products are retired. Wallet-level sub-account balances/transfers remain separate from retired administration.
See the remote tool catalogue for names/permissions and CEX reference for inputs, examples, Trail responses and errors.
For full DEX tool parameters, see gate-dex-mcp. For the Agentic Wallet subset (auth, wallet, market data, resources), see gate-agentic-wallet-mcp.
/mcp/info — 32 tools, no auth)Public, read-only market research. Categories (full parameter tables: gate-info-mcp):
/mcp/open/info — 7 tools, no auth)ChatGPT / OpenAI Apps submission allowlist only. Full parameter tables: gate-open-info-mcp.
/mcp/news — 18 tools, no auth)Public, read-only news and social research. Categories (full parameter tables: gate-news-mcp):
The /mcp and /mcp/exchange endpoints also expose MCP Resources for static reference data:
A: Only for CEX trading and DEX wallet. /mcp, /mcp/info, /mcp/open/info, /mcp/news, and /mcp/docs are fully public — no account needed. /mcp/exchange (CEX trading, balances, transfers) requires Gate OAuth2. /mcp/dex (on-chain wallet, swap) requires Google or Gate OAuth.
A: Yes. Connect to /mcp/exchange with Gate OAuth2 for authorized spot, futures, CFD, stock, Earn and strategy operations. Connect separately to /mcp for public data. Sub-account administration is retired; wallet-level sub-account balances/transfers have their own permissions.
A: Data is queried in real-time from Gate's API.
Report documentation issues through this repository's Issues.
MIT © gate.com
Source: README.md at commit 4cb7acf
Register agentic wallet addresses with the wallet service.
walletsrequiredmcp_tokenPoll 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.
flow_idrequiredpoll_secretrequiredauto_replace_bindingStart 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.
link_mcp_tokenPoll 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.
flow_idrequiredpoll_secretrequiredStarts 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.
Takes no parameters.
Exchange Gate OAuth code for MCP token. [write] On success, immediately replace any stored mcp_token — new token is tied to a different account.
coderequiredredirect_urlrequiredExchange Google OAuth code for MCP token. [write] On success, immediately replace any stored mcp_token — new token is tied to a different account.
coderequiredredirect_urlrequiredRevoke the MCP session identified by mcp_token.
mcp_tokenrequiredReturns chain config (networkKey, accountKey, chainID). Use the returned chain value in all subsequent transfer/sign/broadcast tools.
chainrequiredmcp_tokenOHLCV candles by period and window. Volume aggregates→get_tx_stats. Pool events→get_pair_liquidity.
chainrequiredlimitperiodrequiredend_timestart_timepair_addresstoken_addressrequiredAMM pool deposit and withdrawal events. Candlesticks→get_kline. Volume stats→get_tx_stats.
chainrequiredpage_sizepage_indexpair_addresstoken_addressrequiredPer-interval buy/sell volume and tx counts (5m–24h). Candlesticks→get_kline. Pool events→get_pair_liquidity.
chainrequiredpair_addresstoken_addressrequiredProxy a JSON-RPC call to a blockchain node.
chainrequiredmethodrequiredparamsmcp_tokenPrice, market snapshot, metadata, optional top holders. Security audit→get_risk_info.
chainrequiredaddressrequiredinclude_holdersTokens launched within a given time window; chain optional for all networks.
endrequiredchainlimitstartrequiredContract security audit (honeypot, tax, ownership flags). Price and market stats→get_coin_info.
lanchainrequiredignoreaddressrequiredReceivable assets on target chain for a source token. Same-chain trading→list_swap_tokens.
chainrequiredsearchwalletaccount_idsearch_authsource_chainrequiredsource_addressrequiredTradable assets on a chain; tag selects favorites or recommendations. Bridge targets→list_cross_chain_bridge_tokens.
tagchainsearchwalletweb3_keyaccount_idsearch_authignore_bridgeTop movers by 24h price change; direction selects gainers vs losers. Single token→get_coin_info.
chaintop_ndirectionrequiredBuild ERC20/SPL approve or revoke tx (does not broadcast). Sign with dex_wallet_sign_transaction after user confirmation.
chainnonceownerrequiredactionamountrequiredspenderrequiredmcp_tokentoken_minttoken_contracttoken_decimalsrequiredmax_fee_per_gasmax_priority_fee_per_gas+1 moreFetch transaction detail by on-chain hash. → swap_detail for swap order detail by order ID.
hash_idrequiredmcp_tokenfrom_walletEstimate on-chain gas price and gas limit for a given tx.
torequireddatafromrequiredchainrequiredvaluenetworkmcp_tokenSolana 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.
torequiredfromrequiredamountrequiredmcp_tokenpriority_fee_micro_lamportsList wallet transaction history (transfers). → swap_history_list for swap/bridge orders. → tx_detail for single tx by hash.
cursoraddressend_timepage_nummcp_tokenpage_sizeaccount_idrequiredstart_timeBroadcast 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.
memochainrequirednonceaddressnetworkmcp_tokensigned_txrequiredaccount_idtoken_addrtoken_nametrans_timetrans_type+9 moreReturns check-in fields for a swap stage (approve or swap). Call after prepare and before terminal tx-checkin script.
stagerequiredmcp_tokenrequiredswap_session_idrequiredFetch swap order detail by order ID from swap_submit. → tx_detail for detail by on-chain hash.
mcp_tokentx_order_idrequiredList swap/bridge order history with pagination; includes single-chain and cross-chain. → tx_list for transfer history.
end_timepage_numdst_chainmcp_tokenpage_sizesrc_chainaccount_idrequiredstart_timeStage a swap session (server-side build only); returns swap_session_id. Does not sign or submit. Call after quote confirmed by user.
amountrequiredslippagerequiredtoken_inrequiredmcp_tokennative_inrequiredto_wallettoken_outrequiredaccount_idrequirednative_outrequiredchain_id_inrequireduser_walletrequiredchain_id_outrequiredReturns swap route and pricing. Call before swap_prepare; show result to user before proceeding. → transfer_preview for direct token send (not exchange).
amountrequiredslippagerequiredtoken_inrequiredmcp_tokennative_inrequiredto_wallettoken_outrequirednative_outrequiredchain_id_inrequireduser_walletrequiredchain_id_outrequired[write] Sign the ERC20 approve tx for a staged EVM swap. Requires need_approved=true in prepare result.
mcp_tokencheckin_tokenrequiredswap_session_idrequired[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.
mcp_tokencheckin_tokenrequiredswap_session_idrequired[write] Broadcast a staged swap to the chain. Does not sign. Requires all signing steps complete (sign_approve if EVM+approval, then sign_swap).
mcp_tokenswap_session_idrequiredBuild 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.
torequiredfromrequiredchainnoncetokenamountrequiredmcp_tokentoken_minttoken_contracttoken_decimalsmax_fee_per_gasmax_priority_fee_per_gas+1 morePrepare 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.
urlrequiredbodymethodheadersmcp_tokenx402_preferred_networkx402_payment_required_b64[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.
urlrequiredbodymethodheadersmcp_tokencheckin_tokenrequiredx402_preferred_networkx402_payment_required_b64Bind Gate exchange UID to session. Standalone Gate session only; gateUid must equal login_result.gate_uid from Gate OAuth. → replace_binding to rebind.
gateUidrequiredmcp_tokenReturns address map by chain type (EVM, SOL, etc.). Call before transfer/swap tools to get the sender address.
mcp_tokenaccount_idrequiredReturns current Gate UID binding for the session wallet.
mcp_tokenToken balances and prices with pagination; filter by network_keys. → get_total_asset for portfolio summary only.
pagemcp_tokenpage_sizeaccount_idnetwork_keysTotal portfolio value and 24h change. → get_token_list for per-token balance detail.
mcp_tokenaccount_idReturns walletAddress, walletType, gateUid. With for_withdraw_to_exchange or for_gate_oauth_bind, also starts Gate OAuth when gateUid is missing.
mcp_tokenaccount_idwallet_addressfor_gate_oauth_bindfor_withdraw_to_exchangeGoogle sessions only: starts Gate OAuth to bind Gate exchange UID to this session. mcp_token stays unchanged after poll.
mcp_tokenRebind 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.
newUidrequiredmcp_tokenSign a 32-byte hex message with wallet key. [write] Requires checkin_token from terminal tx-checkin. → sign_transaction for raw tx signing.
chainrequiredmessagerequiredmcp_tokencheckin_tokenrequiredSign 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.
chainrequiredraw_txrequiredmcp_tokencheckin_tokenrequiredFetch 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.
amountrequiredmcp_tokenchain_namerequiredcoin_symbolrequiredtoken_address100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
# Add Private MCP (trading, requires OAuth)mcporter config add gate-mcp --url https://api.gatemcp.ai/mcp/exchange --auth oauth
# Authorize (opens browser to log in)mcporter auth gate-mcp{ "mcpServers": { "Gate": { "url": "https://api.gatemcp.ai/mcp/exchange", "transport": "streamable-http", "headers": { "Content-Type": "application/json", "Accept": "application/json, text/event-stream" } } }}{ "mcpServers": { "Gate": { "url": "https://api.gatemcp.ai/mcp", "transport": "streamable-http", "headers": { "Content-Type": "application/json", "Accept": "application/json, text/event-stream" } } }}{ "mcpServers": { "Gate-Dex": { "url": "https://api.gatemcp.ai/mcp/dex", "headers": { "x-api-key": "MCP_AK_8W2N7Q", "Authorization": "Bearer ${GATE_MCP_TOKEN}" } } }}{ "mcpServers": { "Gate-Info": { "url": "https://api.gatemcp.ai/mcp/info" }, "Gate-News": { "url": "https://api.gatemcp.ai/mcp/news" } }}# Global installnpm install -g mcporter
# Verify installationmcporter --version# Add Private MCP (trading, OAuth)mcporter config add gate-mcp --url https://api.gatemcp.ai/mcp/exchange --auth oauth
# Authorize (opens browser to log in)mcporter auth gate-mcp
# Add DEX MCPmcporter config add gate-dex --url https://api.gatemcp.ai/mcp/dex
# Add Info MCP (no auth)mcporter config add gate-info --url https://api.gatemcp.ai/mcp/info
# Add News MCP (no auth)mcporter config add gate-news --url https://api.gatemcp.ai/mcp/newsbrew install claude-code# Full trading (OAuth)claude mcp add --transport http Gate https://api.gatemcp.ai/mcp/exchange# Restart Claude CLI after authorization is complete
# Info (no auth)claude mcp add --transport http Gate-Info https://api.gatemcp.ai/mcp/info
# News (no auth)claude mcp add --transport http Gate-News https://api.gatemcp.ai/mcp/news
claude mcp list{ "mcpServers": { "gate": { "command": "npx", "args": [ "-y", "mcp-remote@latest", "https://api.gatemcp.ai/mcp/exchange" ] }, "gate-info": { "command": "npx", "args": [ "-y", "mcp-remote@latest", "https://api.gatemcp.ai/mcp/info" ] }, "gate-news": { "command": "npx", "args": [ "-y", "mcp-remote@latest", "https://api.gatemcp.ai/mcp/news" ] } }}{ "mcpServers": { "gate": { "command": "npx", "args": [ "-y", "mcp-remote@latest", "https://api.gatemcp.ai/mcp/exchange" ] }, "gate-info": { "command": "npx", "args": [ "-y", "mcp-remote@latest", "https://api.gatemcp.ai/mcp/info" ] }, "gate-news": { "command": "npx", "args": [ "-y", "mcp-remote@latest", "https://api.gatemcp.ai/mcp/news" ] } }}{ "mcpServers": { "gate-mcp": { "command": "npx", "args": ["-y", "gate-mcp"], "type": "stdio" } }}{ "mcpServers": { "gate-mcp": { "command": "npx", "args": ["-y", "gate-mcp"], "type": "stdio", "env": { "GATE_API_KEY": "your-api-key", "GATE_API_SECRET": "your-api-secret" } } }}