midasflow-mcp-quickstart

Agent-native crypto market-data over MCP+REST: order flow, whales, liquidations, calibrated scores

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
95%
Qualität der Benennung
94%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~4,448Tokens (Tool-Definitionen)
~1.9 KBTypische Antwortgröße
Erhebliche Auswirkung auf die Aufmerksamkeit (3.48% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "midasflow-mcp-quickstart": {
      "url": "https://mcp.midasflow.ai/mcp"
    }
  }
}

Remote-Endpunkte

https://mcp.midasflow.ai/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (14)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟢get_signals(source, quality, symbol, limit, cursor)

Pull recent MidasFlow SignalEvent records (newest first). quality='normal' (default) = the bucketed signal log across source families; quality='elite' = the rare highest-conviction multi-model-consensus crown feed (premium+, lagged anti-front-run). Tier-gated + moat-scrubbed server-side. Market DATA, not advice. Routes: normal→/v1/signals/pull, elite→/v1/signals/elite.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "source": {
      "default": "",
      "description": "Source-family filter: '' / 'all' | 'pump' | 'flow' | 'mfb' (case/space-insensitive). Ignored when quality='elite'.",
      "title": "Source",
      "type": "string"
    },
    "quality": {
      "default": "normal",
      "description": "'normal' (default, /v1/signals/pull) | 'elite' (crown consensus feed, /v1/signals/elite, premium+).",
      "title": "Quality",
      "type": "string"
    },
    "symbol": {
      "default": "",
      "description": "Single symbol filter, e.g. 'BTCUSDT' (empty = all symbols).",
      "title": "Symbol",
      "type": "string"
    },
    "limit": {
      "default": 20,
      "description": "Max events to return (normal 1-200, elite 1-50; clamped server-side). Default 20.",
      "title": "Limit",
      "type": "integer"
    },
    "cursor": {
      "default": 0,
      "description": "Pagination cursor (normal feed only) — pass 'next_cursor' from the previous page for older events (0 = newest).",
      "title": "Cursor",
      "type": "number"
    }
  },
  "title": "get_signalsArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_signalsDictOutput"
}
🟢score_symbol(symbol, direction, include_safety)

CROWN data product: calibrated P(first TP1 before SL) band + coarse trade plan (TP ladder %, SL %, weights) for ONE symbol, FOLDED with a pre-trade feed-safety check (is the feed live/real-volume/fresh, no phantom ticks). Coverage is present-or-null — most symbols return p_tp1_band=null (valid, NOT an error). Feed the band into calc_ev; never read it as buy/sell. Routes: /v1/score/{symbol} + folds /v1/symbol/check as `safety`.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Perp symbol, e.g. 'BTCUSDT' (case/space-insensitive). A calibrated score exists only for recently-evaluated symbols; most return p_tp1_band=null (valid).",
      "title": "Symbol",
      "type": "string"
    },
    "direction": {
      "default": "long",
      "description": "'long' | 'short' — steers the plan ladder only; the P(TP1) score itself is direction-agnostic.",
      "title": "Direction",
      "type": "string"
    },
    "include_safety": {
      "default": true,
      "description": "If true (default), also fold a /v1/symbol/check feed-safety read into the response under `safety`. Set false to skip that extra call.",
      "title": "Include Safety",
      "type": "boolean"
    }
  },
  "required": [
    "symbol"
  ],
  "title": "score_symbolArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "score_symbolDictOutput"
}
🟢get_candles(symbol, tf, limit)

Recent OHLCV candle bars for a symbol at a chosen timeframe — the raw price/volume history other tools are derived from. Inspect trend, range, volatility, volume profile, or feed your own indicators. Market DATA, not advice. A symbol outside the candle store returns an empty bars list (normal, not an error). Routes: /v1/candles/{symbol}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Perp symbol, e.g. 'BTCUSDT' (case/space-insensitive).",
      "title": "Symbol",
      "type": "string"
    },
    "tf": {
      "default": "1h",
      "description": "Timeframe / bar size, e.g. '1m' | '5m' | '15m' | '1h' | '4h' | '1d'. Default '1h'.",
      "title": "Tf",
      "type": "string"
    },
    "limit": {
      "default": 200,
      "description": "Max bars, newest last (1-1000; clamped server-side). Default 200.",
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "symbol"
  ],
  "title": "get_candlesArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_candlesDictOutput"
}
🟢get_orderbook(symbol, include_sr, sr_timeframe)

