# f1ow (remote · mcp.f1ow.com)

Crypto market data & research MCP: price, derivatives, on-chain, sentiment, news, catalysts.

- Trust score: 76/100 (medium)
- Change this week: +2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-21

## Components

- remote · `mcp.f1ow.com`: 36/100, [markdown](https://verifymcp.io/servers/com-f1ow-f1ow/mcp.md), [page](https://verifymcp.io/servers/com-f1ow-f1ow/mcp)
- remote · `mcp.f1ow.com`: 76/100 (this document), [markdown](https://verifymcp.io/servers/com-f1ow-f1ow/x402.md), [page](https://verifymcp.io/servers/com-f1ow-f1ow/x402)

## Channel facts

- Endpoint: `https://mcp.f1ow.com/x402`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.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-09-21.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 30 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 70/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 4802 tokens (~160/item across 30 items; 30 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 99/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 98% of tool parameters carry a description.
  - Structured output schemas are declared (40% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 30 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 30 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the f1ow MCP server?

f1ow is a hosted endpoint at https://mcp.f1ow.com/x402, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-f1ow-f1ow 'https://mcp.f1ow.com/x402'
```

### Cursor

```json
{
  "mcpServers": {
    "com-f1ow-f1ow": {
      "url": "https://mcp.f1ow.com/x402"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-f1ow-f1ow": {
      "type": "http",
      "url": "https://mcp.f1ow.com/x402"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-f1ow-f1ow]
url = "https://mcp.f1ow.com/x402"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-f1ow-f1ow": {
      "type": "remote",
      "url": "https://mcp.f1ow.com/x402",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-f1ow-f1ow --url 'https://mcp.f1ow.com/x402' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-f1ow-f1ow:
    url: "https://mcp.f1ow.com/x402"
```

### Netclaw

```json
{
  "McpServers": {
    "com-f1ow-f1ow": {
      "Transport": "http",
      "Url": "https://mcp.f1ow.com/x402"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-f1ow-f1ow -t streamable-http -u 'https://mcp.f1ow.com/x402'
```

### Other

```json
{
  "mcpServers": {
    "com-f1ow-f1ow": {
      "type": "http",
      "url": "https://mcp.f1ow.com/x402"
    }
  }
}
```

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-09-20 (score 76, 0)

- [security] Tool “news_search” rewrote its description, which is the text the model reads

### 2026-09-18 (score 76, +1)

- [security] Stability: 0.97 → pass

### 2026-09-16 (score 75, +1)

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

### 2026-09-14 (score 74, +1)

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

### 2026-09-11 (score 73, +1)

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

### 2026-09-09 (score 72, +1)

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

### 2026-09-07 (score 71, +1)

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

### 2026-09-05 (score 70, +1)

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

## MCP tools (30)

### `catalysts_calendar` (~63 tokens)

Catalyst Calendar

Lists upcoming crypto catalyst events for the next 7 days. Optionally filter by comma-separated coin IDs (e.g. 'bitcoin,ethereum').

Input parameters:

- `coins` (string): Comma-separated coin IDs, e.g. 'bitcoin,ethereum'. Omit for all coins.

### `catalysts_economic_calendar` (~102 tokens)

Economic Calendar

Scheduled macroeconomic data releases (CPI, FOMC, jobs, GDP, etc.) from the last ~2 days through the next 7 days. Optionally set 'min_importance' (1-3, default 2) to filter out low-impact releases.

Input parameters:

- `min_importance` (integer): Minimum importance level to include: 1 (all), 2 (medium+), 3 (high only). Defaults to 2.

### `catalysts_etf_flows` (~152 tokens)

ETF Flows

Recent daily spot-ETF net flows (USD) for an underlying asset (BTC, ETH, SOL, XRP; defaults to BTC): latest day total, per-fund breakdown, and the trailing daily trend. Positive means net inflows. Flows settle behind spot and skip weekends, so the latest row is routinely a day or more old — its age is reported next to the date, and the price it carries is the price on THAT date, not spot. 'symbol' is accepted as an alias for 'asset'.

Input parameters:

- `asset` (string): Underlying asset symbol, e.g. "BTC" or "ETH". Defaults to BTC.
- `symbol` (string): Alias for 'asset'.

### `derivatives_open_interest` (~245 tokens)

Open Interest

Current market-wide (cross-exchange aggregate) open interest (USD) for one coin's perpetuals, with its 24h and 7d change, the 24h price change, AND the underlying 4h-bucket series. Read OI against price: price up on rising OI is new money opening positions, price up on falling OI is short covering — opposite trades off the same price move. The series makes that read available bucket by bucket instead of once per day (pair it with market_candles at 4h for the price leg), and carries the window's own low/high so the current level can be judged against where it has actually been. Falls back to a single-venue figure if the aggregate source is offline. Set 'points' to trim the series (omit for the full ~10-day window; 0 to suppress it).

Input parameters:

- `points` (integer): How many of the newest 4h buckets to emit. Omit for the full window (60 points ~ 10 days); 0 suppresses the series and returns the summary only.
- `symbol` (string, required): Coin symbol, e.g. "BTC".

### `events_prediction_odds` (~78 tokens)

Prediction Market Odds

Market-implied prediction-market odds for a topic (e.g. 'Fed rate cut', 'bitcoin 100k'). Returns the most active matching markets with per-outcome probabilities, volume, and resolution date.

Input parameters:

- `query` (string, required): Topic to match against market questions, e.g. 'Fed', 'bitcoin', 'ETH ETF'.

### `filings_search` (~72 tokens)

Regulatory Filings Search

Searches recent regulatory filings (full-text) for a company, ticker, or theme (e.g. 'bitcoin treasury'). Returns the most recent matching filings with form type, filer, and a direct document link.

Input parameters:

- `query` (string, required): Free-text query, e.g. a company name, ticker, or theme.

### `flow_orderbook` (~97 tokens)

Order Book Snapshot

Order-book snapshot for one coin's perpetuals: best bid/ask, spread in bps, top-of-book depth (USD) per side, and bid/ask depth imbalance. Positive imbalance means more bid depth. Single-venue by nature — Hyperliquid, falling back to Bybit for coins it doesn't list; the response names the venue that answered.

Input parameters:

- `symbol` (string, required): Coin symbol, e.g. "BTC".

Output parameters:

- `asOfAt` (string): Order-book timestamp, ISO-8601 UTC
- `asOfMs` (integer): Order-book timestamp, Unix epoch milliseconds
- `askDepthUsd` (number): Top-of-book ask depth, USD
- `bestAskUsd` (number): Best ask price, USD
- `bestBidUsd` (number): Best bid price, USD
- `bidDepthUsd` (number): Top-of-book bid depth, USD
- `imbalancePct` (number): Signed bid-vs-ask depth skew in percentage points (positive = more bids)
- `midPriceUsd` (number): Mid price, USD
- `source` (string): Venue that served the book
- `spreadBps` (number): Bid/ask spread, basis points of mid
- `symbol` (string)

### `flow_whale_context` (~167 tokens)

Whale Flow Context

Aggregate whale context for one coin (cohort-level, no individual wallets): per-exchange reserve changes (1d/7d), top-trader long/short positioning on Binance perps, and large on-chain transfers to/from exchange wallets above a USD threshold. The transfer feed covers ERC-20 tokens; for native assets (BTC, ETH) it substitutes market-wide USDT exchange flows as a dry-powder signal. Exchange withdrawals suggest accumulation; deposits suggest potential sell pressure. For specific whale wallets and their live positions use flow_whale_positions.

Input parameters:

- `min_usd` (number): Minimum transfer size in USD to count as a whale transfer. Defaults to 1000000.
- `symbol` (string, required): Coin symbol, e.g. "BTC" or "ETH".

### `flow_whale_positions` (~129 tokens)

Whale Positions

Live whale positions on Hyperliquid perps. By default discovers the largest currently-active whale accounts from the venue leaderboard and returns each one's equity and open positions with side, notional (USD), entry price, liquidation price, leverage and unrealized PnL. Optionally pass 'addresses' (comma-separated 0x wallets, max 10) to follow specific wallets instead. For aggregate cohort signals use flow_whale_context.

Input parameters:

- `addresses` (string): Optional comma-separated 0x wallet addresses to inspect (max 10). Omit to auto-discover the biggest live whales.

Output parameters:

- `accounts` (array)

### `funding_current` (~236 tokens)

Current Funding Rates

Current perpetual funding rate for one coin (hourly rate plus an annualized estimate), merged across providers, with its 24h and 7d trajectory AND the underlying 8h-bucket series. Positive means longs pay shorts. The trajectory is the point: the same +6% annualized reads as post-flush relief if it fell from +40% and as shorts capitulating if it rose from -20%. The series carries the shape a trailing delta flattens away — a steady drift and a spike that retraced give the same 24h change off opposite tapes — plus the window's own low/high, so the current rate can be judged against where it has actually been rather than an absolute threshold. Set 'points' to trim the series (omit for the full ~10-day window; 0 to suppress it).

Input parameters:

- `points` (integer): How many of the newest 8h buckets to emit. Omit for the full window (30 points ~ 10 days); 0 suppresses the series and returns the summary only.
- `symbol` (string, required): Coin symbol, e.g. "BTC".

### `market_candles` (~300 tokens)

Price Candles

OHLC(V) candle history for a coin by symbol (e.g. 'ETH', 'BTC'). 'interval' picks the candle size (1m|5m|15m|30m|1h|4h|12h|1d|1w, default 1d); 'limit' the number of candles (default 100, max 400); 'market' picks the series — 'spot' (Binance, Bybit, then CoinGecko/CoinMarketCap), 'perp' (Hyperliquid, Bybit, then Binance futures — perpetual marks), or 'auto' (default: spot preferred, perp fallback). spot/perp are hard constraints and error rather than substitute. The response labels the market, interval and source actually delivered, includes USD volume when the source carries it, and flags a still-forming last candle.

Input parameters:

- `days` (integer): DEPRECATED: trailing window in days; use interval+limit instead. Ignored when interval is given.
- `interval` (string): Candle size. Default 1d.
- `limit` (integer): Number of candles, newest last. Default 100, max 400.
- `market` (string): Which market's series: spot exchange trades, perpetual-futures marks, or auto (spot preferred, perp fallback). Default auto.
- `symbol` (string, required): Coin symbol, e.g. 'ETH' or 'BTC'

Output parameters:

- `candles` (array)
- `coinId` (string): Identifier the answering provider queried
- `interval` (string): Candle size actually delivered, e.g. '4h'
- `lastCandleIsPartial` (boolean): True when the newest candle is still forming; exclude it from indicator math
- `market` (string): 'spot' or 'perp' — which market the series describes
- `source` (string): Provider that answered

### `market_coin_details` (~133 tokens)

Coin Details

Fetches price, market cap, ATH/ATL and description for a coin by its CoinGecko coin ID (e.g. 'bitcoin', 'ethereum') or by ticker symbol (e.g. 'BTC', 'WAVES'). IDs are case-sensitive; a symbol, or an ID in the wrong case, is resolved by search and the response names the ID actually fetched, so a resolution is never silent.

Input parameters:

- `coin_id` (string, required): CoinGecko coin ID (e.g. 'bitcoin') or ticker symbol (e.g. 'BTC'). IDs are case-sensitive; symbols are resolved by search.

### `market_coins` (~20 tokens)

Supported Coins

Lists the coin symbols available from the market-data provider

### `market_overview` (~34 tokens)

Market Overview

Global market snapshot: total market cap, BTC/ETH dominance, Fear & Greed index, and Altcoin Season index

Output parameters:

- `altcoinSeasonIndex` (integer): Altcoin Season index, 0-100
- `btcDominancePct` (number): BTC dominance in percentage points
- `ethDominancePct` (number): ETH dominance in percentage points
- `fearGreedLabel` (string)
- `fearGreedValue` (integer): Fear & Greed index, 0-100
- `totalMarketCapUsd` (number): Total crypto market cap, USD
- `totalVolume24hUsd` (number): Total 24h volume, USD

### `market_quotes` (~117 tokens)

Market Quotes

Per-coin market snapshot (spot price, perpetual mark price, 24h change, funding rate, open interest, long/short ratio, 24h liquidations), merged across providers. Spot and perp prices are separate fields (spot from spot-market providers, perp mark from the perp venue); they differ by the basis. Pass 'symbols' to filter to specific coins; omit it for every covered coin.

Input parameters:

- `symbols` (array): Coin symbols to include, e.g. ["BTC","ETH"]. Omit for all covered coins.

Output parameters:

- `quotes` (array)

### `market_top_movers` (~28 tokens)

Top Movers

Ranked 24h gainers, losers, and trend candidates (>+5% move)

### `market_trending` (~15 tokens)

Trending Coins

Lists the currently trending cryptocurrencies

### `news_search` (~55 tokens)

Crypto News Search

Searches for recent news on a topic — articles, market-moving posts and exchange announcements, newest first. Each item is tagged with its kind and, where measured, the price move that followed the headline.

Input parameters:

- `query` (string, required)

### `onchain_metrics` (~103 tokens)

On-Chain Metrics

On-chain TVL and network fees/revenue (24h/7d/30d) for one chain. Use a chain's own token symbol (e.g. 'ETH', 'SOL', 'BNB') — returns a plain 'not a tracked chain' message for tokens that aren't L1/L2s. Does not cover gas price (gwei).

Input parameters:

- `symbol` (string, required): Chain token symbol, e.g. 'ETH' or 'SOL'

### `providers_health` (~17 tokens)

Data Provider Health

Reports the health of each connected data provider

### `research_opportunities` (~813 tokens)

Opportunity Scan

Cross-sectional opportunity scan across every major and medium-cap coin at once — the screener the per-coin tools cannot be looped into safely. Two whole-universe feeds (the merged market snapshot + venue perp contexts) build a liquidity-filtered universe and rank it, then candles are fetched for a bounded shortlist only; ZERO per-symbol calls are made to the rate-limited derivatives provider, which is what lets this cover a universe without silently degrading. Up to six signals per candidate: crowding (annualized funding vs the venue-standard anchor AND its percentile across the screened universe right now — a cross-sectional read, explicitly NOT the own-history percentile research_positioning reports), stress (24h liquidations as a share of open interest — whether forced sellers already cleared), leverage (open interest as a share of market cap — the gap-through-your-stop condition), compression (4h Bollinger bandwidth ranked against the coin's own trailing window — the per-coin form of the reading research_regime computes for BTC alone; says energy is loading, never direction), trend (ADX with the +DI/-DI separation on 4h, confirmed against 1d — the vote is withheld unless the slow timeframe agrees), and location (distance from the 4h EMA20 in ATR units — an extended coin scores DOWN, because a chase is not a setup). Each signal reports its state, the numbers, and a +1/0/-1 setup-quality vote; the setup name and score come from a disclosed rule shipped with every scan. Candidates carry ATR-and-structure geometry — a resting-limit entry at the EMA20 (never at market), a stop a full 2 ATR beyond it, and a target shaded inside the first structural level — priced so it feeds risk_position_size directly. 'tier' filters major/medium/all; 'limit' caps the ranked list; 'symbols' narrows the universe to specific coins, and every symbol named there is accounted for individually in the response — selected, excluded by your own tier filter, below the liquidity floors (never…

Input parameters:

- `intervals` (array): The timeframe pair to analyse, FINEST FIRST: [fast] or [fast, slow]. Default ["4h","1d"]. This is the most consequential argument: entry, stop, target, ATR and every AT STRUCTURE verdict are measured…
- `limit` (integer): Ranked candidates to return. Default 10, max 25.
- `symbols` (array): Optional: narrow the universe to these coin symbols, e.g. ["SOL","AVAX"]. Omit to screen everything that clears the tier and liquidity floors.
- `tier` (string): Size tier to screen: 'major' (market cap >= $10B), 'medium' ($300M-$10B), or 'all' (default).

Output parameters:

- `candidates` (array)
- `caveats` (array): What the scan cannot see, stated rather than implied
- `coverage` (object): What the scan actually looked at — read this before treating an empty candidate list as a quiet market
- `requestedSymbols` (array): One entry per symbol named in the 'symbols' argument, so a symbol missing from 'candidates' can be explained. Empty when no symbols were named. A status other than 'selected' means no band was applie…
- `rule` (string): The exact rule that produced setup and score

### `research_positioning` (~502 tokens)

Positioning Analysis

Deterministic positioning read for one coin — the game-state companion to research_regime, answering 'who is crowded, who is paying, who is trapped, and where'. Up to nine axes, each tagged with the market-actor cohort it reads: crowding (annualized funding vs the venue-standard 0.01%/8h anchor, long/short skew, dollars/day the majority pays to hold, crowd-vs-top-trader divergence, and cross-venue funding dispersion), buildup (24h price vs open-interest direction and the funding trend — whether positions are being added into the move or closed out), liquidity (order-book spread and imbalance — makers backing off), basis (perp vs oracle premium — spot-perp froth or hedging pressure, informational), fragility (24h liquidations as a share of market-wide open interest; the axis degrades rather than substituting a single venue's OI, since the liquidation total is cross-exchange), predation (visible Hyperliquid whale positions within 2 daily sigmas of their liquidation price, with defending book depth), trap (share of tracked whale notional underwater on the funding-paying side — attrition fuel), house book (Hyperliquid HLP LP-vault inventory, summed across its child sub-vaults — the literal venue counterparty, so the inventory it carries mirrors how traders are crowded; measured as net over its own gross book, since a market maker's net is a rounding error against venue open interest; informational), and disagreement (the most liquid matching prediction market, volume-gated, informational). Each axis reports its state, the numbers, and a +1/0/-1 fragility vote (+1 clean, -1 crowded/fragile); the stance is the disclosed sum-of-votes rule. Also returns a one-line 'farmed' synthesis (which cohort the board is currently farming, or an explicit statement that none is), focal points — reachable liquidation and breakeven price levels the whole market can see — and 'would change the call' thresholds a polling agent can watch statelessly. Reports the board, not a direction: crow…

Input parameters:

- `symbol` (string, required): Coin symbol, e.g. "BTC" or "ETH".

Output parameters:

- `axes` (array)
- `axesComputed` (integer)
- `axesTotal` (integer)
- `farmed` (string): One-line synthesis of which cohort the board is currently farming. Always populated: when no cohort clears the trap/crowding/predation bars it says so explicitly and names who is paying the carry.
- `focalPoints` (array): Price levels that are common knowledge on the board, nearest to spot first
- `stance` (string): Overall positioning-fragility label
- `stanceRule` (string): The exact rule that produced stance
- `symbol` (string)
- `thresholds` (array): The wouldChange lines in machine-readable form for stateless alerting
- `wouldChange` (array): Thresholds that would flip an axis, as prose

### `research_regime` (~277 tokens)

Market Regime

Deterministic market-regime classification across seven axes: trend (Mayer Multiple bands vs the 200-day SMA), volatility (30d realized, percentile vs own history), cycle (a ~30-indicator top checklist incl. MVRV Z-Score, NUPL, Pi Cycle, AHR999), sentiment (Fear & Greed level, trajectory and percentile), leverage stress (derivatives-risk-index percentile), liquidity (7d spot-ETF net flows vs prior 7d), and rotation (Altcoin Season index, BTC dominance, ETH/BTC 30d). Each axis reports its state, the numbers behind it, and a +1/0/-1 vote; the overall posture is the disclosed sum-of-votes rule, with one exception — while 30d realized volatility sits at or below its 5th percentile the tape is compressed, trend structure stops being tradeable, and the Trend axis's vote is withheld (its reading is still reported). Compression is flagged structurally, and adds an informational, never-voting asymmetry lean naming which side is more exposed. Includes explicit 'would change the call' thresholds to watch. Rule-based and deterministic — same inputs, same read. Useful as a first call: most other signals (funding, sentiment, flows) read differently depending on this regime.

Output parameters:

- `asymmetry` (object): Which side is more exposed while compressed; a lean with a stated confidence, never a vote. Absent unless the tape is compressed and at least two of its inputs are meaningful
- `axes` (array)
- `axesComputed` (integer)
- `axesTotal` (integer)
- `compressed` (boolean): 30d realized vol at or below its 5th percentile — while true the Trend axis contributes 0 to the posture whatever its state
- `posture` (string): Overall risk-posture label
- `postureRule` (string): The exact rule that produced posture
- `volatilityPercentile` (number): 30d realized-vol percentile vs own history; absent when no candle history was available, which is not the same as not compressed
- `wouldChange` (array): Thresholds that would flip an axis

### `research_token_view` (~191 tokens)

Token Deep Dive

Aggregated single-coin dossier: market data (spot/perp price, funding, market-wide OI, long/short, liquidations — the same enriched line as market_quotes), global market context (dominance, Fear & Greed), multi-timeframe technicals computed in-house from candles (4h + 1d: RSI, EMA/SMA, MACD, ATR, Bollinger, ADX, trend — the same numbers as ta_technicals), on-chain TVL/fees (when the symbol is a tracked chain), news, a grounded narrative synthesis with citations, upcoming catalyst events, social sentiment, ETF flows, prediction-market odds, live provider coverage, and a per-section status list that distinguishes an empty section from a failed feed — for one symbol (e.g. 'ETH').

Input parameters:

- `symbol` (string, required): Coin symbol, e.g. 'ETH' or 'BTC'

Output parameters:

- `catalysts` (array)
- `etfFlow` (object)
- `market` (object): Same shape as one market_quotes item; omitted when no provider covers the symbol
- `marketContext` (object): Same shape as market_overview
- `narrative` (object)
- `news` (array)
- `onChain` (object)
- `predictionMarkets` (array)
- `providerCoverage` (array)
- `sections` (array): Per-section outcome, so an empty section can be told apart from a failed feed. Check this before reading an empty array as a real absence.
- `social` (object)
- `symbol` (string)
- `technicals` (array): In-house per-timeframe snapshots; same item shape as ta_technicals's timeframes. Empty when no timeframe could be analyzed.

### `risk_position_size` (~183 tokens)

Position Sizing

Fixed-fractional position sizing — a local calculation, not a data-provider lookup. Given account_size, risk_percent, entry and stop, returns position size in units, notional, implied leverage, stop distance, and — if a target is given — the reward:risk ratio. Direction (long/short) is inferred from the stop's side of entry. Deterministic: same inputs always give the same result.

Input parameters:

- `account_size` (number, required): Total account equity in USD
- `entry` (number, required): Planned entry price
- `risk_percent` (number, required): Percent of the account to risk if the stop is hit, e.g. 1 for 1%
- `stop` (number, required): Stop-loss price (below entry = long, above = short)
- `target` (number): Optional take-profit price, used only to report reward:risk

Output parameters:

- `direction` (string): long or short, inferred from the stop's side of entry
- `impliedLeverage` (number): Notional / account equity as a multiple (3.5 = 3.5x)
- `positionNotionalUsd` (number): Position notional, USD
- `positionSizeUnits` (number): Position size in base-asset units
- `rewardRiskRatio` (number): Reward:risk ratio; omitted when no target was given
- `riskAmountUsd` (number): Risk budget, USD
- `riskPerUnitUsd` (number): Risk per unit (|entry-stop|), USD
- `stopDistancePct` (number): Stop distance from entry in percentage points
- `warnings` (array)

### `sentiment_fear_greed` (~48 tokens)

Fear & Greed Index

Current market-wide Fear & Greed index (0-100 plus label), updated roughly every 15 minutes. A macro sentiment gauge; use market_overview for the full market snapshot.

### `sentiment_social` (~65 tokens)

Social Sentiment

Social-sentiment snapshot for one coin: galaxy score (0-100 composite), alt rank (lower is stronger), bullish sentiment %, 24h social volume, social dominance %, and 24h interactions.

Input parameters:

- `symbol` (string, required): Coin symbol, e.g. "BTC".

### `sentiment_twitter` (~181 tokens)

Twitter Sentiment

Searches Twitter/X and returns matching tweets with engagement (likes, retweets, replies, views) and author reach (followers, verified). Raw crowd voice for judging social sentiment on a coin or topic. Sorted by relevance; set latest=true for the newest tweets instead.

Input parameters:

- `latest` (boolean): Return the newest tweets instead of top-relevance. Defaults to false.
- `limit` (integer): Max tweets to return (1-50). Defaults to 10.
- `minLikes` (integer): Only tweets with at least this many likes. Useful for cutting spam in top-relevance mode; avoid combining with latest=true (brand-new tweets have no likes yet, so it returns nothing). Defaults to 0.
- `query` (string, required): Search keywords, $cashtag or #hashtag, e.g. "$BTC" or "bitcoin etf".

Output parameters:

- `tweets` (array)

### `ta_technicals` (~335 tokens)

Technical Analysis

Multi-timeframe technical-analysis snapshot for one coin, computed locally from real candles (not a vendor black box): per interval — last close, RSI(14), EMA20/50/200 + SMA200, MACD(12,26,9) with signal/histogram/cross freshness, ATR(14) with 2xATR stop suggestions (feed risk_position_size), Bollinger(20,2) with %B and bandwidth, ADX(14) with +DI/-DI, volume vs 20-candle average, and a transparent trend rule (EMA alignment qualified by ADX). 'intervals' picks the timeframes (default 1h,4h,1d; max 4 of 1m|5m|15m|30m|1h|4h|12h|1d|1w); 'market' routes candles (spot|perp|auto, default auto: spot preferred, perp fallback). AltFINS vendor support/resistance levels are appended when that feed is up.

Input parameters:

- `intervals` (array): Candle intervals to analyze, e.g. ["4h","1d"]. Default ["1h","4h","1d"]; max 4 of 1m|5m|15m|30m|1h|4h|12h|1d|1w
- `market` (string): Which candle series: 'spot', 'perp', or 'auto' (default: spot preferred, perp fallback)
- `symbol` (string, required): Coin symbol, e.g. 'ETH' or 'BTC'

Output parameters:

- `altFins` (object): Vendor levels enrichment; omitted when the AltFINS feed is down
- `failedIntervals` (array): Intervals that could not be analyzed, with reasons
- `lastPriceUsd` (number): Newest close of the finest analyzed timeframe
- `symbol` (string)
- `timeframes` (array)

### `utc_time` (~44 tokens)

Current UTC Time

Returns the current UTC time in ISO 8601 format. Use it to anchor 'now' — e.g. to judge how stale a generatedAt timestamp or news date is.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-f1ow-f1ow/x402#diagnostics

## Score history

- 2026-09-21: 76
- 2026-09-20: 76
- 2026-09-19: 76
- 2026-09-18: 76
- 2026-09-17: 75
- 2026-09-16: 75
- 2026-09-15: 74
- 2026-09-14: 74
- 2026-09-13: 73
- 2026-09-12: 73
- 2026-09-11: 73
- 2026-09-10: 72
- 2026-09-09: 72
- 2026-09-08: 71
- 2026-09-07: 71
- 2026-09-06: 70
- 2026-09-05: 70
- 2026-09-04: 69
- 2026-09-03: 69
- 2026-09-02: 68
- 2026-09-01: 68
- 2026-08-31: 67
- 2026-08-30: 67
- 2026-08-29: 66
- 2026-08-28: 66
- 2026-08-27: 66
- 2026-08-26: 65
- 2026-08-25: 63
- 2026-08-24: 63
- 2026-08-23: 62

## Common questions

### What is the f1ow MCP server?

f1ow is an MCP server listed in the public MCP registry as com.f1ow/f1ow. Crypto market data & research MCP: price, derivatives, on-chain, sentiment, news, catalysts. This page covers its hosted endpoint (https://mcp.f1ow.com/x402).

### Is the f1ow MCP server safe to use?

f1ow scores 76 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the f1ow MCP server expose?

f1ow exposes 30 tools: catalysts_calendar, catalysts_economic_calendar, catalysts_etf_flows, derivatives_open_interest, events_prediction_odds, and 25 more. Their descriptions and schemas cost roughly 4,802 tokens of context every time the server is loaded.

### Does the f1ow MCP server require authentication?

No. We connected to f1ow without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the f1ow MCP server still maintained?

f1ow is still listed as active in the MCP registry. We last reached this channel on 21 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://mcp.f1ow.com/x402
- Website: https://www.f1ow.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-f1ow-f1ow/x402.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-f1ow-f1ow/x402.json
- HTML version of this page: https://verifymcp.io/servers/com-f1ow-f1ow/x402
