github re-analysis due

Alejandrehl/kainext-binance-mcp

github

MCP server for Binance spot: an AI reads markets and proposes orders, but a separate human-gated process holds the trade key and is the only thing that can execute. Security-first, 18 tools, 99% test coverage.

maintainer
Alejandrehl
license
MIT
first seen
2026-06-08
last seen
2026-06-08
releases · 30d
0
short id

Drift inferred · capture-to-capture

No drift recorded — single capability capture; advisories appear once its surface changes.

capabilities 18 tools
transport stdio counts 18 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • binance_backtest

    Lightweight, no-lookahead backtest of a simple rule

  • binance_backtest_signal

    Backtest the composite technical signal (no lookahead, sentiment=0)

  • binance_cancel_order_propose

    Proposes a cancellation (re-checks state); does not cancel

  • binance_cancel_order_status

    Polls the outcome of a cancellation

  • binance_compute_indicators

    RSI / MACD / EMA / Bollinger / ATR. Returns only the latest value per series by default (last_n=1) to keep responses small; raise last_n for recent history

  • binance_generate_signal

    Composite, transparent signal: direction + score + per-factor rationale + ATR risk levels

  • binance_get_account_info

    Flags + fees; key permissions (mainnet)

  • binance_get_balance

    Spot balances (free/locked), non-zero only

  • binance_get_klines

    OHLCV candles (Decimal) for a pair/interval

  • binance_get_news

    Crypto headlines from RSS (CoinDesk, crypto.news)

  • binance_get_open_orders

    Open spot orders + status

  • binance_get_order_history

    Closed spot order history

  • binance_get_price

    Current price/ticker for a symbol

  • binance_get_sentiment

    Aggregated raw sentiment (lexicon, not a prediction)

  • binance_get_ticker_24h

    Rolling 24h stats (% change, high/low, volume)

  • binance_scan_signals

    Signals for a watchlist, ranked by score

  • binance_spot_order_propose

    Proposes an order; does not execute. Returns intent_id

  • binance_spot_order_status

    Polls the outcome of a proposal

code evidence vHEAD · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

filesystem 3

  • fs Alejandrehl-kainext-binance-mcp-107f6e8/scripts/smoke_dialog_testnet.py :105 print(f"[smoke] audit.log:\n{open(audit_path).read().strip()}", flush=True)
  • fs Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/ipc.py :134 os.unlink(socket_path)
  • fs Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp_confirmer/audit.py :60 fd = os.open(path, os.O_WRONLY | os.O_CREAT | os.O_APPEND, 0o600)

shell / exec 1

  • shell Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp_confirmer/dialog.py :4 import subprocess

network 3

  • net Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/idempotency.py :5 from requests.exceptions import ConnectionError as ReqConnError, Timeout as ReqTimeout
  • net Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/ipc.py :17 import socket
  • net Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/news/sources.py :14 import socket

tool registrations 18

  • binance_get_balance Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :65
  • binance_get_price Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :70
  • binance_get_open_orders Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :75
  • binance_get_order_history Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :80
  • binance_get_account_info Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :85
  • binance_get_klines Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :91
  • binance_get_ticker_24h Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :96
  • binance_compute_indicators Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :101
  • binance_backtest Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :112
  • binance_get_news Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :120
  • binance_get_sentiment Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :126
  • binance_generate_signal Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :134
  • binance_scan_signals Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :141
  • binance_backtest_signal Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :146
  • binance_spot_order_propose Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :157
  • binance_spot_order_status Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :169
  • binance_cancel_order_propose Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :174
  • binance_cancel_order_status Alejandrehl-kainext-binance-mcp-107f6e8/src/kainext_binance_mcp/server.py :180