Because the same tools run against the testnet or the live exchange depending on one variable, a strategy or an assistant's behaviour can be exercised end to end — orders placed, checked, cancelled — before any of it touches real money. Two things worth setting up deliberately: cancel_all_orders clears every open order on the symbol with no confirmation step, and the Binance API key's own permissions are the real safety boundary, so a read-only key is the right choice for anything that should only be looking.
A Binance exchange server covering market data, account state and order placement. One environment variable decides whether it talks to the testnet or to the live exchange with real funds.
- get_price for a symbol's current price, and get_24hr_ticker for its 24-hour change statistics
- get_orderbook returns depth to the limit you set, and get_klines returns candles at an interval and length
- get_account_info returns account details and balances
- get_open_orders lists what is currently working, and get_order_history returns past orders for a symbol
- place_order supports order types with side, quantity and price; the tool itself notes that on mainnet this uses real funds
- cancel_order removes one order by id, and cancel_all_orders clears every open order on a symbol
- Both live and testnet endpoints, chosen at startup rather than per call
A Binance account with API credentials: BINANCE_API_KEY and BINANCE_API_SECRET. BINANCE_TESTNET="true" points everything at the testnet — set to "false", orders are real. It runs as npx binance-mcp-server, or from a global npm install. What the key is permitted to do at Binance bounds the tools: a read-only key leaves market data and account reads working and orders failing. Documentation is available in English, Chinese and Japanese.
One command plus a key — npm install -g binance-mcp-server, then supply credentials
