MCP server for Binance: read market data, analyze, and propose real-money spot trades behind a human-gated confirmer — plus an offline USD-M futures research engine. The model never holds a trade key.
Server has 25 tools with mostly complete schemas and descriptions. Naming follows verb_noun pattern consistently (binance_get_*, binance_propose_*, binance_backtest_*). Descriptions range 50-400 chars, meeting baseline. However, several critical gaps: (1) Tool descriptions lack WHEN/WHY guidance for agent selection, they state WHAT but not decision context. (2) Parameter descriptions are minimal; many lack format/range constraints (e.g., 'symbol' accepts any string, no validation hint). (3) Output schemas are not documented in tool definitions, LLMs cannot plan downstream calls. (4) Error handling is absent from descriptions; no guidance on retryability or recovery. (5) Security-sensitive tools (binance_propose_order, binance_cancel_order) lack permission/confirmation patterns despite WRITE/REVERSIBLE risk labels.
Deep analysis of a single asset: technicals, fundamentals, sentiment, risk.
Light NO-LOOKAHEAD backtest of a simple rule (ema_cross/rsi_threshold).
Backtest a Dollar-Cost Averaging (DCA) plan over historical data.
Backtest a harvest/rebalancing strategy over historical data.
Backtest the composite signal strategy over historical data.
Cancel an open order by symbol and order ID.
Output schemas not documented in tool definitions. LLMs cannot infer what fields to expect from responses, preventing downstream tool chaining and forcing exploratory calls.
Parameter descriptions lack format/range constraints. 'symbol' accepts any string with no hint of valid format (e.g., 'BTCUSDT'). 'limit' has no min/max guidance. LLMs cannot validate inputs before calling.
Tool descriptions lack WHEN/WHY context for agent selection. 'binance_get_sentiment' states 'RAW aggregated sentiment' but does not explain when to call it vs binance_get_news or binance_generate_signal. Ambiguous selection leads to wrong tool choice.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
RSI/MACD/EMA/Bollinger/ATR over the klines (float values, candle-aligned). Returns only the newest `last_n` values of each series (default 1 = current value only) to keep context small; raise `last_n` to see the recent trend. `limit` still controls how many candles feed the computation.
DCA planning tool: simulate accumulation schedules, compare strategies.
Transparent composite signal for a pair: direction + score + per-factor rationale + ATR risk levels. PROPOSES, never executes; every factor exposes its contribution. Note: our own out-of-sample walk-forward found NO robust edge (docs/research/) — treat signals as context, not as financial advice.
Account info (canTrade, commissions; key permissions on mainnet only).
Spot balances with non-zero amounts (free/locked).
USD-M futures snapshot: open interest, funding rates, liquidations (research engine, offline).
OHLCV candles for a pair/interval (Decimal values). limit <= 1000. `last_n` returns only the newest N candles (keeps context small); None = all fetched. `limit` still controls how many candles are fetched.
Market structure: top pairs by volume, liquidity tiers, volatility regimes.
Crypto news from RSS feeds (CoinDesk, crypto.news), filterable by asset/source.
Open orders (all, or for one symbol).
Order history for a symbol (limit 1-1000).
Current price for a symbol (e.g. BTCUSDT).
RAW aggregated sentiment for an asset over a window (lexicon-based, NOT a prediction).
Rolling 24h stats (change %, high/low, volume, last price).
Market-wide briefing: top movers, volatility, sentiment, macro context.
Comprehensive portfolio analysis: holdings, allocation, performance, risk metrics.
Propose a spot order (BUY/SELL LIMIT/MARKET). Does NOT execute; sends to confirmer for human approval.
Risk assessment: portfolio concentration, drawdown scenarios, liquidation risk.
Signals for multiple pairs at once (returns list of Signal).
Destructive/reversible tools (binance_propose_order, binance_cancel_order) lack confirmation or dry-run patterns. Descriptions do not warn of side effects or guide recovery. No error handling guidance for failed cancellations.
No error handling guidance in any tool description. LLMs cannot distinguish retryable errors (rate limit, network) from user-fixable (invalid symbol) or fatal (auth failure). No recovery hints provided.