Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, email [email protected] and we’ll put it right.

io.github.midasflowai-lab/midasflow-mcp-quickstart

REMOTE · MCP.MIDASFLOW.AI · SCANNED AUG 3

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

Available components

+8 this week 82 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →

Endpoint Security94
Transport & Reachability100
Schema Quality & AI Usability77
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3310 tokens (~206/item across 16 items; 14 tools + 2 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
  • Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

remote · mcp.midasflow.ai

# add to Claude Code
claude mcp add --transport http midasflowai-lab-midasflow-mcp-quickstart https://mcp.midasflow.ai/mcp
# ~/.codex/config.toml
[mcp_servers.midasflowai-lab-midasflow-mcp-quickstart]
url = "https://mcp.midasflow.ai/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "midasflowai-lab-midasflow-mcp-quickstart": {
      "type": "remote",
      "url": "https://mcp.midasflow.ai/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add midasflowai-lab-midasflow-mcp-quickstart --url https://mcp.midasflow.ai/mcp --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  midasflowai-lab-midasflow-mcp-quickstart:
    url: "https://mcp.midasflow.ai/mcp"
// mcp.json
{
  "mcpServers": {
    "midasflowai-lab-midasflow-mcp-quickstart": {
      "type": "http",
      "url": "https://mcp.midasflow.ai/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 3 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 31 Jul 26 +6
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 −1
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 29 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Jul 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 27 Jul 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Jul 26 74

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 3 Aug 2026 · Probed https://mcp.midasflow.ai/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=midasflow.ai CN=WE1,O=Google Trust Services,C=US 30 Jul 2026 28 Oct 2026 ECDSA 256 ECDSA-SHA256 5b5fad1508063e3a0ecf9bf8dd8f7cd4
SANs: midasflow.ai, *.midasflow.ai
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b
DNSSEC insecure

Validation of mcp.midasflow.ai. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
ai. present 3799 8 Verified
midasflow.ai. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 200

WWW-Authenticate challenge Bearer resource_metadata="https://mcp.midasflow.ai/.well-known/oauth-protected-resource"

Bearer resource_metadata="https://mcp.midasflow.ai/.well-known/oauth-protected-resource"
Header Value
strict-transport-security max-age=31536000
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy same-origin

Protected resource metadata

Document https://mcp.midasflow.ai/.well-known/oauth-protected-resource
Retrieved Yes
Resource https://mcp.midasflow.ai/mcp
Authorisation server https://mcp.midasflow.ai
Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://mcp.midasflow.ai/mcp Verified 200
http (plaintext) http://mcp.midasflow.ai/mcp HTTPS enforced 301 https://mcp.midasflow.ai/mcp
MCP tools — 14 exposed · ~3,090 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
account ~166

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.

NameTypeReqDescription
kindstring'account' (default, /v1/account) | 'usage' (/v1/usage — incl endpoint_weights) | 'tiers' (/v1/tiers). Empty/unknown → menu.

Structured output declared, but exposes no named fields.

No examples provided.

analyze ~171

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}.

NameTypeReqDescription
langstringReport language, e.g. 'en' | 'ru' | 'uk' | 'es' (BCP-47-ish). Default 'en'.
symbolstringyesPerp symbol, e.g. 'BTCUSDT' (case/space-insensitive).

Structured output declared, but exposes no named fields.

No examples provided.

backtest ~292

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.

NameTypeReqDescription
entrynumberyesEntry price; defines the TP/SL offsets replayed over historical anchors.
lookback_daysintegerHistorical window to sample anchors from, in days (clamped 7-90). Default 30.
max_hold_minintegerForward first-touch window per anchor in minutes (clamped 15-1440). Default 240. Timeout anchors are excluded from p, not losses.
slnumberyesStop-loss price. Direction (long/short) is inferred from tp/sl vs entry.
symbolstringyesPerp symbol, e.g. 'BTCUSDT' (case/space-insensitive).
tpyesTake-profit price, or an ordered list of prices (nearest = TP1 banked first).

Structured output declared, but exposes no named fields.

No examples provided.

calc_ev ~173

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.

NameTypeReqDescription
avg_loss_pctnumberyesAverage loss on a loss, in percent magnitude (e.g. 1.5 = -1.5%). Sign is ignored.
avg_win_pctnumberyesAverage gain on a win, in percent (e.g. 2.0 = +2%).
stake_usdnumberNotional stake to scale EV into dollars. Default 100.
win_rate_pctnumberyesProbability of a winning trade, in percent (0–100). Feed from a get_accuracy bucket win-rate.

Structured output declared, but exposes no named fields.

No examples provided.

get_accuracy ~229

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.

NameTypeReqDescription
kindstring'accuracy' (default, /v1/accuracy) | 'outcomes' (/v1/outcomes). Empty/unknown → menu.
sourcestringSource-family filter (kind='accuracy', client-side): '' = all | 'pump' | 'flow' | 'breakout' | 'unified' | 'other'.
windowintegerTrack-record window in days (kind='outcomes'; passed through to /v1/outcomes). 0 = endpoint default.

Structured output declared, but exposes no named fields.

No examples provided.

get_candles ~187

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}.

NameTypeReqDescription
limitintegerMax bars, newest last (1-1000; clamped server-side). Default 200.
symbolstringyesPerp symbol, e.g. 'BTCUSDT' (case/space-insensitive).
tfstringTimeframe / bar size, e.g. '1m' | '5m' | '15m' | '1h' | '4h' | '1d'. Default '1h'.

Structured output declared, but exposes no named fields.

No examples provided.

get_context ~275

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.

NameTypeReqDescription
kindstring'regime' (market-wide, /v1/regime) | 'phase' (/v1/phase) | 'derivatives' (/v1/derivatives) | 'funding' (/v1/funding) | 'squeeze' (/v1/squeeze) | 'intel' (/v1/intel). Empty/unknown → menu.
symbolstringPerp symbol, e.g. 'BTCUSDT' (required for every kind EXCEPT 'regime', which is market-wide). Case/space-insensitive.

Structured output declared, but exposes no named fields.

No examples provided.

get_flow ~245

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.

NameTypeReqDescription
kindstring'vpin'/'all' (full /v1/flow snapshot, default) | 'cvd' (/v1/cvd series) | 'sweeps' (/v1/sweeps) | 'cross' (/v1/cross_flow origin). Empty/unknown → menu.
symbolstringPerp symbol, e.g. 'BTCUSDT' (case/space-insensitive). Resolves the cross-venue aggregate.

Structured output declared, but exposes no named fields.

No examples provided.

get_heatmap ~109

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}.

NameTypeReqDescription
symbolstringyesPerp symbol, e.g. 'BTCUSDT' (case/space-insensitive).

Structured output declared, but exposes no named fields.

No examples provided.

get_market ~237

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.

NameTypeReqDescription
kindstring'movers' (default, /v1/movers) | 'overview' (/v1/market) | 'anomalies' (/v1/anomalies). Empty/unknown → menu.
limitintegerMax rows for movers (1-100, default 24) / anomalies (1-200, default 20); clamped server-side.
symbolstringAnomalies single-symbol filter (kind='anomalies' only; empty = cross-market board). Case/space-insensitive.

Structured output declared, but exposes no named fields.

No examples provided.

get_orderbook ~199

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`.

NameTypeReqDescription
include_srbooleanIf true (default), fold support/resistance + Fibonacci levels (/v1/sr) into the response under `sr`. Set false to skip.
sr_timeframestringTimeframe for the folded S/R computation. Default '1h'.
symbolstringyesPerp symbol, e.g. 'BTCUSDT' (case/space-insensitive). Resolves the cross-venue aggregate.

Structured output declared, but exposes no named fields.

No examples provided.

get_signals ~275

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.

NameTypeReqDescription
cursornumberPagination cursor (normal feed only) — pass 'next_cursor' from the previous page for older events (0 = newest).
limitintegerMax events to return (normal 1-200, elite 1-50; clamped server-side). Default 20.
qualitystring'normal' (default, /v1/signals/pull) | 'elite' (crown consensus feed, /v1/signals/elite, premium+).
sourcestringSource-family filter: '' / 'all' | 'pump' | 'flow' | 'mfb' (case/space-insensitive). Ignored when quality='elite'.
symbolstringSingle symbol filter, e.g. 'BTCUSDT' (empty = all symbols).

Structured output declared, but exposes no named fields.

No examples provided.

get_whales ~284

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.

NameTypeReqDescription
exchangestringLiquidations venue filter (kind='liquidations' only): '' / 'all' for the full market, or a single major CEX. Unknown venue = error.
kindstring'whales' (default, /v1/whales) | 'liquidations' (/v1/liquidations). Empty/unknown → menu.
symbolstringPerp symbol, e.g. 'BTCUSDT' (case/space-insensitive). Required for kind='whales'; empty for kind='liquidations' = market-wide top movers.
windowintegerLiquidations lookback seconds, 1-300 (kind='liquidations' only; clamped). Default 60.

Structured output declared, but exposes no named fields.

No examples provided.

score_symbol ~248

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`.

NameTypeReqDescription
directionstring'long' | 'short' — steers the plan ladder only; the P(TP1) score itself is direction-agnostic.
include_safetybooleanIf true (default), also fold a /v1/symbol/check feed-safety read into the response under `safety`. Set false to skip that extra call.
symbolstringyesPerp symbol, e.g. 'BTCUSDT' (case/space-insensitive). A calibrated score exists only for recently-evaluated symbols; most return p_tp1_band=null (valid).

Structured output declared, but exposes no named fields.

No examples provided.