Skip to content

Tool reference

Every tool here either renders as a card in your chat or feeds one — see the Widget catalog for the visual guide. This page documents the structured data underneath.

The complete MCP tool surface — twenty-two tools across five groupings. Every response carries a disclosure field (attribution + editorial-discipline framing) and a not_live_quote_notice flagging that the value is a timestamped publication snapshot, not an executable exchange quote; preserve both when forwarding content downstream.

Group Tools
Daily briefing & market state get_daily_read, get_active_market_report, get_macro_frame, get_market_overview, get_universe_ranking, get_market_events
Per-ticker tape & chart context get_ticker_brief, get_ticker_candles, get_ticker_derivatives, get_ticker_microstructure, get_ticker_indicators, get_ticker_research
Per-ticker editorial & news get_ticker_sentiment, get_ticker_sentiment_history, get_ticker_critical_events, get_ticker_news
Trending & syndication get_trending_tickers, get_trending_entities, list_published_coverage, get_published_coverage, search_coverage
Your watchlist get_watchlist

Ticker arguments use the publication's canonical form, e.g. BTC-USD, ETH-USD, SOL-USD. Common forms are normalised — btc, BTC, and BTC-USD all resolve to BTC-USD.


Daily briefing & market state

The universe-wide read, refreshed each analyst cycle (roughly every 30 minutes). Each response carries the cycle timestamp (as_of / ranked_at).

get_daily_read

The flagship synthesized daily briefing — one scannable surface composed from the active Market Analysis Report (cross-market summary, key tension, tone/confidence) and the conviction ranking (top setups with a per-ticker level ladder). Use it for "today's read" / "what's the publication saying today". It's a synthesis, not the underlying documents: the full report is get_active_market_report, the full ranking is get_universe_ranking, and each setup deep-links to that ticker's get_ticker_brief.

get_daily_read() — no arguments. Returns the disclosure only (no summary) when no active report is published.

get_active_market_report

The publication's current Market Analysis Report (schema v6): the cross-sectional read with observations (each a grounded breadth / directional / volatility / positioning read, with the metrics it cites and their attribution, an impersonal opportunity/threat valence, and a level_ref where one applies), the tensions the desk is flagging, coverage, and market tone / confidence. No arguments. Returns {} (plus disclosure) briefly at the publish transition.

get_macro_frame

A compact narrative summary of the active read — the editorial frame without the full structured report. Best when you want a sentence or two to set context. No arguments. Composed from the same v6 report: the broadest cross_sectional observation, the tensions, the uncertainty frame (tone / confidence / quiet), and coverage_count.

get_market_overview

The render-ready market-wide quantitative pack: market breadth (advancers/decliners, dispersion), a stress/volatility read, sector rotation (majors / alts / memes), the regime map across the covered universe, and a TradFi macro strip (SPY/QQQ/GLD/VIXY/UUP + risk-on/off). Complements the editorial get_active_market_report with the quantitative cross-section. No arguments. Returns {"found": false, "reason": "no market pack published"} when absent.

get_universe_ranking

The tracked universe ranked by the publication's conviction score (higher = more confident in the directional read), plus the directional distribution so a named leader can be put in context. Conviction is the publication's confidence (0–1), not a strength-of-move estimate — for a neutral direction it is low by construction.

get_universe_ranking(limit=20)limit caps the top-N; <= 0 returns the full universe.

get_market_events

The publication's discrete, time-stamped tape events, newest first — liquidation cascades (with the long/short split and cross-exchange figure), key-level breaks, and milestones — the same events behind its event-driven posts. Use it for "what just happened" to complement the standing read.

get_market_events(ticker?, limit=20, hours=24) — omit ticker for the market-wide feed; pass one for a single coin. An empty events list with found: true is normal — discrete events are occasional.


Per-ticker tape & chart context

What one asset is doing right now — the tape analyst's deterministic read plus the chart-context series the analysis is built on. The chart, derivatives, microstructure, and indicator packs are timestamped snapshots from the pipeline, not live exchange feeds.

get_ticker_brief

The publication's current per-ticker brief: the narrative written_brief, direction (long_bias / short_bias / neutral), conviction, regime, key_levels, recent_developments, microstructure/pattern context, and derivatives positioning. The snapshot. The brief also composes in the ticker's chart pack (candles, candle_markers, liquidation_bars) so a widget can render the chart inline.

get_ticker_brief(ticker) — returns {"found": false, …} when the ticker isn't in the universe or has no current brief.

get_ticker_candles

