# io.github.midasflowai-lab/midasflow-mcp-quickstart (remote · mcp.midasflow.ai)

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

- Trust score: 82/100 (high trust)
- Change this week: +8
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.midasflow.ai`: 82/100 (this document), [markdown](https://verifymcp.io/servers/midasflowai-lab-midasflow-mcp-quickstart/mcp.md), [page](https://verifymcp.io/servers/midasflowai-lab-midasflow-mcp-quickstart/mcp)

## Channel facts

- Endpoint: `https://mcp.midasflow.ai/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

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. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 94/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 77/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - 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.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http midasflowai-lab-midasflow-mcp-quickstart https://mcp.midasflow.ai/mcp
```

### Codex

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

### OpenClaw

```bash
openclaw mcp add midasflowai-lab-midasflow-mcp-quickstart --url https://mcp.midasflow.ai/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  midasflowai-lab-midasflow-mcp-quickstart:
    url: "https://mcp.midasflow.ai/mcp"
```

### Other

```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 recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 82, +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.

### 2026-07-31 (score 81, +6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 75, −1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 76, +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.

### 2026-07-28 (score 75, +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.

### 2026-07-27 (score 74, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 74)

First indexed and scored.

## MCP tools (14)

### `get_signals` (~275 tokens)

Get Flow signals (live feed / elite crown)

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.

Input parameters:

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

### `score_symbol` (~248 tokens)

Score symbol (calibrated P(TP1) + plan + 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`.

Input parameters:

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

### `get_candles` (~187 tokens)

Get OHLCV candles (price history)

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

Input parameters:

- `limit` (integer): Max bars, newest last (1-1000; clamped server-side). Default 200.
- `symbol` (string, required): Perp symbol, e.g. 'BTCUSDT' (case/space-insensitive).
- `tf` (string): Timeframe / bar size, e.g. '1m' | '5m' | '15m' | '1h' | '4h' | '1d'. Default '1h'.

### `get_orderbook` (~199 tokens)

Get order-book snapshot (walls / imbalance + S/R)

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

Input parameters:

- `include_sr` (boolean): If true (default), fold support/resistance + Fibonacci levels (/v1/sr) into the response under `sr`. Set false to skip.
- `sr_timeframe` (string): Timeframe for the folded S/R computation. Default '1h'.
- `symbol` (string, required): Perp symbol, e.g. 'BTCUSDT' (case/space-insensitive). Resolves the cross-venue aggregate.

### `get_flow` (~245 tokens)

Get order-flow (cvd / sweeps / cross / vpin) [grouped]

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.

Input parameters:

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

### `get_heatmap` (~109 tokens)

Get liquidation heatmap (price-magnet zones)

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

Input parameters:

- `symbol` (string, required): Perp symbol, e.g. 'BTCUSDT' (case/space-insensitive).

### `get_context` (~275 tokens)

Get context (regime / phase / derivatives / funding / squeeze / intel) [grouped]

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.

Input parameters:

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

### `get_whales` (~284 tokens)

Get whales / liquidations (large-print intel) [grouped]

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.

Input parameters:

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

### `get_market` (~237 tokens)

Get market board (movers / overview / anomalies) [grouped]

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.

Input parameters:

- `kind` (string): 'movers' (default, /v1/movers) | 'overview' (/v1/market) | 'anomalies' (/v1/anomalies). Empty/unknown → menu.
- `limit` (integer): Max rows for movers (1-100, default 24) / anomalies (1-200, default 20); clamped server-side.
- `symbol` (string): Anomalies single-symbol filter (kind='anomalies' only; empty = cross-market board). Case/space-insensitive.

### `get_accuracy` (~229 tokens)

Get accuracy / outcomes (proof of edge) [grouped]

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.

Input parameters:

- `kind` (string): 'accuracy' (default, /v1/accuracy) | 'outcomes' (/v1/outcomes). Empty/unknown → menu.
- `source` (string): Source-family filter (kind='accuracy', client-side): '' = all | 'pump' | 'flow' | 'breakout' | 'unified' | 'other'.
- `window` (integer): Track-record window in days (kind='outcomes'; passed through to /v1/outcomes). 0 = endpoint default.

### `account` (~166 tokens)

Account (tier / quota / balance / usage / tiers) [grouped]

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.

Input parameters:

- `kind` (string): 'account' (default, /v1/account) | 'usage' (/v1/usage — incl endpoint_weights) | 'tiers' (/v1/tiers). Empty/unknown → menu.

### `backtest` (~292 tokens)

[LAB] Backtest a setup (historical P(TP1 before SL) + EV)

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.

Input parameters:

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

### `analyze` (~171 tokens)

[LAB] Analyze symbol (AI-Analyst report — heaviest)

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

Input parameters:

- `lang` (string): Report language, e.g. 'en' | 'ru' | 'uk' | 'es' (BCP-47-ish). Default 'en'.
- `symbol` (string, required): Perp symbol, e.g. 'BTCUSDT' (case/space-insensitive).

### `calc_ev` (~173 tokens)

[LAB] Calculate expected value (local analytics, no network)

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.

Input parameters:

- `avg_loss_pct` (number, required): Average loss on a loss, in percent magnitude (e.g. 1.5 = -1.5%). Sign is ignored.
- `avg_win_pct` (number, required): Average gain on a win, in percent (e.g. 2.0 = +2%).
- `stake_usd` (number): Notional stake to scale EV into dollars. Default 100.
- `win_rate_pct` (number, required): Probability of a winning trade, in percent (0–100). Feed from a get_accuracy bucket win-rate.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/midasflowai-lab-midasflow-mcp-quickstart/mcp#diagnostics

## Score history

- 2026-08-03: 82
- 2026-08-02: 81
- 2026-08-01: 81
- 2026-07-31: 81
- 2026-07-30: 75
- 2026-07-29: 76
- 2026-07-28: 75
- 2026-07-27: 74
- 2026-07-26: 74

## Links

- Remote endpoint: https://mcp.midasflow.ai/mcp
- Repository: https://github.com/midasflowai-lab/midasflow-mcp-quickstart
- Website: https://midasflow.ai/docs/api
- Changelog RSS feed: https://verifymcp.io/servers/midasflowai-lab-midasflow-mcp-quickstart/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/midasflowai-lab-midasflow-mcp-quickstart/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/midasflowai-lab-midasflow-mcp-quickstart/mcp
