70trust / 100

Crank Protocol

by crank.ing in Onchain & crypto

MCP serverPassing, checked 6 h ago

Non-custodial DeFi tools for AI agents on Solana: swaps, perps, lending, staking, equities.

https://mcp.crank.ing/mcp
Tools
196
open to any client
Uptime
100%
last 30 days
Response time
498 ms
643 ms slowest 5%
Last check
Passed
6 h ago, next any minute now

Scan it nowHow to connect

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed · Watch with other listings

How to connect

Add it to any MCP client that supports remote servers.

{
  "mcpServers": {
    "crank-protocol": {
      "type": "http",
      "url": "https://mcp.crank.ing/mcp"
    }
  }
}

196 tools

  • jupiter_swap

    Execute a token swap via Jupiter (non-custodial). ``submit_mode`` (optional): your execution preference. Omitted/"public" = public-RPC broadcast (default, unchanged). "mev_protected" = the tx is built with a Jito tip you pay (``jito_tip_lamports``, default 10,000) and relayed…

  • verify_transaction

    Verify any prior transaction signature on demand (FREE read). Post-trade verification (harness spec R13): awaits on-chain confirmation of ``tx_signature`` at ``commitment`` level (up to ``timeout_s``) and, when a state hint is supplied, re-reads the relevant state to compare…

  • get_quotes

    Read-only Jupiter quote for a token pair (no execution). amount is in base units of input_token. Returns routes, price impact, fees, and estimated output. ``venue_hint`` is ADVISORY, never required -- see jupiter_swap. Pass ``wallet_address`` (optional) to preview the…

  • get_balances

    Wallet token balances (SOL + all SPL tokens) with USD valuations. detail="concise" (default) returns total_usd + count + balances trimmed to token/symbol/usd_value (IDs for chaining into e.g. get_quotes); "full" returns every field (amount, price_usd) as before. Workflow…

  • portfolio_snapshot

    Full portfolio summary: positions, total value, allocation %, 24h change. Persisted as a PortfolioSnapshot for historical tracking. detail="concise" (default) returns total_value_usd/change_24h_pct/snapshot_id + up to the top 10 positions (token/symbol/usd_value -- IDs for…

  • set_alert

    Create a price/position alert checked every 60s by Celery beat. alert_type: price_above | price_below | position_change. token is a mint address. Optional webhook_url is POSTed when the alert fires. Free (no technology service fee) -- a control-plane write, moves no funds and…

  • set_ooda_consent

    Opt in/out of the wake-on-condition worker. Default OFF. When opted in, a triggered alert may run a metered background check (a fast triage model, escalating to a larger model only if worth a closer look) and propose one action. daily_wake_budget (default 10, 1-500) hard-caps…

  • get_ooda_status

    Wake-on-condition consent + usage status. Returns opted_in, daily_wake_budget, wakes_used_today, skips_today, and recent_wakes -- including SKIPPED_BUDGET / SKIPPED_SPEND_CAP rows, so a skipped wake is exactly as visible as a completed one, never silent. Also returns the…

  • declare_jurisdiction

    Declare your wallet's jurisdiction for geo-gated trading. Gap: before this tool, the ONLY way to declare a jurisdiction was the ``jurisdiction=`` param on ``trade_equity`` -- an agent that only ever used perps/short/leverage tools had no write path at all, and the fail-safe…

  • list_alerts

    List a wallet's alerts -- what is currently armed. Free read. Covers both price/position alerts (set_alert) and health-factor liquidation alerts (set_liquidation_alert) -- one table, told apart by alert_type. Default shows only ARMED alerts (active, not yet triggered)…

  • token_info

    Token metadata, price, liquidity, volume, holder count. Provide token_address (mint) or a known symbol. Merges Helius (metadata) with Birdeye (market data). Free (no technology service fee) -- a read with no transaction notional.

  • evm_balances

    Native (ETH) and ERC-20 balances for an address on an EVM chain. chain defaults to "base". ERC-20 balances are returned only for the contracts named in token_addresses -- an EVM RPC endpoint cannot enumerate a wallet's tokens, and guessing from a fixed list would under-report…

  • evm_token_price

    Indicative price of an ERC-20 token on an EVM chain, quoted via 0x. Priced off routed liquidity (what one whole token sells for against quote_token, USDC by default), not an oracle. Free (no technology service fee) -- a read with no transaction notional.

  • evm_swap_quote

    INDICATIVE swap quote on an EVM chain (pricing and routing only). sell_amount is in the sell token's base units. Returns no transaction and no calldata -- this quote is not executable and cannot be signed. Free (no technology service fee) -- a read with no transaction notional.

  • evm_swap

    Execute a spot swap on an EVM chain (non-custodial, two-phase, OPT-IN). chain must be named explicitly -- nothing routes to an EVM chain by default and a Solana route never fails over onto one. Base only today. Without signed_transaction: returns an UNSIGNED EIP-1559…

  • verify_token

    Multi-layer authenticity check for a token mint (read-only, no execution). Runs the same five-layer verification the swap/trade tools enforce before building a transaction: registry allow-list, Jupiter verified list, Metaplex metadata authority, minimum liquidity, and token age…

  • get_transaction_history

    Recent transactions for a wallet, parsed + human-readable (limit 1-100). detail="concise" (default) trims each row to signature/type/timestamp/ status (signature is the ID to chain into journal_append's tx_signature); "full" adds description, tokens_involved, token_mints, and…

  • backtest_strategy

    Backtest a strategy on historical Solana OHLCV before deploying capital. strategy_type is one of the 17 Crank strategy types (dca, momentum, rebalance, stoploss, protect, snipe, sentiment, vault, yield_farm, hedge, equity_dca, perp_grid, copy_wallet, market_make, arb…

  • get_ml_signal

    ML ensemble directional forecast for a Solana asset (read-only). Trains the ported Bybit ensemble (XGBoost + RandomForest + NeuralNet + GradientBoost + a candle flow proxy) walk-forward on the last lookback_candles of OHLCV, then returns the blended P(up move) for the latest…

  • detect_regime

    Detect the current market regime for a Solana asset (read-only, deterministic). Classifies the latest candle of recent OHLCV as bull / bear / range / volatile and returns a RegimeSignal: regime, confidence, trend_strength, volatility_percentile, a SUGGESTED direction…

  • get_risk_assessment

    Combined regime + risk-guard calculation for a strategy on an asset (read-only). Folds the detected market regime together with the safe-default risk guards (position / exposure / single-loss / drawdown / daily-loss limits) into one deterministic output: a rules-based…

  • get_indicators

    Full standard technical-indicator set for one asset/timeframe (read-only). Computes sma, ema, macd, adx (+DI/-DI), rsi, stochastic (%K/%D), roc, bollinger (mid/upper/lower/width/%B), atr, keltner, realised_vol, vwap, volume_ratio and volume_profile (POC / value area /…

  • sr_detect_levels

    Multi-timeframe support/resistance zones + liquidity bands (read-only). Detects S/R zones per timeframe from recent OHLCV (swing highs/lows, floor pivots, Fibonacci retracement, volume-profile clusters, optional manual levels), merges them across timeframes with a confluence…

  • sr_configure_strategy

    Attach an S/R config block to YOUR OWN strategy (ownership-checked). Persists an `sr` param block (SRConfig knobs: sensitivity, sources, lookback, swing_window, zone_width_bps, merge_tolerance_bps, min_touches, min_strength, max_zones_per_side, manual_levels…

  • sr_backtest

    Backtest a strategy with an S/R config block (read-only simulation). Runs the existing backtest engine with strategy_type (default "support_resistance": bounce-long off detected support, exit on a support break or resistance-fail; on spot a SHORT signal is exit-to-flat) and…

  • asset_classification

    Classify a token: crypto / equity / wrapped_major / lst / stablecoin. Provide token_address (mint) or a known symbol. Tokenized securities (xStocks, Ondo) classify as 'equity', which subjects strategies to the SEC framework guardrails (neutral tools, per-execution confirmation…

  • get_disclaimers

    Compliance disclaimers for an asset class (SEC framework). Pass asset_classification (crypto/equity/wrapped_major/lst/stablecoin), or a token_address/symbol to classify first. Equity adds a securities-specific non-registration / not-advice notice. Full text…

  • perp_open_long

    Open a leveraged LONG perp position on Drift (non-custodial). Returns an UNSIGNED base64 transaction for your wallet to sign + broadcast, plus entry/liquidation/margin estimates. market e.g. SOL-PERP. size_usd is notional USD; leverage up to the market max. TP/SL are…

  • perp_open_short

    Open a leveraged SHORT perp position on Drift (non-custodial). Same envelope as perp_open_long, opposite direction. ``jurisdiction``, ``idempotency_key`` (optional) and ``signed_transaction``/``verify`` (two-phase execution): see perp_open_long.

  • perp_close

    Close a perp position, full or partial (non-custodial). close_pct in (0, 100]. Returns an UNSIGNED base64 tx to sign + broadcast, plus exit price + realized P&L estimate (incl funding). Past the daily free tier an x402 payment_header is required. ``jurisdiction``: closes are…

  • perp_modify

    Modify an existing open Drift ORDER by order_id (non-custodial). Adjusts trigger price (TP/SL). new_leverage / add_collateral require a separate collateral deposit/withdraw and are recorded for tracking. Returns an UNSIGNED base64 tx to sign + broadcast. Past the daily free…

  • perp_positions

    List open perp positions for a wallet with live P&L. Each: market, side, size, entry/mark price, unrealized P&L (incl funding), liquidation price.

  • perp_markets

    Available perp markets with price, open interest, funding, max leverage. Legacy alias: while Drift is flagged off this returns the primary venue's markets (Jupiter Perps: SOL, ETH, BTC). Prefer perp_markets_all.

  • perp_funding_rates

    Current funding for a perp market (rate, period, last funding timestamp). market e.g. SOL-PERP. period is informational (1h/8h/24h).

  • place_perp_order

    Open a leveraged perp position on the best/selected venue (non-custodial). side is "long" | "short". market e.g. SOL-PERP; size_usd is notional USD. venue optional -- defaults to the configured primary (Jupiter Perps), with health failover to the fallback for new orders…

  • close_perp_position

    Close a perp position (full/partial) on its venue (non-custodial). position_id is venue-native (for Drift it is the market symbol). close_pct in (0, 100]. Returns an UNSIGNED tx / signing payload to sign + broadcast. ``jurisdiction``: closes are geo-gated too -- see…

  • cancel_perp_order

    Cancel a resting perp order on its venue (non-custodial). ``jurisdiction``: cancel is geo-gated too -- see place_perp_order. ``idempotency_key`` (optional): a client-generated UUID. Retrying with the same key + same args replays the original result instead of re-cancelling the…

  • set_perp_tpsl

    Set, amend or cancel a take profit / stop loss on an ALREADY-OPEN perp position (non-custodial). place_perp_order can attach TP/SL only inline on the order that OPENS a position; this adds one to a position that is already open. Currently supported on Jupiter Perps (position_id…

  • perp_positions_all

    Open perp positions for a wallet. venue=None aggregates across venues. Each position carries its venue + custody_tier. detail="concise" (default) trims each position to position_id/market/side/size/unrealized_pnl/venue (position_id is the ID to chain into close_perp_position)…

  • perp_markets_all

    Perp markets across venues (venue=None aggregates all routable venues). detail="concise" (default) trims each market to symbol/venue/price/ max_leverage (symbol is the ID to chain into place_perp_order); "full" adds base/quote/custody_tier/min_size/open_interest_usd.

Security scan

5 findings

  • Unusually long description in tool:jupiter_swap
    jupiter_swap (jupiter swap) Execute a token swap via Jupiter (non-custodial). `…
  • Unusually long description in tool:evm_swap
    evm_swap (evm swap) Execute a spot swap on an EVM chain (non-custodial, two-phas…
  • Unusually long description in tool:place_perp_order
    place_perp_order (place perp order) Open a leveraged perp position on the best/s…
  • Unusually long description in tool:set_perp_tpsl
    set_perp_tpsl (set perp tpsl) Set, amend or cancel a take profit / stop loss on …
  • Unusually long description in tool:create_execution_intent
    create_execution_intent (create execution intent) Create a propose-only executio…

Recent checks

WhenResultHTTPTime
6 h agoPassed200498 ms
17 h agoPassed200643 ms
28 h agoPassed200490 ms
38 h agoPassed200457 ms
2 days agoPassed200476 ms
Show 10 older checks
2 days agoPassed200540 ms
3 days agoPassed200466 ms
3 days agoPassed200518 ms
4 days agoPassed200599 ms
4 days agoPassed200570 ms
5 days agoPassed200493 ms
5 days agoPassed200508 ms
5 days agoPassed200504 ms
6 days agoPassed200575 ms
6 days agoPassed200472 ms