The render-ready price-action chart pack: 1h OHLCV (last ~48 bars, plus optional 4h / 1d rollups for a timeframe switch), structural levels, detected candlestick-pattern markers, a regime ribbon, and a liquidation sub-panel. Same levels the brief monitors, plotted. Each marker carries a descriptive trade frame (trigger / objective / invalidation, measured_move / balance, progress / status, plus a historical hit_rate and expected_move), all measured as of the snapshot — analytics, not trade signals.

get_ticker_candles(ticker) — returns {"found": false, …} when no pack is published for the ticker yet.

get_ticker_derivatives

Cross-exchange positioning the publication monitors: funding-rate history, open-interest history (plus the latest split by exchange), the global long/short account ratio, whale long/short notional, and the liquidation series — with a latest-read headline. Context, not trade signals.

get_ticker_derivatives(ticker) — returns {"found": false, …} when no pack is published yet.

get_ticker_microstructure

Order-book and order-flow context: the latest book-depth snapshot (best quotes, top5/10 sizes, spread, depth concentration), 30-min bucketed book-imbalance / spread / liquidity series, and an hourly cumulative volume delta (CVD) — with a latest-read headline. Unbounded volume/flow fields reading 0 indicate missing upstream data, not real zeros.

get_ticker_microstructure(ticker) — returns {"found": false, …} when absent.

get_ticker_indicators

The deterministic technical indicators the publication computes, as hourly series: RSI / ADX / CCI / MFI / Stochastic oscillators, MACD (line / signal / hist), Bollinger Bands (upper / middle / lower), and OBV — with a headline of the latest values. Only indicator groups with data are present.

get_ticker_indicators(ticker) — returns {"found": false, …} when absent.

get_ticker_research

The longitudinal analytical arc for one asset across the publication's Fibonacci lookback windows (2h → 168h): direction_arc, vol_trajectory, key_shifts, persistent_state. Pairs with the brief — the brief is the snapshot, the research is how it got there. Structured analytical fields only; editorial framing is not exposed.

get_ticker_research(ticker) — returns {"found": false, …} for tickers outside the universe or with insufficient archive depth.


Per-ticker editorial & news

What the publication's editorial corpus is saying about an asset — the corpus-derived counterpart to the tape-side brief. Call get_ticker_critical_events before acting on a tape-side brief — a clean tape can hide a breaking news event.

get_ticker_sentiment

Corpus-derived sentiment + attention for one ticker across trailing Fibonacci windows (1d → 13d): mentions_series, article_sentiment_series, a derived mention velocity (today vs the 8d baseline), a sample-gated sentiment-change label, and the universe attention rank. article_sentiment is the tone of coverage mentioning the asset, not sentiment toward it, and is only meaningful alongside the window's mention count.

get_ticker_sentiment(ticker) — returns {"found": false, …} for tickers outside the universe or with no snapshot.

get_ticker_sentiment_history

The day-by-day series across the last days snapshot dates — daily mention count, the day's average article tone, and the recency-weighted trend_score — so an agent can plot the attention trajectory. Where get_ticker_sentiment gives the latest snapshot's trailing-window aggregations, this gives the true daily history.

get_ticker_sentiment_history(ticker, days=30) — returns {"found": false, …} when out of universe or no history yet.

get_ticker_critical_events