Live order-book snapshot for a symbol — bid/ask walls, book imbalance, spread — FOLDED with support/resistance levels (classic TA fused with cross-exchange book walls + Fibonacci) so you see resting liquidity AND the level map in one call. Cross-exchange aggregate, derived levels only. Market DATA, not advice; thin/uncovered symbols return null fields (normal). Routes: /v1/orderbook/{symbol} + folds /v1/sr as `sr`.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Perp symbol, e.g. 'BTCUSDT' (case/space-insensitive). Resolves the cross-venue aggregate.",
      "title": "Symbol",
      "type": "string"
    },
    "include_sr": {
      "default": true,
      "description": "If true (default), fold support/resistance + Fibonacci levels (/v1/sr) into the response under `sr`. Set false to skip.",
      "title": "Include Sr",
      "type": "boolean"
    },
    "sr_timeframe": {
      "default": "1h",
      "description": "Timeframe for the folded S/R computation. Default '1h'.",
      "title": "Sr Timeframe",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "title": "get_orderbookArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_orderbookDictOutput"
}
🟢get_flow(symbol, kind)

Per-symbol order-flow microstructure, grouped by `kind`. kind='vpin'/'all' (default)=full snapshot (CVD trend+divergence, VPIN toxicity, sweep state, buy/whale aggression, /v1/flow); 'cvd'=CVD series (/v1/cvd); 'sweeps'=stop-sweep events (/v1/sweeps); 'cross'=cross-exchange flow origin (/v1/cross_flow). Realtime market CONTEXT, NOT advice / a win-rate. Empty/unknown kind → a menu of kinds. VPIN is ONE contested signal — pair with get_accuracy before treating it as edge.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "default": "",
      "description": "Perp symbol, e.g. 'BTCUSDT' (case/space-insensitive). Resolves the cross-venue aggregate.",
      "title": "Symbol",
      "type": "string"
    },
    "kind": {
      "default": "all",
      "description": "'vpin'/'all' (full /v1/flow snapshot, default) | 'cvd' (/v1/cvd series) | 'sweeps' (/v1/sweeps) | 'cross' (/v1/cross_flow origin). Empty/unknown → menu.",
      "title": "Kind",
      "type": "string"
    }
  },
  "title": "get_flowArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_flowDictOutput"
}
🟢get_heatmap(symbol)

Liquidation-heatmap matrix for a symbol — price levels where leveraged positions cluster and are likely force-liquidated (price-magnet zones / liquidity pools). Anticipate where a move may accelerate or stall. Market DATA, not advice; a symbol with no clustering returns an empty matrix (normal, not an error). Routes: /v1/heatmap/{symbol}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Perp symbol, e.g. 'BTCUSDT' (case/space-insensitive).",
      "title": "Symbol",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "title": "get_heatmapArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_heatmapDictOutput"
}
🟢get_context(kind, symbol)

Contextual market reads, grouped by `kind`. kind='regime'=market-regime labels (/v1/regime, market-wide, no symbol needed); 'phase'=move-lifecycle / entry-timing for a symbol (/v1/phase, premium+); 'derivatives'=normalized cross-exchange funding/OI/basis summary (/v1/derivatives); 'funding'=PER-VENUE funding+OI (/v1/funding); 'squeeze'=liquidation-cascade proximity (/v1/squeeze); 'intel'=per-symbol aggregated signal-quality roll-up (/v1/intel). Market DATA / context, NOT advice and NOT a win-rate. Empty/unknown kind → a menu of kinds.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "default": "",
      "description": "'regime' (market-wide, /v1/regime) | 'phase' (/v1/phase) | 'derivatives' (/v1/derivatives) | 'funding' (/v1/funding) | 'squeeze' (/v1/squeeze) | 'intel' (/v1/intel). Empty/unknown → menu.",
      "title": "Kind",
      "type": "string"
    },
    "symbol": {
      "default": "",
      "description": "Perp symbol, e.g. 'BTCUSDT' (required for every kind EXCEPT 'regime', which is market-wide). Case/space-insensitive.",
      "title": "Symbol",
      "type": "string"
    }
  },
  "title": "get_contextArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_contextDictOutput"
}
🟢get_whales(symbol, kind, window, exchange)

