Phemex Trading
Trade on Phemex via the phemex-cli tool. Supports USDT-M futures, Coin-M futures, and Spot markets.
Before you start
Ensure you have the latest version installed:
npm install -g phemex-trade-mcp@latest
How to call tools
phemex-cli <tool_name> --param1 value1 --param2 value2
Or with JSON args:
phemex-cli <tool_name> '{"param1":"value1","param2":"value2"}'
Output is always JSON. Environment variables PHEMEX_API_KEY, PHEMEX_API_SECRET, and PHEMEX_API_URL are read automatically.
Contract types
Every tool accepts an optional --contractType flag:
linear(default) — USDT-M perpetual futures. Symbols end in USDT (e.g. BTCUSDT).inverse— Coin-M perpetual futures. Symbols end in USD (e.g. BTCUSD).spot— Spot trading. Symbols end in USDT (e.g. BTCUSDT). The server auto-prefixessfor the API.
Tools
Market data (no auth needed)
get_ticker— 24hr price ticker. Example:phemex-cli get_ticker --symbol BTCUSDTget_orderbook— Order book (30 levels). Example:phemex-cli get_orderbook --symbol BTCUSDTget_klines— Candlestick data. Example:phemex-cli get_klines --symbol BTCUSDT --resolution 3600 --limit 100get_recent_trades— Recent trades. Example:phemex-cli get_recent_trades --symbol BTCUSDTget_funding_rate— Funding rate history. Example:phemex-cli get_funding_rate --symbol .BTCFR8H --limit 20
Account (read-only, auth required)
get_account— Balance and margin info. Example:phemex-cli get_account --currency USDTget_spot_wallet— Spot wallet balances. Example:phemex-cli get_spot_walletget_positions— Current positions with PnL. Example:phemex-cli get_positions --currency USDTget_open_orders— Open orders. Example:phemex-cli get_open_orders --symbol BTCUSDTget_order_history— Closed/filled orders. Example:phemex-cli get_order_history --symbol BTCUSDT --limit 50get_trades— Trade execution history. Example:phemex-cli get_trades --symbol BTCUSDT --limit 50
Trading (auth required)
place_order— Place an order (Market, Limit, Stop, StopLimit). Key params:--symbol,--side(Buy/Sell),--orderQty,--ordType,--price(Limit/StopLimit),--stopPx(Stop/StopLimit),--timeInForce(GoodTillCancel/PostOnly/ImmediateOrCancel/FillOrKill),--reduceOnly,--posSide(Long/Short/Merged),--stopLoss,--takeProfit,--qtyType(spot only). orderQty units differ by contract type:linear(USDT-M): orderQty = base currency amount (e.g.0.01= 0.01 BTC). To buy 10 USDT worth, calculate qty = 10 / current price.inverse(Coin-M): orderQty = number of contracts as integer (e.g.10= 10 contracts). Each contract has a fixed USD value (e.g. 1 USD/contract for BTCUSD).spot: depends on--qtyType.ByBase(default) = base currency (e.g.0.01= 0.01 BTC).ByQuote= quote currency (e.g.50= 50 USDT worth of BTC).- Example:
phemex-cli place_order --symbol BTCUSDT --side Buy --orderQty 0.01 --ordType Market
amend_order— Modify an open order. Example:phemex-cli amend_order --symbol BTCUSDT --orderID xxx --price 95000cancel_order— Cancel one order. Example:phemex-cli cancel_order --symbol BTCUSDT --orderID xxxcancel_all_orders— Cancel all orders for a symbol. Example:phemex-cli cancel_all_orders --symbol BTCUSDTset_leverage— Set leverage. Example:phemex-cli set_leverage --symbol BTCUSDT --leverage 10switch_pos_mode— Switch OneWay/Hedged. Example:phemex-cli switch_pos_mode --symbol BTCUSDT --targetPosMode OneWay
Transfers (auth required)
transfer_funds— Move funds between spot and futures. Example:phemex-cli transfer_funds --currency USDT --amount 100 --direction spot_to_futuresget_transfer_history— Transfer history. Example:phemex-cli get_transfer_history --currency USDT --limit 20
Safety rules
- Always confirm before placing orders. Before calling
place_order, show the user exactly what the order will do: symbol, side, quantity, type, price. Ask for confirmation. - Always confirm before cancelling all orders. Before calling
cancel_all_orders, list the open orders first and confirm with the user. - Explain leverage changes. Before calling
set_leverage, explain the implications (higher leverage = higher liquidation risk). - Show context before trading. Before suggesting a trade, show current positions and account balance so the user can make an informed decision.
- Never auto-trade. Do not place orders without explicit user instruction.
Common workflows
Check a price
phemex-cli get_ticker --symbol BTCUSDT
Place a market buy (USDT-M futures)
phemex-cli place_order --symbol BTCUSDT --side Buy --orderQty 0.01 --ordType Market
Place a limit sell (Coin-M futures)
phemex-cli place_order --symbol BTCUSD --side Sell --orderQty 10 --ordType Limit --price 100000 --contractType inverse
Buy spot
phemex-cli place_order --symbol BTCUSDT --side Buy --orderQty 10 --ordType Market --contractType spot --qtyType ByQuote
Check positions
phemex-cli get_positions --currency USDT
Setup
- Create a Phemex account at https://phemex.com
- Create an API key (Account → API Management)
- Set environment variables
PHEMEX_API_KEYandPHEMEX_API_SECRET - Optionally set
PHEMEX_API_URL(defaults to testnethttps://testnet-api.phemex.comfor safety; set tohttps://api.phemex.comfor real trading) - Optionally set
PHEMEX_MAX_ORDER_VALUEto limit maximum order size (USD)