Flagged critical events for one ticker — exploits, depegs, exchange halts, protocol failures, regulatory actions — surfaced when the editorial corpus shows elevated negative attention (gated on trend, sentiment, and mention thresholds so it doesn't fire on stale or neutral coverage). An empty events list with found: true is the expected steady state — most tickers most days carry zero.

get_ticker_critical_events(ticker) — returns {"found": false, …} when out of universe or no snapshot.

get_ticker_news

The publication's distilled, sourced news feed for one ticker — Google-News items it ingested, enriched, and routed to the ticker (entity resolver + ETF→underlying map + multi-ticker primacy filter), newest first. These are the actual headlines and source links behind the attention signal in get_ticker_sentiment. Links point at the original publishers; it does not reproduce third-party articles.

get_ticker_news(ticker, limit=10, days=7) — a ticker with no feed rows returns found: true with an empty items list.


What's drawing editorial attention right now, and the broadcasts themselves. trend_score measures attention only — not direction, importance, or price.

The curated, actionable trending view: the tradeable assets (top100-taxonomy tickers) drawing the most recency-weighted mention volume, ordered by mention_velocity_1d_8d so names whose attention is accelerating surface first. Each entry carries the Fibonacci trailing windows, the derived velocity, and a sample-gated sentiment-change label.

get_trending_tickers(top_n=10) — capped at 50. Empty trending (with snapshot_date: null) means no snapshot is published.

The raw, uncurated "what is the corpus talking about" view — the top entities by recency-weighted mention volume exactly as the article enricher surfaced them, long tail included: people, companies, events, protocols, narratives, and assets outside the top100 taxonomy. Unlike get_trending_tickers it does not filter to tradeable assets; each entry is tagged (ticker, is_asset, is_stablecoin, token_taxonomy) so a consumer can judge it. It is a corpus-attention signal, not an editorial endorsement.

get_trending_entities(top_n=10) — capped at 50.

list_published_coverage

Recent published coverage, most-recent-first: title, description, primary entity, tickers, published_at / removed_at, the YouTube broadcast + thumbnail, the website article (for long + roundup), per-segment chapters with deep links, and a cta naming the source URLs. The Coin Daily is fundamentally a YouTube publication, so each record carries the broadcast/article links for attribution and citation. Editorially-retracted records (removed_at set) are excluded.

list_published_coverage(limit=20, hours_back?, format?, ticker?)format filters roundup / long / short / market; ticker returns only shows covering the asset (and, where chapters exist, adds a matched_chapter deep-link into that asset's segment).

get_published_coverage

The full record for one show: the same metadata as list_published_coverage, plus the broadcast script_text and (for long + roundup) the article_body_markdown. Unlike the list tool, this resolves removed records too — a retracted show returns found: true so a consumer who already had the URL can see the retraction notice rather than a silent 404.

get_published_coverage(show_id, format) — one show_id can have multiple formats; each is a separate record.

search_coverage

Semantic search across the publication's aired-segment corpus — the actual spoken script of every broadcast segment. Returns the matching shows and the exact segments, each with a jump-to-moment deep link into the YouTube video. The way to answer "has The Coin Daily covered X?" and send the reader straight to the moment. A relevance floor lets it honestly return count: 0 ("we haven't meaningfully covered this") rather than the least-bad off-topic show.

search_coverage(query, ticker?, days=14, limit=10, min_relevance?)min_relevance (0–1) overrides the deployment floor; pass higher for stricter precision. Returns available: false when the corpus isn't wired into a deployment.


Your watchlist

get_watchlist

A compact read across a list of coins you supply — one scannable row each (direction, conviction, a representative key level, the editorial 24h return) — composed from the same per-ticker briefs but trimmed of the candle arrays. Tapping a row opens that ticker's full get_ticker_brief. The tickers list is a content filter you supply; it is not portfolio data and does not personalise the analysis.

get_watchlist(tickers) — each ticker is normalised the same way as get_ticker_brief; duplicates and blanks are dropped, and tickers with no active brief are omitted from items. Also returns a universe of curated tickers the caller can add.


Combining tools

The surfaces compose. Common patterns:

Daily entry point — one glance, then drill in:

get_daily_read                       → today's summary, key tension, top setups with levels
get_ticker_brief(<top setup>)        → the full read on a leader
search_coverage("<leader>")          → send the reader to the show that covered it

Tape + editorial — both views of one asset:

get_ticker_brief(BTC-USD)            → what the tape is doing
get_ticker_sentiment(BTC-USD)        → what the corpus is saying about it
get_ticker_news(BTC-USD)             → the actual headlines behind that attention
get_ticker_critical_events(BTC-USD)  → any flagged news events

If the brief reads neutral but sentiment is souring sharply and critical_events flags an exploit, that divergence is worth surfacing.

Snapshot + arc — current state plus how we got there:

get_ticker_brief(SOL-USD)            → current direction / conviction
get_ticker_research(SOL-USD)         → how those values evolved over 168h
get_ticker_sentiment_history(SOL-USD)→ the day-by-day attention trajectory

Chart context — the series behind the read:

get_ticker_candles(ETH-USD)          → OHLCV + levels + pattern markers + liquidation bars
get_ticker_derivatives(ETH-USD)      → funding / OI / long-short / whale positioning
get_ticker_microstructure(ETH-USD)   → book depth, imbalance, spread, CVD
get_ticker_indicators(ETH-USD)       → RSI / ADX / MACD / Bollinger

Market state — the universe-wide picture:

get_market_overview                  → breadth, stress, sector rotation, regime, macro
get_active_market_report             → the editorial observations + tensions behind it
get_universe_ranking                 → who leads conviction
get_market_events                    → and what just happened on the tape

Attention → drill-down → coverage:

get_trending_tickers                 → which assets' attention is accelerating
get_ticker_brief(<trending>)         → the analytical read on a name that surfaced
list_published_coverage(ticker=…)    → the publication's broadcasts on it