Large-player / forced-flow intel, grouped by `kind`. kind='whales' (default)=recent large ('whale') prints for a symbol, banded size+side (/v1/whales); kind='liquidations'=multi-exchange liquidation prints over a rolling window, long-liq vs short-liq notional bands per venue (/v1/liquidations; empty symbol = market-wide top movers by liq notional). Raw notional is banded. Market DATA, NOT a signal/advice. Empty/unknown kind → a menu of kinds.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "default": "",
      "description": "Perp symbol, e.g. 'BTCUSDT' (case/space-insensitive). Required for kind='whales'; empty for kind='liquidations' = market-wide top movers.",
      "title": "Symbol",
      "type": "string"
    },
    "kind": {
      "default": "whales",
      "description": "'whales' (default, /v1/whales) | 'liquidations' (/v1/liquidations). Empty/unknown → menu.",
      "title": "Kind",
      "type": "string"
    },
    "window": {
      "default": 60,
      "description": "Liquidations lookback seconds, 1-300 (kind='liquidations' only; clamped). Default 60.",
      "title": "Window",
      "type": "integer"
    },
    "exchange": {
      "default": "",
      "description": "Liquidations venue filter (kind='liquidations' only): '' / 'all' for the full market, or a single major CEX. Unknown venue = error.",
      "title": "Exchange",
      "type": "string"
    }
  },
  "title": "get_whalesArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_whalesDictOutput"
}
🟢get_market(kind, symbol, limit)

Whole-market reads, grouped by `kind`. kind='movers' (default)=top movers ranked (/v1/movers); 'overview'=whole-market roll-up — breadth / direction / activity (/v1/market); 'anomalies'=per-symbol or cross-market anomaly board (volume_spike/abnormal_spread/phantom_tick) with severity bands (/v1/anomalies). Cheap top-level CONTEXT to find what's MOVING before drilling into one symbol. Market DATA, NOT advice. Empty/unknown kind → a menu of kinds.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "default": "movers",
      "description": "'movers' (default, /v1/movers) | 'overview' (/v1/market) | 'anomalies' (/v1/anomalies). Empty/unknown → menu.",
      "title": "Kind",
      "type": "string"
    },
    "symbol": {
      "default": "",
      "description": "Anomalies single-symbol filter (kind='anomalies' only; empty = cross-market board). Case/space-insensitive.",
      "title": "Symbol",
      "type": "string"
    },
    "limit": {
      "default": 0,
      "description": "Max rows for movers (1-100, default 24) / anomalies (1-200, default 20); clamped server-side.",
      "title": "Limit",
      "type": "integer"
    }
  },
  "title": "get_marketArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_marketDictOutput"
}
🟢get_accuracy(kind, source, window)

Realized track-record (proof of edge, forward-only, Wilson-bounded), grouped by `kind`. kind='accuracy' (default)=source×boost first-TP win-rate + boost lift in the canonical TP1 frame (/v1/accuracy); kind='outcomes'=realized aggregate track-record over a window from resolved signal_outcomes, model-free (/v1/outcomes). Win-rate frame = P(price hit TP1 before SL), NOT realized PnL. Model internals never exposed. Empty/unknown kind → a menu of kinds.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "default": "accuracy",
      "description": "'accuracy' (default, /v1/accuracy) | 'outcomes' (/v1/outcomes). Empty/unknown → menu.",
      "title": "Kind",
      "type": "string"
    },
    "source": {
      "default": "",
      "description": "Source-family filter (kind='accuracy', client-side): '' = all | 'pump' | 'flow' | 'breakout' | 'unified' | 'other'.",
      "title": "Source",
      "type": "string"
    },
    "window": {
      "default": 0,
      "description": "Track-record window in days (kind='outcomes'; passed through to /v1/outcomes). 0 = endpoint default.",
      "title": "Window",
      "type": "integer"
    }
  },
  "title": "get_accuracyArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "get_accuracyDictOutput"
}
🟢account(kind)

Your mf_ key's account view, grouped by `kind`. kind='account' (default)=tier/product, weighted daily quota, used/remaining today, billing, prepaid balance (/v1/account); kind='usage'=today's count + cap AND the endpoint_weights map (exact per-call cost units, /v1/usage); kind='tiers'=the Flow data-product tier ladder, delivered-now vs roadmap (/v1/tiers). Read account/usage to self-throttle by your remaining quota. Empty/unknown kind → a menu of kinds.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "kind": {
      "default": "account",
      "description": "'account' (default, /v1/account) | 'usage' (/v1/usage — incl endpoint_weights) | 'tiers' (/v1/tiers). Empty/unknown → menu.",
      "title": "Kind",
      "type": "string"
    }
  },
  "title": "accountArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "accountDictOutput"
}
🟢backtest(symbol, entry, tp, sl, lookback_days, ...)

