{"name":"com.f1ow/f1ow","slug":"f1ow","title":"f1ow","description":"Crypto market data & research MCP: price, derivatives, on-chain, sentiment, news, catalysts.","url":"https://mcp.market/server/f1ow","rating":null,"grade":"B","score":79,"certified":false,"status":"active","category":"finance","tags":["finance"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T03:45:59.057Z","last_ok_at":"2026-11-04T03:45:59.057Z","latency_ms":606},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://www.f1ow.com","version":"0.1.0","remotes":[{"type":"streamable-http","url":"https://mcp.f1ow.com/mcp"},{"type":"streamable-http","url":"https://mcp.f1ow.com/x402"}],"packages":[],"tools":[{"name":"catalysts_calendar","description":"Lists upcoming crypto catalyst events for the next 7 days. Optionally filter by comma-separated coin symbols (e.g. 'sol,eth').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"coins":{"type":"string","description":"Comma-separated coin symbols, e.g. 'sol,eth'. Omit for all coins."}},"required":[]}},{"name":"catalysts_economic_calendar","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"min_importance":{"type":"integer","description":"Minimum importance level to include: 1 (all), 2 (medium+), 3 (high only). Defaults to 2."}},"required":[]}},{"name":"catalysts_etf_flows","description":"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'.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"asset":{"type":"string","description":"Underlying asset symbol, e.g. \"BTC\" or \"ETH\". Defaults to BTC."},"symbol":{"type":"string","description":"Alias for 'asset'."}},"required":[]}},{"name":"derivatives_flow","description":"USDT-margined perpetual flow for one coin on a 5m/15m/1h grid, from one venue: Binance, or Bybit for coins Binance doesn't list (e.g. WAVES). Open interest (USD) at every bucket edge joined to taker buy and sell volume (USD), with each stretch read as new longs, new shorts, short covering or long unwind (OI direction × the aggressive side). Bybit publishes the taker split only for its last ~1000 trades, so older Bybit buckets are read from OI against price direction instead, and every read states its basis (taker or price). Reports the window, the open-interest swings of 1% or more with the price and taker flow inside them (flagging aggressors absorbed by passive orders, taker basis only), and the buckets where OI moved most. One venue, not the market-wide aggregate. Use it to say whether a move was positions opening or closing, and which side pushed.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. \"ETH\"."},"hours":{"type":"integer","description":"Trailing window in hours, 1–72. Default 24. At 5m the window is capped at about 41h by the venue's 500-snapshot limit."},"interval":{"type":"string","enum":["5m","15m","1h"],"description":"Bucket size. Default 15m."}},"required":["symbol"]}},{"name":"derivatives_liquidations","description":"Liquidation history for one coin's perpetuals: market-wide long/short liquidations (USD) in 4h buckets and the 24h split by venue, plus a minute-level timing sample of individual liquidation orders from venues that publish them (OKX, Gate) with detected cascades (time, side, size, order count, price range) and the largest orders. The sample is a share of the market, stated per bucket, never scaled up. Use it to say WHEN and WHICH SIDE was forced out, instead of inferring liquidations from price and open interest: flat OI can hide heavy liquidations that new positions replaced. A 1y baseline ranks the trailing ~24h of longs and shorts against a year of daily totals (percentile, 'largest since' date, median day, the year's three largest days per side), so a figure can be called big or routine for this coin.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. \"BTC\"."},"hours":{"type":"integer","description":"Trailing window in hours, 1–72. Default 24."},"interval":{"type":"string","enum":["5m","15m","1h"],"description":"Bucket size for the timing sample. Default 15m."},"top_orders":{"type":"integer","description":"Largest individual liquidations to list, 0–20. Default 5."}},"required":["symbol"]}},{"name":"derivatives_open_interest","description":"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. A 1y line ranks the level and today's 24h change against a year of daily closes (percentile, range with dates); the change rank is the better read, since the USD level mostly tracks price. 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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. \"BTC\"."},"points":{"type":"integer","description":"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."}},"required":["symbol"]}},{"name":"events_prediction_odds","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Topic to match against market questions, e.g. 'Fed', 'bitcoin', 'ETH ETF'."}},"required":["query"]}},{"name":"filings_search","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"Free-text query, e.g. a company name, ticker, or theme."}},"required":["query"]}},{"name":"flow_levels","description":"Perp price levels for one coin, from what printed rather than from a chart: executed volume at price on every venue that lists it (Binance, Bybit, BingX, Hyperliquid), with the value area (70% of volume around the POC), high-volume nodes and thin zones (prices crossed without trading, where moves tend to run); open-interest changes at price split into long and short entries; realized liquidations at price (OKX/Gate sample); and resting walls from deep books on several venues, counted only when a second snapshot 2 s later still shows them. Every level is graded by evidence — traded (volume, liquidations) > inferred (OI side) > resting (orders, which can be pulled) — and lists the other evidence at the same price (confluence). Walls larger than their venue's own daily volume are flagged. Use it for where price may stall, accelerate or meet forced flow; it is not a forecast.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. \"WAVES\"."},"hours":{"type":"integer","description":"Window in hours, 24–168. Default 72."}},"required":["symbol"]}},{"name":"flow_orderbook","description":"Order-book snapshot for one coin's perpetuals: best bid/ask, spread in bps, top-of-book depth (USD) per side, bid/ask depth imbalance, and the cost vs mid of $10k and $100k market orders against the visible levels. 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 and how far its visible book reaches.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. \"BTC\"."}},"required":["symbol"]}},{"name":"flow_whale_context","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. \"BTC\" or \"ETH\"."},"min_usd":{"type":"number","description":"Minimum transfer size in USD to count as a whale transfer. Defaults to 1000000."}},"required":["symbol"]}},{"name":"flow_whale_positions","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"addresses":{"type":"string","description":"Optional comma-separated 0x wallet addresses to inspect (max 10). Omit to auto-discover the biggest live whales."}},"required":[]}},{"name":"funding_current","description":"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. A 1y line ranks the current rate against a year of daily closes (percentile, low/median/high with dates), so 'high' means high for this coin, not just for the week. Set 'points' to trim the series (omit for the full ~10-day window; 0 to suppress it).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. \"BTC\"."},"points":{"type":"integer","description":"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."}},"required":["symbol"]}},{"name":"market_candles","description":"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 when spot fails, or when spot's history is shorter than the request and than 210 candles while perp's is materially longer — e.g. a coin whose spot pair listed recently). 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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. 'ETH' or 'BTC'"},"interval":{"type":"string","enum":["1m","5m","15m","30m","1h","4h","12h","1d","1w"],"description":"Candle size. Default 1d."},"market":{"type":"string","enum":["spot","perp","auto"],"description":"Which market's series: spot exchange trades, perpetual-futures marks, or auto (spot preferred; perp when spot fails or its history is too short). Default auto."},"limit":{"type":"integer","description":"Number of candles, newest last. Default 100, max 400."},"days":{"type":"integer","description":"DEPRECATED: trailing window in days; use interval+limit instead. Ignored when interval is given."}},"required":["symbol"]}},{"name":"market_coin_details","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"coin_id":{"type":"string","description":"CoinGecko coin ID (e.g. 'bitcoin') or ticker symbol (e.g. 'BTC'). IDs are case-sensitive; symbols are resolved by search."}},"required":["coin_id"]}},{"name":"market_coins","description":"Lists the coin symbols available from the market-data provider","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"market_history","description":"Bulk history for one coin, one metric per call, in pages: 'price' (OHLCV candles, spot or perp), 'open_interest' (market-wide aggregate USD), 'funding' (OI-weighted rate, %/8h and annualized) or 'liquidations' (market-wide long/short USD per bucket). Returns up to 'limit' rows (default 200, max 1000) at or before 'end' (default now), oldest first, as compact columns + rows; pass the returned nextEndMs as 'end' to fetch the page before it, and 'start' to stop there. Reach: price is full venue history (Binance spot from 2017, futures from 2019) at 1m–1w; derivatives come from CoinGlass at 4h (about 180 days back), 6h/8h/12h (about 360 days) or 1d/1w (back to 2020) — use 1d for anything older than six months. The newest row may still be forming (newestForming). Use this to pull history; for a read of what is happening now, use the derivatives_* and research_* tools.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. \"BTC\"."},"metric":{"type":"string","enum":["price","open_interest","funding","liquidations"]},"interval":{"type":"string","enum":["1m","5m","15m","30m","1h","4h","6h","8h","12h","1d","1w"],"description":"Bucket size. Price: 1m–1w except 6h/8h, default 1d. Derivatives: 4h, 6h, 8h, 12h, 1d or 1w; default 4h (funding 8h)."},"market":{"type":"string","enum":["spot","perp"],"description":"Price only: spot (default) or perpetual candles."},"start":{"type":"string","description":"Earliest time to include: ISO-8601 (UTC if no offset) or Unix ms. Paging stops here."},"end":{"type":"string","description":"Latest time to include: ISO-8601 or Unix ms. Default now. Pass nextEndMs here to page back."},"limit":{"type":"integer","description":"Rows per page, 1–1000. Default 200."}},"required":["symbol","metric"]}},{"name":"market_overview","description":"Global market snapshot: total market cap, BTC/ETH dominance, Fear & Greed index, and Altcoin Season index","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"market_quotes","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbols":{"type":"array","items":{"type":"string"},"description":"Coin symbols to include, e.g. [\"BTC\",\"ETH\"]. Omit for all covered coins."}},"required":[]}},{"name":"market_top_movers","description":"Ranked 24h gainers, losers, and trend candidates (>+5% move)","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"market_trending","description":"Lists the currently trending cryptocurrencies","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"news_search","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string"}},"required":["query"]}},{"name":"onchain_metrics","description":"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).","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Chain token symbol, e.g. 'ETH' or 'SOL'"}},"required":["symbol"]}},{"name":"options_chain","description":"Crypto options chain (Deribit) for one underlying and expiry: calls/puts by strike with bid/ask/mark (native and USD), mark IV, calculated Black-76 delta, open interest (coins and USD notional) and 24h volume. Lists every available expiry. Underlyings: BTC and ETH (deep; inverse and USDC-linear books), SOL, XRP, HYPE, AVAX, TRX (USDC-linear, thin). Defaults: next expiry, strikes within ±10% of spot, both types.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"currency":{"type":"string","description":"Underlying symbol, e.g. \"BTC\", \"ETH\", \"SOL\"."},"expiry":{"type":"string","description":"\"next\" (default), a date like \"2026-12-25\", or an exchange code like \"25DEC26\"."},"option_type":{"type":"string","enum":["call","put","both"],"description":"Default both."},"strike_min":{"type":"number","description":"Lowest strike (USD)."},"strike_max":{"type":"number","description":"Highest strike (USD)."},"moneyness_pct":{"type":"number","description":"When no strike bounds are given: keep strikes within ± this % of spot. Default 10."},"limit":{"type":"integer","description":"Max contracts returned, default 40, max 200."}},"required":["currency"]}},{"name":"options_gamma","description":"Crypto options gamma exposure (Deribit, modeled): gross and dealer-signed GEX in USD per 1% move, by strike and expiry, gamma walls, modeled gamma flip levels, options-derived price levels (call/put OI walls, gamma concentrations, max pain, high-sensitivity zones) and a rule-based options regime (positive/negative modeled gamma, near flip, expiry concentration, elevated/compressed vol), with perp funding/OI/liquidations/order book as a separate evidence block. What-ifs: hedging=true adds theoretical dealer hedge ladders (spot ±0.5–5%, charm 1–24h and through the next expiry, vanna ±1/2/5 vol points); target_price / horizon_hours / iv_change reprice the same frozen contracts (GEX, dealer delta, hedge, flips and walls before vs after). Signed numbers depend on an explicit dealer-positioning scenario; modeled, not observed orders.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"currency":{"type":"string","description":"Underlying symbol, e.g. \"BTC\"."},"scenario":{"type":"string","enum":["calls_long_puts_short","short_all","long_all"],"description":"Assumed dealer positioning (public OI can't show it). Default calls_long_puts_short: dealers long calls, short puts."},"hedging":{"type":"boolean","description":"Add theoretical dealer hedge ladders (price, charm, vanna). Implied by any what-if parameter."},"price_change_pct":{"type":"number","description":"Extra custom spot move for the hedge ladder, percent (e.g. -3)."},"target_price":{"type":"number","description":"What-if: underlying price to reprice at."},"horizon_hours":{"type":"number","description":"What-if: hours to advance (0–2160). Contracts expiring in between drop out."},"iv_change":{"type":"number","description":"What-if: absolute IV shift in vol points (e.g. -2)."},"expiry":{"type":"string","description":"What-if/hedging scope: only this expiry (\"next\", \"2026-11-27\" or \"27NOV26\"). Default all."}},"required":["currency"]}},{"name":"options_positioning","description":"Crypto options positioning (Deribit) for one underlying: total call/put open interest in coins and USD notional, put/call OI and volume ratios, largest strike concentrations, upcoming expirations with expiring notional and theoretical max pain, OI change over 24h/7d (from hourly snapshots), and recent trade flow (aggressor premium by calls/puts, block share, largest trades). Descriptive positioning — not a direction signal.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"currency":{"type":"string","description":"Underlying symbol, e.g. \"BTC\"."},"expiries":{"type":"integer","description":"Upcoming expirations to list, default 6, max 20."},"trades_hours":{"type":"number","description":"Trade-flow window in hours, default 4, max 24; 0 skips trades."}},"required":["currency"]}},{"name":"options_probability","description":"Risk-neutral probabilities implied by crypto options (Deribit) at one expiry: chance of settling above/below a price or inside a range, expected 68%/90% ranges, lognormal at that expiry's ATM IV and forward plus a smile-adjusted value within quoted strikes. Market-implied odds, not calibrated forecasts.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"currency":{"type":"string","description":"Underlying symbol, e.g. \"BTC\"."},"expiry":{"type":"string","description":"\"next\" (first expiry ≥ 1 day, default), \"2026-12-25\" or \"25DEC26\"."},"price":{"type":"number","description":"Price to get P(above)/P(below) for."},"range_low":{"type":"number","description":"Range lower bound."},"range_high":{"type":"number","description":"Range upper bound."}},"required":["currency"]}},{"name":"options_volatility","description":"Crypto options implied volatility (Deribit): DVOL index with 1y percentile, ATM IV term structure (7/30/90d) and inversion, 25-delta risk reversal and butterfly per expiry, 30d IV vs realized volatility, spot–vol correlation, 24h/7d skew and term changes, and the implied 1σ move for 1/7/30 days — how fast a move options price, not its direction. Pass several underlyings (\"BTC,ETH\") to compare.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"currency":{"type":"string","description":"Underlying symbol or comma-separated list (max 4), e.g. \"BTC\" or \"BTC,ETH\"."}},"required":["currency"]}},{"name":"providers_health","description":"Reports the health of each connected data provider","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"research_opportunities","description":"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 eight 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; reported without a vote, because funding extremes have tended to continue rather than reverse), stress (24h long and short liquidations each as a share of open interest, both read on Bybit so the ratio is one book — longs flushed leans long, shorts flushed (a spent squeeze) leans short), 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 — votes +1 only for a strong 3:1 trend the slow timeframe agrees with), location (distance from the 4h EMA20 in ATR units — an extended coin scores DOWN, because a chase is not a setup), entry (whether the limit is still live) and reward (net-of-fees reward:risk and stop distance). 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, under which the reading that named the setup counts 0. Each candidate also says why it is worth a look now: its 24h price, OI (venue contracts) and volume against its own last 60 days, the plain-word labels those earn (longs building, short covering, crowded short, coiling, ...), and for each label what followed it in a 2-year backtest, verdict included (often 'no edge'). Priced setups carry their setup type's backtest track record (trades, win rate, average R after fees, against random entries). Each candidate says whether it is ACTIONABLE (a priced live entry, net reward:risk >= 1.5, score >= +1) and, when not, which gates it missed; actionable candidates rank first. Candidates carry ATR-and-structure trade plans priced so they feed research_trade_plan directly. A TRENDING PULLBACK is entered at market with its levels from the EMA20 pullback, taking half at +1R and moving the rest to breakeven (60% of 19,139 backtested trades won, about 0R on average, the same as random entries with those exits); an ABSORPTION SHORT (yesterday's Binance taker-buy share in the bottom 10% of the coin's own 60 days while the day closed flat or up) is a short at market, stop 2.5 ATR, target 2R, the one setup type that beat random entries in the backtest; a BREAKDOWN (24h drop in the bottom 5% of the coin's own 60 days) is a short at market; a COIL BREAKOUT (volatility squeezed, no trend) is a stop bracket around the 10-candle range. Stops sit behind the recent swing (a bracket's at the range midpoint), and targets at the structural level or 2R, whichever is nearer. Every priced plan carries its type's 2-year backtest record and a plain caveat; none of the three types passed a pre-registered edge test. No geometry is priced after a 24h move beyond ±30% or with a stop over 15% from entry; the candidate says why. Tokenized gold (XAUT, PAXG) is not screened, and one coin listed under two venue tickers (e.g. PUMP and PUMPFUN) is screened once. '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 screened, so no band was ever applied to it), below the tier floor, or not quoted at all — because mere absence from the ranked list conflates four different answers. Reports a board, not a forecast: the bands are disclosed constants chosen for plausibility with no backtest behind them, and 'NO CANDIDATES' is a real and frequent answer. Use it to pick what to look at, then research_positioning and ta_technicals on the two or three that stand out.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"tier":{"type":"string","enum":["major","medium","all"],"description":"Size tier to screen: 'major' (market cap >= $10B), 'medium' ($300M-$10B), or 'all' (default)."},"limit":{"type":"integer","description":"Ranked candidates to return. Default 10, max 25."},"symbols":{"type":"array","items":{"type":"string"},"description":"Optional: narrow the universe to these coin symbols, e.g. [\"SOL\",\"AVAX\"]. Omit to screen everything that clears the tier and liquidity floors."},"intervals":{"type":"array","items":{"type":"string","enum":["1m","5m","15m","30m","1h","4h","12h","1d","1w"]},"description":"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 on the fast timeframe, so changing it produces a DIFFERENT trade rather than a refinement of the same one — on one live BTC read the 1h pair put the entry 0.2% above spot while the 1d pair put it 10.7% below, with stops of 0.77% and 3.31%. Lookbacks are counted in candles, so the swing windows scale too (30 candles is 5 days at 4h, 7 hours at 15m). The second interval only CONFIRMS the first and must be slower; pass one interval to skip confirmation, which halves the candle cost and makes the trend vote abstain."}},"required":[]}},{"name":"research_positioning","description":"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: crowding says who is paying, not where price goes. Deterministic — same inputs, same read. Call research_regime first for market context, then this per coin before sizing or timing decisions.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. \"BTC\" or \"ETH\"."}},"required":["symbol"]}},{"name":"research_regime","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"research_token_view","description":"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').","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. 'ETH' or 'BTC'"}},"required":["symbol"]}},{"name":"research_trade_plan","description":"Check, review or replay a perp trade setup (entry, stop, optional target), before it is placed or after: the tool for 'check this setup', 'is this trade good' and 'how did my trade do'. Renders an interactive trade ticket. Give the coin, entry and stop; optionally target, leverage, order type, placed_at, and account size with risk percent. Returns reward:risk, the stop's distance in % and 4h ATR, the isolated liquidation price at the leverage (first-tier 0.5% maintenance margin, so the optimistic case), funding per day at the current rate (in % of notional, and in USD when sized), the perp levels around the setup (from flow_levels: volume nodes, value area, liquidation clusters, entries, walls), and named checks: liquidation before the stop, price already through the stop, a stop inside one ATR of noise, a stop just in front of a level a wick would reach for, a level between entry and target, reward:risk under 2:1, costs that pull a 2:1 plan under it, leverage over 10x, and an entry far from live. Costs: fees per fill (a venue's base tier, Binance by default; override with venue, fee_bps, maker_fee_bps), funding carry over hold_hours at the current rate with the rate's 1y percentile, and, when sized, the slippage of a market exit of the whole size at the stop against today's visible book; they give a net reward:risk, the break-even win rate, and the stop, target and liquidation outcomes in R (and USD and % of account when sized). Everything reads in R and % without an account; give account_size and risk_percent (both or neither) to add the fixed-fractional size, notional and margin. Pass placed_at (when the order was placed) to replay the setup since then from public candles, filling the entry by order_type: a limit fills when price comes to it (or at once if it was already marketable, e.g. a buy limit above the market), a stop entry when price comes through it, a market order at placement; R is measured from the actual fill. Statuses: PENDING, MISSED (target traded before the entry), OPEN with the result and best/worst so far in R, STOPPED, TARGET, or AMBIGUOUS when one candle reached both; plus funding paid while open. Nothing about the plan is stored: the numbers come in, the replay goes out, and planLine is the one-line copy to bring the plan back later. Use it after research_opportunities or flow_levels has suggested a setup; it is a check of the setup, not a signal.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. \"ETH\"."},"entry":{"type":"number","description":"Planned entry price"},"stop":{"type":"number","description":"Stop-loss price (below entry = long, above = short)"},"target":{"type":"number","description":"Optional take-profit price"},"account_size":{"type":"number","description":"Optional account equity in USD, with risk_percent: adds the position size, notional and margin. Leave both out when the user didn't give them."},"risk_percent":{"type":"number","description":"Optional percent of the account lost if the stop is hit, e.g. 1; only with account_size"},"leverage":{"type":"number","description":"Optional leverage the position is opened at, 1–200, for the liquidation price. Default when sized: the smallest whole leverage that carries the notional; unsized: no liquidation price unless given."},"placed_at":{"type":"string","description":"When the order was placed, as ISO 8601 (e.g. 2026-10-14T12:00:00Z) or unix time, up to 90 days back. Pass it whenever the user says when the trade was placed or opened ('placed 2026-10-12T12:00Z', 'opened yesterday at 14:00'): with it the tool replays the trade and reports filled / stopped / target / open; without it the plan is checked as if not yet placed."},"order_type":{"type":"string","enum":["limit","stop","market"],"description":"How the entry was placed, for the replay. limit (default): fills when price comes to the entry, or at once if the entry was already on the far side of the market. stop: a breakout trigger that fills when price comes through the entry. market: filled at placement. Omit it when the user hasn't said: if the entry was through the market at placement, one call returns both readings (lifecycle as a limit, alternativeLifecycle as a stop); ask the user which applies rather than calling again. Also sets the entry fee: a resting limit pays maker, anything else taker."},"venue":{"type":"string","enum":["binance","bybit","okx","hyperliquid","bingx","bitget"],"description":"Optional venue whose base-tier fees to apply. Default binance (5 bps taker, 2 bps maker)."},"fee_bps":{"type":"number","description":"Optional taker fee per fill in bps of notional (e.g. 4.5), when the user states their own fee tier. Overrides the venue's."},"maker_fee_bps":{"type":"number","description":"Optional maker fee per fill in bps (negative for a rebate). Overrides the venue's."},"hold_hours":{"type":"number","description":"Optional expected holding time in hours, e.g. 72 for three days: prices the funding carry over the hold into the net reward:risk."}},"required":["symbol","entry","stop"]}},{"name":"risk_position_size","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"account_size":{"type":"number","description":"Total account equity in USD"},"risk_percent":{"type":"number","description":"Percent of the account to risk if the stop is hit, e.g. 1 for 1%"},"entry":{"type":"number","description":"Planned entry price"},"stop":{"type":"number","description":"Stop-loss price (below entry = long, above = short)"},"target":{"type":"number","description":"Optional take-profit price, used only to report reward:risk"}},"required":["account_size","risk_percent","entry","stop"]}},{"name":"sentiment_fear_greed","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}},{"name":"sentiment_social","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. \"BTC\"."}},"required":["symbol"]}},{"name":"sentiment_twitter","description":"Searches public X Posts from the last 7 days using X search syntax (keywords, phrases, hashtags, cashtags, or operators such as from:handle). Returns engagement, views and direct links; sorted by relevance unless latest=true. Results are capped at 10 Posts.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"query":{"type":"string","description":"X recent-search query (keywords, phrases, hashtags, cashtags, or operators), e.g. \"$BTC\", \"bitcoin ETF\", or \"from:handle BTC\". Self-serve query limit: 512 characters."},"latest":{"type":"boolean","description":"Return the newest Posts instead of top relevance. Defaults to false."},"minLikes":{"type":"integer","description":"Only Posts with at least this many likes. Defaults to 0."},"limit":{"type":"integer","description":"Max Posts to return (1-10). Defaults to 5."}},"required":["query"]}},{"name":"ta_technicals","description":"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 research_trade_plan), 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 when spot fails or a recent spot listing has too little history for the indicators). Support/resistance comes from the same candles: daily swing highs/lows over the last year, clustered within half a daily ATR, nearest 3 on each side with distance, swing count and last touch, plus the year's range. For levels from executed perp flow (volume at price, liquidations, OI), use flow_levels.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"symbol":{"type":"string","description":"Coin symbol, e.g. 'ETH' or 'BTC'"},"intervals":{"type":"array","items":{"type":"string"},"description":"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":{"type":"string","description":"Which candle series: 'spot', 'perp', or 'auto' (default: spot preferred; perp when spot fails or its history is too short)"}},"required":["symbol"]}},{"name":"utc_time","description":"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{}}}],"scan":{"score":79,"grade":"B","scanned_at":"2026-11-02T21:55:16.119Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-02T21:55:16.056Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 632ms (auth required)"]},"poisoning":{"score":13,"max":15,"notes":["39 tool descriptions checked"]},"auth":{"score":15,"max":15,"notes":["OAuth resource metadata advertised on 401"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":8,"max":10,"notes":["endpoint served from the registry-verified namespace domain"]}},"findings":[{"id":"poison.long-description","severity":"low","component":"poisoning","title":"Unusually long tool description (over 2,000 characters)","evidence":"tool research_opportunities: …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 eight 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; reported without a vote, because funding extremes have tended to continue rather than reverse), stress (24h long and short liquidations each as a share of open interest, both read on Bybit so the ratio is one book — longs flushed leans long, shorts flushed (a spent squeeze) leans short), 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 — votes +1 only for a strong 3:1 trend the slow timeframe agrees with), location (distance from the 4h EMA20 in ATR units — an extended coin scores DOWN, because a chase is not a setup), entry (whether the limit is still live) and reward (net-of-fees reward:risk and stop distance). 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, under which the reading that named the setup counts 0. Each candidate also says why it is worth a look now: its 24h price, OI (venue contracts) and volume against its own last 60 days, the plain-word labels those earn (longs building, short covering, crowded short, coiling, ...), and for each label what followed it in a 2-year backtest, verdict included (often 'no edge'). Priced setups carry their setup type's backtest track record (trades, win rate, average R after fees, against random entries). Each candidate says whether it is ACTIONABLE (a priced live entry, net reward:risk >= 1.5, score >= +1) and, when not, which gates it missed; actionable candidates rank first. Candidates carry ATR-and-structure trade plans priced so they feed research_trade_plan directly. A TRENDING PULLBACK is entered at market with its levels from the EMA20 pullback, taking half at +1R and moving the rest to breakeven (60% of 19,139 backtested trades won, about 0R on average, the same as random entries with those exits); an ABSORPTION SHORT (yesterday's Binance taker-buy share in the bottom 10% of the coin's own 60 days while the day closed flat or up) is a short at market, stop 2.5 ATR, target 2R, the one setup type that beat random entries in the backtest; a BREAKDOWN (24h drop in the bottom 5% of the coin's own 60 days) is a short at market; a COIL BREAKOUT (volatility squeezed, no trend) is a stop bracket around the 10-candle range. Stops sit behind the recent swing (a bracket's at the range midpoint), and targets at the structural level or 2R, whichever is nearer. Every priced plan carries its type's 2-year backtest record and a plain caveat; none of the three types passed a pre-registered edge test. No geometry is priced after a 24h move beyond ±30% or with a stop over 15% from entry; the candidate says why. Tokenized gold (XAUT, PAXG) is not screened, and one coin listed under two venue tickers (e.g. PUMP and PUMPFUN) is screened once. '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 screened, so no band was ever applied to it), below the tier floor, or not quoted at all — because mere absence from the ranked list conflates four different answers. Reports a board, not a forecast: the bands are disclosed constants chosen for plausibility with no backtest behind them, and 'NO CANDIDATES' is a real and frequent answer. Use it to pick what to look at, then research_positioning and ta_technicals on the two or three that stand out.…"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://mcp.f1ow.com/mcp","reachable":true,"authRequired":true,"latencyMs":632,"authScheme":"oauth"},{"url":"https://mcp.f1ow.com/x402","reachable":true,"authRequired":false,"latencyMs":2064,"serverInfo":{"name":"FooBar","version":"0.1.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://www.f1ow.com/apple-icon.png?0fa5bcd2d8727b61","source":"registry","width":512,"height":512},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}