{"serverId":"mcp-registry/io.github.qqdd27/coincryptorank-mcp","tools":[{"name":"agent_status","fixed":{"name":"agent_status","description":"Get details of one of your agents (mode, status, risk, triggers, last activity).","inputSchema":{"type":"object","required":["agent"],"properties":{"agent":{"type":"string","description":"Agent id or name substring"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":72,"tokensAfter":72},{"name":"analyze_pair_liquidity","fixed":{"name":"analyze_pair_liquidity","description":"Orderbook liquidity for a hedged pair: max neutral size (min of both legs depth within slippage), best prices, recommendation. Params: exchangeA, exchangeB, symbol, slippagePct (default 0.3).","inputSchema":{"type":"object","required":["exchangeA","exchangeB","symbol"],"properties":{"symbol":{"type":"string"},"exchangeA":{"type":"string"},"exchangeB":{"type":"string"},"slippagePct":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":126,"tokensAfter":126},{"name":"close_hedged_position","fixed":{"name":"close_hedged_position","description":"Close a hedged position (both legs, market, reduce-only). Params: positionId, reason (optional).","inputSchema":{"type":"object","required":["positionId"],"properties":{"reason":{"type":"string"},"positionId":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":77,"tokensAfter":77},{"name":"close_position","fixed":{"name":"close_position","description":"Close an open position from our registry (user_positions): market reduce-only on the exchange (binance/bingx/bybit), cancel exchange SL/TP, record realized PnL. Params: exchange, symbol (e.g. \"BTC_USDT\"). Returns fill price and PnL.","inputSchema":{"type":"object","required":["exchange","symbol"],"properties":{"symbol":{"type":"string"},"exchange":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":115,"tokensAfter":115},{"name":"get_24h_stats","fixed":{"name":"get_24h_stats","description":"24-hour rolling statistics for one symbol from the exchange itself: last price, change percent, high/low, base and quote volume. Params: exchange (\"binance\"=futures, \"binance_spot\", \"bybit\", \"bybit_spot\", \"okx\", \"okx_spot\"), symbol (base ticker \"BTC\" or pair \"BTCUSDT\"/\"BTC/USDT\" — both accepted).","inputSchema":{"type":"object","required":["exchange","symbol"],"properties":{"symbol":{"type":"string"},"exchange":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":137,"tokensAfter":137},{"name":"get_agent_events","fixed":{"name":"get_agent_events","description":"Engine event feed for a position (slices, funding collected, alerts, liquidation). Params: positionId (optional), limit (default 30).","inputSchema":{"type":"object","properties":{"limit":{"type":"number"},"positionId":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":79,"tokensAfter":79},{"name":"get_basis_history","fixed":{"name":"get_basis_history","description":"Minute-level price basis history between two exchanges for the same perp symbol (buyPrice vs sellPrice from our archive). Params: exchangeA, exchangeB, symbol (e.g. \"HOME_USDT\"), hours (default 6, max 48).","inputSchema":{"type":"object","required":["exchangeA","exchangeB","symbol"],"properties":{"hours":{"type":"number"},"symbol":{"type":"string"},"exchangeA":{"type":"string"},"exchangeB":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":128,"tokensAfter":128},{"name":"get_basis_regime","fixed":{"name":"get_basis_regime","description":"Basis regime between two exchanges: mean/std/z-score/percentiles of the price spread, trend, oscillation score, and a signal (ENTER_LONG_BIAS / ENTER_SHORT_BIAS / HOLD). Params: exchangeA, exchangeB, symbol.","inputSchema":{"type":"object","required":["exchangeA","exchangeB","symbol"],"properties":{"symbol":{"type":"string"},"exchangeA":{"type":"string"},"exchangeB":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":120,"tokensAfter":120},{"name":"get_basis_signal","fixed":{"name":"get_basis_signal","description":"Combined entry signal: basis regime + liquidity check. Returns signal (ENTER_*_BIAS/HOLD), z-score, maxNeutralUsd, recommended action. Params: exchangeA, exchangeB, symbol, maxSizeUsd (optional cap).","inputSchema":{"type":"object","required":["exchangeA","exchangeB","symbol"],"properties":{"symbol":{"type":"string"},"exchangeA":{"type":"string"},"exchangeB":{"type":"string"},"maxSizeUsd":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":127,"tokensAfter":127},{"name":"get_exchange_skills","fixed":{"name":"get_exchange_skills","description":"List official exchange MCP servers and AI skill libraries we aggregate (Binance Skills Hub, BingX AI Skills, OKX Agent Trade Kit, Bybit MCP, Coinbase CDP, ...) with availability for YOUR connected exchange keys — tells an AI client which exchange skills it can actually use.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":103,"tokensAfter":103},{"name":"get_funding_arbitrage","fixed":{"name":"get_funding_arbitrage","description":"Cross-exchange funding-rate arbitrage opportunities from our live table. Returns assets where one exchange pays positive funding (long side) and another negative (short side). Params: exchangeA (e.g. \"binance\"), exchangeB (e.g. \"bingx\") to filter pairs between these two, minRateDiff (minimum |rate_diff| in %, e.g. 0.05), limit (max rows, default 20).","inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"Max rows (default 20, max 50)"},"exchangeA":{"type":"string","description":"First exchange id, e.g. \"binance\""},"exchangeB":{"type":"string","description":"Second exchange id, e.g. \"bingx\""},"minRateDiff":{"type":"number","description":"Minimum absolute rate diff in percent (default 0)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":219,"tokensAfter":219},{"name":"get_funding_rates","fixed":{"name":"get_funding_rates","description":"Current funding rates for perpetual futures from all exchanges. Params: asset (e.g. \"BTC\"), exchange (e.g. \"binance\"), limit (default 20, max 50).","inputSchema":{"type":"object","properties":{"asset":{"type":"string"},"limit":{"type":"number"},"exchange":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":90,"tokensAfter":90},{"name":"get_funding_schedule","fixed":{"name":"get_funding_schedule","description":"Funding schedule for a perp on an exchange: current rate %, interval hours, next payment time, mark price. Params: exchange, symbol.","inputSchema":{"type":"object","required":["exchange","symbol"],"properties":{"symbol":{"type":"string"},"exchange":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":88,"tokensAfter":88},{"name":"get_klines","fixed":{"name":"get_klines","description":"OHLCV candles from the official exchange API (binance or xt). Params: exchange (\"binance\"|\"xt\"), symbol, interval (\"1m\",\"5m\",\"1h\"), limit (max 500).","inputSchema":{"type":"object","required":["exchange","symbol"],"properties":{"limit":{"type":"number"},"symbol":{"type":"string"},"exchange":{"enum":["binance","xt"],"type":"string"},"interval":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":115,"tokensAfter":115},{"name":"get_news","fixed":{"name":"get_news","description":"Latest crypto news headlines with short descriptions. Params: limit (default 10, max 30).","inputSchema":{"type":"object","properties":{"limit":{"type":"number"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":55,"tokensAfter":55},{"name":"get_open_orders","fixed":{"name":"get_open_orders","description":"List open orders on an exchange (REAL). Params: exchange (\"binance\"|\"bingx\"|\"bybit\"), symbol (optional, e.g. \"BTC_USDT\"). binance = futures open orders, bybit = linear perps; bingx spot returns unsupported (single-order query only).","inputSchema":{"type":"object","required":["exchange"],"properties":{"symbol":{"type":"string"},"exchange":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":114,"tokensAfter":114},{"name":"get_orderbook","fixed":{"name":"get_orderbook","description":"Orderbook depth snapshot for a symbol on an exchange. Params: exchange (e.g. \"binance_spot\", \"bingx\"), symbol (e.g. \"BTC/USDT\"), depth (default 10, max 25).","inputSchema":{"type":"object","required":["exchange","symbol"],"properties":{"depth":{"type":"number"},"symbol":{"type":"string"},"exchange":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":102,"tokensAfter":102},{"name":"get_perp_arbitrage","fixed":{"name":"get_perp_arbitrage","description":"Perpetual futures arbitrage: same perp traded on two exchanges with a price spread. Params: exchangeA, exchangeB, minSpreadPct, limit.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"Max rows (default 20, max 50)"},"exchangeA":{"type":"string"},"exchangeB":{"type":"string"},"minSpreadPct":{"type":"number","description":"Minimum spread % (default 0)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"get_portfolio","fixed":{"name":"get_portfolio","description":"The user's real exchange balances from their connected accounts (Binance futures, BingX spot+futures, Bybit, XT, Pionex). Use when the user asks about their balances, positions, or portfolio. Params: exchange (optional: \"binance\" | \"bingx\" | \"bybit\" | \"xt\" | \"pionex\").","inputSchema":{"type":"object","properties":{"exchange":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":110,"tokensAfter":110},{"name":"get_positions","fixed":{"name":"get_positions","description":"The user's open positions from our registry (user_positions) — what the agent/bots have open. Params: exchange (optional), symbol (optional).","inputSchema":{"type":"object","properties":{"symbol":{"type":"string"},"exchange":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"get_recent_trades","fixed":{"name":"get_recent_trades","description":"Recent public trades (tape) for a symbol, straight from the exchange API — no aggregator. Params: exchange (\"binance\", \"binance_spot\", \"bybit\", \"bybit_spot\", \"okx\", \"okx_spot\"), symbol (base ticker \"BTC\" or pair \"BTCUSDT\"/\"BTC/USDT\"), limit (default 50, max 200). Returns price, size, side and timestamp per trade.","inputSchema":{"type":"object","required":["exchange","symbol"],"properties":{"limit":{"type":"number"},"symbol":{"type":"string"},"exchange":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":150,"tokensAfter":150},{"name":"get_spot_arbitrage","fixed":{"name":"get_spot_arbitrage","description":"Spot arbitrage opportunities: buy asset on one exchange, sell on another. Params: exchangeA, exchangeB (filter pairs between these two), minProfitPct (e.g. 0.5), limit.","inputSchema":{"type":"object","properties":{"limit":{"type":"number","description":"Max rows (default 20, max 50)"},"exchangeA":{"type":"string"},"exchangeB":{"type":"string"},"minProfitPct":{"type":"number","description":"Minimum profit % (default 0)"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":131,"tokensAfter":131},{"name":"get_symbol_rules","fixed":{"name":"get_symbol_rules","description":"Trading rules for a symbol as the EXCHANGE defines them: minimum quantity, minimum notional, quantity/price step (tick size) and max leverage. Call this before sizing an order — a size below minNotional is rejected by the venue. Params: exchange (\"binance\"=futures, \"binance_spot\", \"bybit\", \"bybit_spot\", \"okx\", \"okx_spot\"), symbol (base ticker \"BTC\" or pair \"BTCUSDT\"/\"BTC/USDT\").","inputSchema":{"type":"object","required":["exchange","symbol"],"properties":{"symbol":{"type":"string"},"exchange":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":161,"tokensAfter":161},{"name":"get_threat_level","fixed":{"name":"get_threat_level","description":"Instant risk assessment for a position: GREEN/YELLOW/RED, liq distance %, basis deviation %, reasons, recommended action. Params: positionId.","inputSchema":{"type":"object","required":["positionId"],"properties":{"positionId":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":81,"tokensAfter":81},{"name":"get_tickers","fixed":{"name":"get_tickers","description":"Top crypto prices from our aggregated ticker feed (global VWAP across 60+ exchanges). Params: topN (default 10, max 30), symbols (optional array like [\"BTC\",\"ETH\"]).","inputSchema":{"type":"object","properties":{"topN":{"type":"number"},"symbols":{"type":"array","items":{"type":"string"}}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":93,"tokensAfter":93},{"name":"hedge_status","fixed":{"name":"hedge_status","description":"Current status of hedged position(s): legs, avg prices, current basis, PnL, margin/liq distance, threat level, funding countdown. Params: positionId (optional — omit for all open positions).","inputSchema":{"type":"object","properties":{"positionId":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":86,"tokensAfter":86},{"name":"list_agents","fixed":{"name":"list_agents","description":"List your AI agents: id, name, mode, scenario, status, last decision/trigger.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":46,"tokensAfter":46},{"name":"list_hedge_positions","fixed":{"name":"list_hedge_positions","description":"All hedged positions of the user (open and closed).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":41,"tokensAfter":41},{"name":"place_order","fixed":{"name":"place_order","description":"Place a real market order on the user's exchange (Binance or BingX — only exchanges connected to this agent). Trading is only allowed when the agent mode is REAL. The order size is strictly limited by the agent's risk % of free balance; the system validates and may reject. A stop-loss and take-profit are placed on the exchange automatically. Params: exchange (\"binance\"|\"bingx\"), symbol (asset like \"BTC\"), side (\"BUY\"|\"SELL\"), amount_type (\"PERCENTAGE\"|\"FIXED_USDT\"), amount_value (number).","inputSchema":{"type":"object","required":["exchange","symbol","side","amount_type","amount_value","agent"],"properties":{"side":{"enum":["BUY","SELL"],"type":"string"},"agent":{"type":"string","description":"Your REAL agent (id or name) whose bound API keys will execute the order (binance/bingx/bybit)"},"symbol":{"type":"string"},"exchange":{"enum":["binance","bingx"],"type":"string"},"amount_type":{"enum":["PERCENTAGE","FIXED_USDT"],"type":"string"},"amount_value":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":289,"tokensAfter":289},{"name":"set_hedge_protection","fixed":{"name":"set_hedge_protection","description":"Update protection thresholds of an open position: slPct, tpPct, maxBasisDeviationPct, marginAlertPct, autoTopUpUsd. Params: positionId + any threshold.","inputSchema":{"type":"object","required":["positionId"],"properties":{"slPct":{"type":"number"},"tpPct":{"type":"number"},"positionId":{"type":"string"},"autoTopUpUsd":{"type":"number"},"marginAlertPct":{"type":"number"},"maxBasisDeviationPct":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"set_sl_tp","fixed":{"name":"set_sl_tp","description":"Set/update exchange-side stop-loss and take-profit on an open position (REAL; binance futures, bybit linear; bingx spot unsupported). Params: exchange, symbol, stopLossPct/takeProfitPct (percent from entry) or absolute stopLossPrice/takeProfitPrice.","inputSchema":{"type":"object","required":["exchange","symbol"],"properties":{"symbol":{"type":"string"},"exchange":{"type":"string"},"stopLossPct":{"type":"number"},"stopLossPrice":{"type":"number"},"takeProfitPct":{"type":"number"},"takeProfitPrice":{"type":"number"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":155,"tokensAfter":155},{"name":"square_post","fixed":{"name":"square_post","description":"Publish a post to Binance Square using YOUR Binance Square OpenAPI key (set in Integrations). Max 3 different $TICKER coin tags per post; write prices as plain numbers (no $). Daily limit: 100 posts.","inputSchema":{"type":"object","required":["content"],"properties":{"title":{"type":"string","description":"Optional article title (max 200 chars)"},"content":{"type":"string","description":"Post text (max 4000 chars)"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":128,"tokensAfter":128}],"toolsChanged":32,"tokensSaved":0,"todo":[{"tool":"adjust_hedge","params":["action","sizeUsd","positionId"]},{"tool":"analyze_pair_liquidity","params":["symbol","exchangeA","exchangeB","slippagePct"]},{"tool":"backtest_basis_strategy","params":["days","symbol","sizeUsd","exchangeA","exchangeB"]},{"tool":"close_hedged_position","params":["reason","positionId"]},{"tool":"close_position","params":["symbol","exchange"]},{"tool":"get_24h_stats","params":["symbol","exchange"]},{"tool":"get_agent_events","params":["limit","positionId"]},{"tool":"get_basis_history","params":["hours","symbol","exchangeA","exchangeB"]},{"tool":"get_basis_regime","params":["symbol","exchangeA","exchangeB"]},{"tool":"get_basis_signal","params":["symbol","exchangeA","exchangeB","maxSizeUsd"]},{"tool":"get_funding_rates","params":["asset","limit","exchange"]},{"tool":"get_funding_schedule","params":["symbol","exchange"]},{"tool":"get_klines","params":["limit","symbol","exchange","interval"]},{"tool":"get_news","params":["limit"]},{"tool":"get_open_orders","params":["symbol","exchange"]},{"tool":"get_orderbook","params":["depth","symbol","exchange"]},{"tool":"get_perp_arbitrage","params":["exchangeA","exchangeB"]},{"tool":"get_portfolio","params":["exchange"]},{"tool":"get_positions","params":["symbol","exchange"]},{"tool":"get_recent_trades","params":["limit","symbol","exchange"]},{"tool":"get_spot_arbitrage","params":["exchangeA","exchangeB"]},{"tool":"get_symbol_rules","params":["symbol","exchange"]},{"tool":"get_threat_level","params":["positionId"]},{"tool":"get_tickers","params":["topN","symbols"]},{"tool":"hedge_status","params":["positionId"]},{"tool":"open_hedged_position","params":["slPct","tpPct","symbol","sizeUsd","leverage","strategy","exchangeA","exchangeB","maxSlices","autoTopUpUsd","marginAlertPct","maxSlippagePct","maxBasisDeviationPct"]},{"tool":"place_order","params":["side","symbol","exchange","amount_type","amount_value"]},{"tool":"set_hedge_protection","params":["slPct","tpPct","positionId","autoTopUpUsd","marginAlertPct","maxBasisDeviationPct"]},{"tool":"set_sl_tp","params":["symbol","exchange","stopLossPct","stopLossPrice","takeProfitPct","takeProfitPrice"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}