LAB / RESEARCH tool — replay an arbitrary {symbol, entry, tp, sl} setup over MidasFlow's 1m candle history and get its historical P(TP1-before-SL) + EV, in the canonical first-touch TP1 frame (same frame as get_accuracy). Historical market DATA, NOT a prediction or advice. Low-sample setups return a directional band (normal, not an error). NOTE: live results are gated behind ff:backtest_live — until that flips, EVERY tier gets a coming-soon envelope (no live numbers). Routes: POST /v1/backtest.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Perp symbol, e.g. 'BTCUSDT' (case/space-insensitive).",
      "title": "Symbol",
      "type": "string"
    },
    "entry": {
      "description": "Entry price; defines the TP/SL offsets replayed over historical anchors.",
      "title": "Entry",
      "type": "number"
    },
    "tp": {
      "description": "Take-profit price, or an ordered list of prices (nearest = TP1 banked first).",
      "title": "Tp"
    },
    "sl": {
      "description": "Stop-loss price. Direction (long/short) is inferred from tp/sl vs entry.",
      "title": "Sl",
      "type": "number"
    },
    "lookback_days": {
      "default": 30,
      "description": "Historical window to sample anchors from, in days (clamped 7-90). Default 30.",
      "title": "Lookback Days",
      "type": "integer"
    },
    "max_hold_min": {
      "default": 240,
      "description": "Forward first-touch window per anchor in minutes (clamped 15-1440). Default 240. Timeout anchors are excluded from p, not losses.",
      "title": "Max Hold Min",
      "type": "integer"
    }
  },
  "required": [
    "symbol",
    "entry",
    "tp",
    "sl"
  ],
  "title": "backtestArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "backtestDictOutput"
}
🟢analyze(symbol, lang)

LAB / RESEARCH tool — the full MidasFlow AI-Analyst report for a symbol: a synthesized narrative fusing flow, derivatives, levels, regime and signal context into a human-readable read RIGHT NOW. This is the HEAVIEST call (composes many sub-feeds) so it costs MORE units and requires a TOP tier; call it sparingly, AFTER cheaper context tools. Market DATA / AI-generated analytics, NOT financial advice. Routes: /v1/analyze/{symbol}.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "symbol": {
      "description": "Perp symbol, e.g. 'BTCUSDT' (case/space-insensitive).",
      "title": "Symbol",
      "type": "string"
    },
    "lang": {
      "default": "en",
      "description": "Report language, e.g. 'en' | 'ru' | 'uk' | 'es' (BCP-47-ish). Default 'en'.",
      "title": "Lang",
      "type": "string"
    }
  },
  "required": [
    "symbol"
  ],
  "title": "analyzeArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "analyzeDictOutput"
}
🟢calc_ev(win_rate_pct, avg_win_pct, avg_loss_pct, stake_usd)

LAB tool — pure local expected-value calculator over a win-rate and average win/loss percentages. No network, no advice, 0 units. Feed a get_accuracy bucket win-rate (or a score_symbol band) to reason about expectation per trade.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "win_rate_pct": {
      "description": "Probability of a winning trade, in percent (0–100). Feed from a get_accuracy bucket win-rate.",
      "title": "Win Rate Pct",
      "type": "number"
    },
    "avg_win_pct": {
      "description": "Average gain on a win, in percent (e.g. 2.0 = +2%).",
      "title": "Avg Win Pct",
      "type": "number"
    },
    "avg_loss_pct": {
      "description": "Average loss on a loss, in percent magnitude (e.g. 1.5 = -1.5%). Sign is ignored.",
      "title": "Avg Loss Pct",
      "type": "number"
    },
    "stake_usd": {
      "default": 100,
      "description": "Notional stake to scale EV into dollars. Default 100.",
      "title": "Stake Usd",
      "type": "number"
    }
  },
  "required": [
    "win_rate_pct",
    "avg_win_pct",
    "avg_loss_pct"
  ],
  "title": "calc_evArguments"
}

Ausgabe-Schema

{
  "type": "object",
  "additionalProperties": true,
  "title": "calc_evDictOutput"
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet14 Tools
verifiziertVersion nicht aufgezeichnet14 Tools