The four analysis tools are what separate this from a plain exchange wrapper: win rate, consecutive wins and losses, and returns split by day and month come back as computed metrics for a named account and period, so a review does not start with exporting a CSV. Named accounts are the other design choice worth noting — credentials live in configuration, calls carry only the account name, and a spot and a swap account on the same exchange stay distinct.
A CCXT-backed server with accounts as first-class objects. Market data tools take an exchange id; anything touching money takes an accountName that maps to credentials you configured once, so keys never appear in a call.
- Market data by exchange id: fetchMarkets, fetchTicker, fetchTickers, fetchOrderBook, fetchTrades and fetchOHLCV with timeframe, since and limit
- listAccounts shows the configured account names, so an assistant can see what it is allowed to act on before acting
- createOrder takes type, side, amount, price and exchange-specific params; cancelOrder, fetchOrder, fetchOpenOrders and fetchClosedOrders cover the rest of the order lifecycle
- fetchBalance, fetchMyTrades, fetchDeposits and fetchWithdrawals read the account's own history
- analyzeTradingPerformance summarises how an account has done over a period, optionally for one symbol
- calculateWinRate returns win rate and profit metrics rather than a raw trade list
- analyzeConsecutiveProfitLoss reports winning and losing streaks — the shape of a drawdown, not just its size
- analyzePeriodicReturns breaks returns down by day and by month over the interval you choose
- Several accounts on the same exchange, distinguished by defaultType — a spot account and a swap account can both be configured and named separately
Nothing for market data. Trading and analysis need an accounts array — each entry a name, exchangeId, apiKey, secret and defaultType such as spot or swap — either inside the client's own MCP configuration or in a separate JSON file passed with --config, where accounts must sit at the root. It runs as npx @lazydino/ccxt-mcp, or as ccxt-mcp after a global install. Running it in HTTP+SSE mode with --sse requires mcpBearerToken in the same config file, and clients must then send it as an Authorization: Bearer header. MIT.
One command plus a key — npx -y @lazydino/ccxt-mcp, then supply credentials
