{"apiVersion":"v1","directorySlug":"thebitcoinlayer-mcp-02f219d5ef","title":"The Bitcoin Layer","description":"Global macro analysis, liquidity frameworks, and bitcoin intelligence. The research to understand bitcoin. The terminal to act on it.","pageUrl":"https://www.mcpbundles.com/skills/thebitcoinlayer-mcp-02f219d5ef","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://mcp.thebitcoinlayer.com/mcp","hostedMcpUrl":null,"toolCount":31,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.thebitcoinlayer/thebitcoinlayer-mcp-02f219d5ef","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"list_instruments","description":"List or search The Bitcoin Layer's available market & macro data series (US/global yields, FX & the dollar, commodities, volatility, crypto, equities, and US economic data). CALL THIS FIRST to turn a natural-language request (e.g. 'the 10-year yield', 'dollar index', '2s10s', 'CPI') into the exact instrument id / cache_key you pass to create_chart. Call with no query to load the whole catalog. Spreads like the 2s10s and 5s30s appear as instruments whose `computed` field shows they are derived fr","inputSchema":{"type":"object","properties":{"query":{"type":"string"},"category":{"type":"string"}},"additionalProperties":false},"logicalName":"list_instruments","displayName":"list_instruments","title":"list_instruments","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_series","description":"Fetch one instrument (by id or cache_key). By default returns latest value + summary stats. Set include_points:true to ALSO return the actual [date, value] data so you can do your own calculations (e.g. end-of-June vs end-of-December each year, custom spans). For long histories use resample:\"monthly\" (or weekly/quarterly/yearly) to get a compact series whose values are EXACT at each period end — prefer this over guessing values.","inputSchema":{"type":"object","required":["instrument"],"properties":{"lookback":{"type":"string"},"resample":{"enum":["none","weekly","monthly","quarterly","yearly"],"type":"string"},"instrument":{"type":"string"},"include_points":{"type":"boolean"}},"additionalProperties":false},"logicalName":"get_series","displayName":"get_series","title":"get_series","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_chart","description":"Build a TBL-branded, interactive chart and return a LINK the user opens in their browser (zoom, pan, toggle series, Light/Dark toggle, PNG download; default dark — theme:\"light\" opens in light mode). To change a chart, call this again with adjusted arguments.\nIMPORTANT: after this tool returns, you MUST show the user the chart link as a clickable markdown link in your reply (e.g. \"[Open the chart](URL)\") — paste the actual URL, never leave it only in the tool result.\nSpreads: the catalog spread","inputSchema":{"type":"object","required":["series"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"events":{"type":"array","items":{"type":"object","required":["date"],"properties":{"date":{"type":"string"},"pane":{"type":"number"},"color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"label":{"type":"string"}},"additionalProperties":false},"maxItems":12},"series":{"type":"array","items":{"type":"object","properties":{"z":{"type":"number"},"ma":{"type":"number"},"axis":{"enum":["left","right"],"type":"string"},"pane":{"type":"number"},"type":{"enum":["line","area","bar"],"type":"string"},"color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"label":{"type":"string"},"shift":{"type":"number"},"change":{"enum":["1d","1w","1m","3m","6m","1y"],"type":"string"},"ma_type":{"enum":["sma","ema"],"type":"string"},"averages":{"type":"array","items":{"type":"object","properties":{"end":{"type":"string"},"color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"label":{"type":"string"},"start":{"type":"string"},"period":{"type":"string"}},"additionalProperties":false}},"axis_max":{"type":"number"},"axis_min":{"type":"number"},"callouts":{"type":"array","items":{"type":["string","object"],"properties":{"date":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false},"maxItems":6},"log_axis":{"type":"boolean"},"resample":{"enum":["weekly","monthly","quarterly","yearly"],"type":"string"},"correlate":{"type":"object","required":["a","b"],"properties":{"a":{"type":"string"},"b":{"type":"string"},"op":{"enum":["correlation","beta","covariance"],"type":"string"},"window":{"type":"number"}},"additionalProperties":false},"instrument":{"type":"string"},"change_from":{"type":"string"},"change_type":{"enum":["percent","nominal","annualized","log"],"type":"string"},"invert_axis":{"type":"boolean"},"rolling_sum":{"type":"number"},"color_by_sign":{"type":"boolean"},"resample_method":{"enum":["last","mean","sum"],"type":"string"}},"additionalProperties":false},"minItems":1},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"transform":{"type":"object","required":["type"],"properties":{"base":{"type":["string","object"],"properties":{"average":{"type":"object","properties":{"end":{"type":"string"},"start":{"type":"string"}},"additionalProperties":false}},"additionalProperties":false},"type":{"enum":["none","spread","ratio","index_to_100","pct_change"],"type":"string"},"label":{"type":"string"}},"additionalProperties":false},"chart_type":{"enum":["line","area","bar"],"type":"string"},"start_date":{"type":"string"},"fill_between":{"type":"array","items":{"type":"object","required":["upper","lower"],"properties":{"color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"lower":{"type":["number","string"]},"upper":{"type":["number","string"]},"opacity":{"type":"number"}},"additionalProperties":false},"maxItems":4},"pane_heights":{"type":"array","items":{"type":"number"}}},"additionalProperties":false},"logicalName":"create_chart","displayName":"create_chart","title":"create_chart","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_shaded_chart","description":"Build a chart with SHADED BACKGROUND REGIONS (vertical bands behind the data) and return a link. Same series/pane/MA options as create_chart, plus a `shading` block with three modes:\n• \"regime\" — shade by a baked-in named dataset. set:\"us_recession\" = NBER recessions (gray bands, 1900→present) — the classic \"S&P 500 with recession bands\": series=[{instrument:\"sp500\"}], shading={mode:\"regime\", set:\"us_recession\"}, lookback:\"25y\". set:\"us_president\" = US presidential party by term (blue = Democrat","inputSchema":{"type":"object","required":["series","shading"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"events":{"type":"array","items":{"type":"object","required":["date"],"properties":{"date":{"type":"string"},"pane":{"type":"number"},"color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"label":{"type":"string"}},"additionalProperties":false},"maxItems":12},"series":{"type":"array","items":{"type":"object","properties":{"z":{"type":"number"},"ma":{"type":"number"},"axis":{"enum":["left","right"],"type":"string"},"pane":{"type":"number"},"type":{"enum":["line","area","bar"],"type":"string"},"color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"label":{"type":"string"},"shift":{"type":"number"},"change":{"enum":["1d","1w","1m","3m","6m","1y"],"type":"string"},"ma_type":{"enum":["sma","ema"],"type":"string"},"averages":{"type":"array","items":{"type":"object","properties":{"end":{"type":"string"},"color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"label":{"type":"string"},"start":{"type":"string"},"period":{"type":"string"}},"additionalProperties":false}},"axis_max":{"type":"number"},"axis_min":{"type":"number"},"callouts":{"type":"array","items":{"type":["string","object"],"properties":{"date":{"type":"string"},"label":{"type":"string"}},"additionalProperties":false},"maxItems":6},"log_axis":{"type":"boolean"},"resample":{"enum":["weekly","monthly","quarterly","yearly"],"type":"string"},"correlate":{"type":"object","required":["a","b"],"properties":{"a":{"type":"string"},"b":{"type":"string"},"op":{"enum":["correlation","beta","covariance"],"type":"string"},"window":{"type":"number"}},"additionalProperties":false},"instrument":{"type":"string"},"change_from":{"type":"string"},"change_type":{"enum":["percent","nominal","annualized","log"],"type":"string"},"invert_axis":{"type":"boolean"},"rolling_sum":{"type":"number"},"color_by_sign":{"type":"boolean"},"resample_method":{"enum":["last","mean","sum"],"type":"string"}},"additionalProperties":false},"minItems":1},"shading":{"type":"object","required":["mode"],"properties":{"a":{"type":"object","required":["instrument"],"properties":{"ma":{"type":"number"},"ma_type":{"enum":["sma","ema"],"type":"string"},"instrument":{"type":"string"}},"additionalProperties":false},"b":{"type":"object","required":["instrument"],"properties":{"ma":{"type":"number"},"ma_type":{"enum":["sma","ema"],"type":"string"},"instrument":{"type":"string"}},"additionalProperties":false},"op":{"enum":["above","below"],"type":"string"},"set":{"type":"string"},"mode":{"enum":["regime","condition","bands"],"type":"string"},"pane":{"type":"number"},"bands":{"type":"array","items":{"type":"object","required":["start"],"properties":{"end":{"type":"string"},"color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"label":{"type":"string"},"start":{"type":"string"}},"additionalProperties":false}},"colors":{"type":"object","properties":{"up":{"enum":["orange","green","red","blue","purple"],"type":"string"},"down":{"enum":["orange","green","red","blue","purple"],"type":"string"}},"additionalProperties":false},"labels":{"type":"object","properties":{"up":{"type":"string"},"down":{"type":"string"}},"additionalProperties":false},"opacity":{"type":"number"},"show_labels":{"type":"boolean"}},"additionalProperties":false},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"chart_type":{"enum":["line","area","bar"],"type":"string"},"start_date":{"type":"string"},"fill_between":{"type":"array","items":{"type":"object","required":["upper","lower"],"properties":{"color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"lower":{"type":["number","string"]},"upper":{"type":["number","string"]},"opacity":{"type":"number"}},"additionalProperties":false},"maxItems":4},"pane_heights":{"type":"array","items":{"type":"number"}}},"additionalProperties":false},"logicalName":"create_shaded_chart","displayName":"create_shaded_chart","title":"create_shaded_chart","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_period_returns","description":"Monthly/weekly/quarterly/yearly performance breakdown of one instrument (e.g. \"Bitcoin monthly returns for 2026\"). Set change_type:\"nominal\" for point moves instead of % (e.g. MOVE/VIX index points). Returns a markdown TABLE (show it to the user verbatim) and a chart link — you MUST present that link as a clickable markdown link in your reply. Call list_instruments first to resolve ids.","inputSchema":{"type":"object","required":["instrument"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"year":{"type":"number"},"theme":{"enum":["dark","light"],"type":"string"},"period":{"enum":["monthly","weekly","quarterly","yearly"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"instrument":{"type":"string"},"start_date":{"type":"string"},"change_type":{"enum":["percent","nominal"],"type":"string"}},"additionalProperties":false},"logicalName":"analyze_period_returns","displayName":"analyze_period_returns","title":"analyze_period_returns","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_performance","description":"Risk/return summary of ONE instrument: total return, CAGR, annualized vol, max drawdown, best/worst day, % positive, optional Sharpe. Chart = equity curve + drawdown. For a deep drawdown-episode breakdown use analyze_drawdown; for a multi-asset tearsheet use risk_dashboard. Returns a markdown TABLE (show it to the user verbatim) and a chart link — you MUST present that link as a clickable markdown link in your reply. Call list_instruments first to resolve ids.","inputSchema":{"type":"object","required":["instrument"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"risk_free":{"type":"boolean"},"instrument":{"type":"string"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_performance","displayName":"analyze_performance","title":"analyze_performance","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_correlation","description":"Correlation between 2+ instruments (daily returns). Two → coefficient + scatter; three+ → matrix + heatmap; with rolling_days → rolling-correlation line. With exactly 2 instruments + rolling_days you can also set metric:\"beta\" or \"covariance\" for a ROLLING BETA / ROLLING COVARIANCE line instead — e.g. \"rolling 90-day beta of bitcoin to the S&P 500\" → {instruments:[\"sp500\",\"btcusd\"], rolling_days:90, metric:\"beta\"} (benchmark FIRST). Beta/covariance are computed on daily % returns (percentage-poi","inputSchema":{"type":"object","required":["instruments"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"metric":{"enum":["correlation","beta","covariance"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"start_date":{"type":"string"},"instruments":{"type":"array","items":{"type":"string"},"minItems":2},"rolling_days":{"type":["number","array"],"items":{"type":"number"}}},"additionalProperties":false},"logicalName":"analyze_correlation","displayName":"analyze_correlation","title":"analyze_correlation","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_rate_of_change","description":"Period-over-period change of one instrument with z-score and percentile vs its own history (\"how stretched is X\"). Chart = the change series with ±2σ bands. change_type:\"annualized\" reports the compound ANNUALIZED pace (e.g. 3-month annualized CPI); \"log\" reports 100·ln(v/prev). For calendar-bucket return tables (each month/quarter/year) use analyze_period_returns. Returns a markdown TABLE (show it to the user verbatim) and a chart link — you MUST present that link as a clickable markdown link i","inputSchema":{"type":"object","required":["instrument"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"period":{"enum":["1d","1w","1m","3m","1y"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"instrument":{"type":"string"},"start_date":{"type":"string"},"change_type":{"enum":["annualized","log"],"type":"string"}},"additionalProperties":false},"logicalName":"analyze_rate_of_change","displayName":"analyze_rate_of_change","title":"analyze_rate_of_change","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_regression","description":"OLS regression. kind \"xy\": regress y on x (β/alpha/R²/residual) with a scatter + fit line. kind \"trend\": y vs time (use basis \"log\" for power-law-style) with an actual-vs-fitted chart. kind \"multi\": MULTI-FACTOR OLS — regress y on 2–4 x instruments at once (pass them in xs), e.g. \"which macro drivers explain bitcoin\": {kind:\"multi\", y:\"btcusd\", xs:[\"nasdaq\",\"dxy\",\"us_10y_yield\"]}. Reports per-factor beta/SE/t/p (large-sample normal approx), R², adjusted R², Durbin–Watson; set standardized:true t","inputSchema":{"type":"object","required":["kind","y"],"properties":{"x":{"type":"string"},"y":{"type":"string"},"xs":{"type":"array","items":{"type":"string"},"maxItems":4,"minItems":2},"kind":{"enum":["xy","trend","multi"],"type":"string"},"size":{"enum":["responsive","social","slide","report"],"type":"string"},"basis":{"enum":["returns","levels","log"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"start_date":{"type":"string"},"standardized":{"type":"boolean"}},"additionalProperties":false},"logicalName":"analyze_regression","displayName":"analyze_regression","title":"analyze_regression","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_lead_lag","description":"Lead/lag cross-correlation: does x lead y, and by how many days? Reports peak correlation + optimal lag. Chart = correlation-by-lag (positive lag = x leads y). Returns a markdown TABLE (show it to the user verbatim) and a chart link — you MUST present that link as a clickable markdown link in your reply. Call list_instruments first to resolve ids.","inputSchema":{"type":"object","required":["x","y"],"properties":{"x":{"type":"string"},"y":{"type":"string"},"size":{"enum":["responsive","social","slide","report"],"type":"string"},"step":{"type":"number"},"theme":{"enum":["dark","light"],"type":"string"},"max_lag":{"type":"number"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_lead_lag","displayName":"analyze_lead_lag","title":"analyze_lead_lag","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_seasonality","description":"Average move by calendar month over full history (table) + a month×year heatmap. Great for \"is September weak for bitcoin\". Set change_type:\"nominal\" for average point moves instead of % (e.g. MOVE/VIX in index points). For seasonal LEVEL bands (min/median/max by month) with this year overlaid, use analyze_seasonal_range. Returns a markdown TABLE (show it to the user verbatim) and a chart link — you MUST present that link as a clickable markdown link in your reply. Call list_instruments first to","inputSchema":{"type":"object","required":["instrument"],"properties":{"theme":{"enum":["dark","light"],"type":"string"},"subtitle":{"type":"string"},"instrument":{"type":"string"},"change_type":{"enum":["percent","nominal"],"type":"string"}},"additionalProperties":false},"logicalName":"analyze_seasonality","displayName":"analyze_seasonality","title":"analyze_seasonality","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_relative_performance","description":"Rank multiple instruments by return over a window (table) + a rebased-to-100 overlay chart. E.g. \"compare BTC, gold, S&P, NASDAQ YTD\". Returns a markdown TABLE (show it to the user verbatim) and a chart link — you MUST present that link as a clickable markdown link in your reply. Call list_instruments first to resolve ids.","inputSchema":{"type":"object","required":["instruments"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"start_date":{"type":"string"},"instruments":{"type":"array","items":{"type":"string"},"minItems":2}},"additionalProperties":false},"logicalName":"analyze_relative_performance","displayName":"analyze_relative_performance","title":"analyze_relative_performance","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_moving_average","description":"Overlay one or more moving averages on an instrument and chart price + MA lines (e.g. \"50 and 200-day SMA of the 2-year bid-to-cover ratio over the past 5 years\"). `windows` are in DATA POINTS/observations: use [50,200] for daily series, smaller like [3,6] for sparse ones (Treasury auctions, monthly econ). MAs are computed over full history then clipped to your date window, so the lines are populated from the window start. Reports latest price vs each MA and the fast-vs-slow relationship (golden","inputSchema":{"type":"object","required":["instrument"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"ma_type":{"enum":["sma","ema"],"type":"string"},"windows":{"type":["array","number"],"items":{"type":"number"}},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"instrument":{"type":"string"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_moving_average","displayName":"analyze_moving_average","title":"analyze_moving_average","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_rsi","description":"Relative Strength Index (Wilder) of one instrument — a 0–100 momentum oscillator with overbought/oversold context (e.g. \"RSI of the NASDAQ\", \"is the 2-year bid-to-cover overbought\"). Works on any series (indices, prices, yields, ratios). Chart = RSI line with 30/50/70 threshold bands. Returns a markdown TABLE (show it to the user verbatim) and a chart link — you MUST present that link as a clickable markdown link in your reply. Call list_instruments first to resolve ids.","inputSchema":{"type":"object","required":["instrument"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"period":{"type":"number"},"end_date":{"type":"string"},"lookback":{"type":"string"},"oversold":{"type":"number"},"subtitle":{"type":"string"},"instrument":{"type":"string"},"overbought":{"type":"number"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_rsi","displayName":"analyze_rsi","title":"analyze_rsi","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_distribution","description":"Statistical distribution of one instrument over a window: median, mean, quartiles, IQR, std dev, min/max, and where the latest value sits (percentile). Use for \"the median MOVE over the past 10 years and its interquartile range\", \"where does X sit vs its own history\". Chart = the actual series with a shaded Q1–Q3 (interquartile) band and a median reference line. For binned frequency bars or a CDF use analyze_histogram. Returns a markdown TABLE (show it to the user verbatim) and a chart link — yo","inputSchema":{"type":"object","required":["instrument"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"instrument":{"type":"string"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_distribution","displayName":"analyze_distribution","title":"analyze_distribution","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_histogram","description":"Histogram (frequency distribution) of one instrument over a window, with mean/median/std, skewness, excess kurtosis (a plain-language fat-tails-vs-normal read) and the modal bin. basis \"levels\" (default) bins the values themselves (e.g. \"histogram of the VIX\"); basis \"returns\" bins period-over-period changes (e.g. \"distribution of daily BTC returns\") and by default overlays a fitted NORMAL curve (same mean/σ, scaled to bin area) so fat tails show at a glance — set overlay:\"none\" to hide it, or o","inputSchema":{"type":"object","required":["instrument"],"properties":{"bins":{"type":"number"},"size":{"enum":["responsive","social","slide","report"],"type":"string"},"basis":{"enum":["levels","returns"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"overlay":{"enum":["normal","none"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"cumulative":{"type":"boolean"},"instrument":{"type":"string"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_histogram","displayName":"analyze_histogram","title":"analyze_histogram","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_bollinger","description":"Bollinger Bands / standard-deviation bands: a moving average with upper/lower bands at ±k standard deviations (e.g. \"Bollinger bands on the S&P\", \"20-day ±2σ bands for bitcoin\"). Reports price vs bands, %B and bandwidth. Chart = price + middle MA + upper/lower band lines. For plain MA overlays (no bands) use analyze_moving_average; for EMA-crossover momentum use analyze_macd. Returns a markdown TABLE (show it to the user verbatim) and a chart link — you MUST present that link as a clickable mark","inputSchema":{"type":"object","required":["instrument"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"period":{"type":"number"},"ma_type":{"enum":["sma","ema"],"type":"string"},"num_std":{"type":"number"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"instrument":{"type":"string"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_bollinger","displayName":"analyze_bollinger","title":"analyze_bollinger","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_panel","description":"Multi-pane chart: stack 2–4 panes that share one time axis and zoom together (TradingView-style), e.g. price on top with RSI below, or price + Bollinger + RSI. Each pane plots one indicator of an instrument. Build the `panes` array in top-to-bottom order. Indicators: \"price\" (raw line), \"rsi\", \"roc\" (rate of change), \"bollinger\" (MA ± σ bands), \"sma\" (price + moving averages). Panes default to the top-level `instrument` but each can override with its own. For stacking arbitrary SERIES (not indic","inputSchema":{"type":"object","required":["panes"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"panes":{"type":"array","items":{"type":"object","required":["indicator"],"properties":{"label":{"type":"string"},"period":{"type":"number"},"ma_type":{"enum":["sma","ema"],"type":"string"},"num_std":{"type":"number"},"windows":{"type":["array","number"],"items":{"type":"number"}},"indicator":{"enum":["price","rsi","roc","bollinger","sma"],"type":"string"},"instrument":{"type":"string"},"roc_period":{"enum":["1d","1w","1m","3m","1y"],"type":"string"}},"additionalProperties":false},"maxItems":4,"minItems":2},"theme":{"enum":["dark","light"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"instrument":{"type":"string"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_panel","displayName":"analyze_panel","title":"analyze_panel","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_cumulative","description":"Running total or trailing rolling SUM of one instrument (e.g. \"12-month rolling federal deficit\", \"cumulative Treasury issuance\"). mode \"rolling\" (default) sums the trailing `periods` observations; mode \"running\" is a cumulative total from the window start. Chart = the summed series. Returns a markdown TABLE (show it to the user verbatim) and a chart link — you MUST present that link as a clickable markdown link in your reply. Call list_instruments first to resolve ids.","inputSchema":{"type":"object","required":["instrument"],"properties":{"mode":{"enum":["rolling","running"],"type":"string"},"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"periods":{"type":"number"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"instrument":{"type":"string"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_cumulative","displayName":"analyze_cumulative","title":"analyze_cumulative","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_composition","description":"Stacked breakdown of 2+ instruments over time (e.g. \"CPI by category\", \"US energy supply by fuel\", \"Fed balance-sheet components\"). Buckets each series to the period (default yearly) and stacks them; set share:true for a 100%-stacked share-of-total view. Chart = stacked bars. Returns a markdown TABLE (show it to the user verbatim) and a chart link — you MUST present that link as a clickable markdown link in your reply. Call list_instruments first to resolve ids.","inputSchema":{"type":"object","required":["instruments"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"share":{"type":"boolean"},"theme":{"enum":["dark","light"],"type":"string"},"period":{"enum":["monthly","quarterly","yearly"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"start_date":{"type":"string"},"instruments":{"type":"array","items":{"type":"string"},"minItems":2}},"additionalProperties":false},"logicalName":"analyze_composition","displayName":"analyze_composition","title":"analyze_composition","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_seasonal_range","description":"Seasonality bands: the current year vs the historical monthly distribution (min / 25th / median / 75th / max across prior years), e.g. \"is electricity demand / the 10Y above its seasonal range\". Chart = this-year line over the historical bands. For average % move per calendar month + a month×year heatmap, use analyze_seasonality. Returns a markdown TABLE (show it to the user verbatim) and a chart link — you MUST present that link as a clickable markdown link in your reply. Call list_instruments","inputSchema":{"type":"object","required":["instrument"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"instrument":{"type":"string"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_seasonal_range","displayName":"analyze_seasonal_range","title":"analyze_seasonal_range","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_ranked_change","description":"Ranked cross-section: take a basket of instruments, compute each one's change over ONE period, and sort them into horizontal bars (CNBC-style \"who moved most\"). Use for \"retail sales by category\", \"CPI by component ranked\", or \"YoY change of BTC vs gold vs S&P, descending\". Unit-aware: price-like series report %, rate/%-unit series report percentage points (don't mix the two in one basket). Pass instruments[] OR a named basket: cpi_components, retail_sectors, major_assets. Chart = sorted horizon","inputSchema":{"type":"object","properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"order":{"enum":["desc","asc"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"basket":{"enum":["cpi_components","retail_sectors","major_assets"],"type":"string"},"period":{"enum":["yoy","mom","qoq","ytd"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"highlight":{"enum":["max","min","none"],"type":"string"},"start_date":{"type":"string"},"instruments":{"type":"array","items":{"type":"string"},"minItems":2}},"additionalProperties":false},"logicalName":"analyze_ranked_change","displayName":"analyze_ranked_change","title":"analyze_ranked_change","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_rolling_regression","description":"Rolling-window OLS of one instrument on ONE other — how beta / alpha / R² EVOLVE over time (regime shifts in sensitivity). Use for \"rolling beta of bitcoin to the NASDAQ\": {y:\"btcusd\", x:\"nasdaq\", window:252}. `window` is in OBSERVATIONS (data points): 252 ≈ 1 year of daily data (the default); use ~52 for weekly or ~36 for monthly series. Runs on aligned daily returns by default (basis:\"levels\" for raw levels), computed over full history then clipped to your date window. Chart = one pane per met","inputSchema":{"type":"object","required":["y","x"],"properties":{"x":{"type":"string"},"y":{"type":"string"},"size":{"enum":["responsive","social","slide","report"],"type":"string"},"basis":{"enum":["returns","levels"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"window":{"type":"number"},"metrics":{"type":"array","items":{"enum":["beta","alpha","r2"],"type":"string"}},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_rolling_regression","displayName":"analyze_rolling_regression","title":"analyze_rolling_regression","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_yield_curve","description":"US Treasury YIELD CURVE snapshot chart: yield (y) vs actual years-to-maturity (x, so the 3M–2Y front end sits close together like an institutional curve chart), one line per snapshot date, using every available tenor (1M, 3M, 6M, 1Y, 2Y, 3Y, 5Y, 7Y, 10Y, 20Y, 30Y). Use for \"the yield curve today vs a month ago vs a year ago\", \"how has the curve steepened since 2024\", \"is the curve inverted\". Each snapshot picks the closest observation at or before that date. The inline table is a tenor × date yi","inputSchema":{"type":"object","properties":{"dates":{"type":"array","items":{"type":"string"},"maxItems":6},"theme":{"enum":["dark","light"],"type":"string"},"subtitle":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_yield_curve","displayName":"analyze_yield_curve","title":"analyze_yield_curve","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_macd","description":"MACD (Moving Average Convergence/Divergence) of one instrument: fast EMA minus slow EMA, a signal EMA of that, and the histogram (MACD − signal). Reports the latest MACD/signal/histogram values, the current cross state (bullish = MACD above signal / bearish = below) and when the last cross happened. Defaults 12/26/9 — e.g. \"MACD on bitcoin\" → {instrument:\"btcusd\", lookback:\"1y\"}; custom speeds → {instrument:\"sp500\", fast:19, slow:39, signal:9}. Works on any catalog id (btcusd, sp500, us_10y_yiel","inputSchema":{"type":"object","required":["instrument"],"properties":{"fast":{"type":"number"},"size":{"enum":["responsive","social","slide","report"],"type":"string"},"slow":{"type":"number"},"theme":{"enum":["dark","light"],"type":"string"},"signal":{"type":"number"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"instrument":{"type":"string"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_macd","displayName":"analyze_macd","title":"analyze_macd","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_drawdown","description":"Drawdown / underwater analysis of one instrument: max drawdown with its peak/trough dates, time to trough, recovery date (or \"not recovered\"), the current drawdown, and the 5 deepest historical drawdowns with dates and total days underwater. E.g. \"bitcoin's worst drawdowns\" → {instrument:\"btcusd\"}; \"S&P drawdown since 2020\" → {instrument:\"sp500\", start_date:\"2020-01-01\"}. Price-like series report % declines; %-unit series (yields) report percentage-point (pp) declines. Chart = two synced panes:","inputSchema":{"type":"object","required":["instrument"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"instrument":{"type":"string"},"start_date":{"type":"string"}},"additionalProperties":false},"logicalName":"analyze_drawdown","displayName":"analyze_drawdown","title":"analyze_drawdown","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"analyze_diffusion","description":"Diffusion / breadth index across a basket: at each date, the % of basket members whose value is ABOVE its own level `period` ago (0–100, 50 = neutral) — a breadth signal like \"how broad is the CPI slowdown\" or \"how many major assets are in an uptrend\". Pass instruments[] (2+) or a named basket (cpi_components, retail_sectors, major_assets): e.g. {basket:\"cpi_components\", period:\"1y\"} = % of CPI categories accelerating YoY; {instruments:[\"btcusd\",\"gold\",\"sp500\",\"nasdaq\",\"dxy\"], period:\"1m\"}. Opti","inputSchema":{"type":"object","properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"basket":{"enum":["cpi_components","retail_sectors","major_assets"],"type":"string"},"period":{"enum":["1w","1m","3m","6m","1y"],"type":"string"},"smooth":{"type":"number"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"start_date":{"type":"string"},"instruments":{"type":"array","items":{"type":"string"},"minItems":2}},"additionalProperties":false},"logicalName":"analyze_diffusion","displayName":"analyze_diffusion","title":"analyze_diffusion","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"create_custom_chart","description":"Render a TBL-branded chart from data YOU provide — values you computed yourself. Use this when no other tool produces the exact chart (custom spans like June→December change per year, derived metrics, hand-built comparisons). NEVER estimate or recall values: first fetch real data with get_series (include_points:true, e.g. resample:\"monthly\"), compute, then pass your results here. Returns a link — present it as a clickable markdown link. Single bar: categories[]+values[]. GROUPED bar (multiple ba","inputSchema":{"type":"object","required":["title"],"properties":{"lows":{"type":"array","items":{"type":"number"}},"color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"highs":{"type":"array","items":{"type":"number"}},"theme":{"enum":["dark","light"],"type":"string"},"series":{"type":"array","items":{"type":"object","properties":{"data":{"type":"array","items":{"type":"array"}},"name":{"type":"string"},"color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"values":{"type":"array","items":{"type":"number"}}},"additionalProperties":false}},"values":{"type":"array","items":{"type":"number"}},"x_name":{"type":"string"},"x_type":{"enum":["category","time","value"],"type":"string"},"y_name":{"type":"string"},"y_unit":{"type":"string"},"markers":{"type":"array","items":{"type":"number"}},"low_name":{"type":"string"},"subtitle":{"type":"string"},"high_name":{"type":"string"},"categories":{"type":"array","items":{"type":["string","number"]}},"chart_type":{"enum":["bar","line","scatter"],"type":"string"},"range_name":{"type":"string"},"marker_name":{"type":"string"},"range_color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"marker_color":{"enum":["orange","green","red","blue","purple"],"type":"string"},"color_by_sign":{"type":"boolean"},"marker_labels":{"type":"array","items":{"type":"string"}}},"additionalProperties":false},"logicalName":"create_custom_chart","displayName":"create_custom_chart","title":"create_custom_chart","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"get_sep","description":"Fed Summary of Economic Projections (SEP): the dot plot + the projection table (median and central tendency for fed funds rate, real GDP, unemployment, PCE & core PCE, by horizon). Defaults to the latest release; pass release like \"2026-06\" for a specific one. Returns a markdown table (show it verbatim) and a dot-plot chart link — present that link as a clickable markdown link. For past SEP median paths vs the realized rate over time (the classic \"hedgehog\" chart) use sep_hedgehog.","inputSchema":{"type":"object","properties":{"release":{"type":"string"}},"additionalProperties":false},"logicalName":"get_sep","displayName":"get_sep","title":"get_sep","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"risk_dashboard","description":"Build a multi-panel risk tearsheet for one or more catalog assets: growth of 100, drawdown, return distribution, and a correlation heatmap, plus a stats table (total return, CAGR, annualized vol, Sharpe, max drawdown, VaR & CVaR, and beta vs any benchmarks). Pass assets[] (catalog ids like btcusd, gold, sp500); optionally benchmarks[] for beta/correlation. For a single-asset summary use analyze_performance. Returns a markdown TABLE (show it to the user verbatim) and a chart link — you MUST prese","inputSchema":{"type":"object","required":["assets"],"properties":{"size":{"enum":["responsive","social","slide","report"],"type":"string"},"theme":{"enum":["dark","light"],"type":"string"},"assets":{"type":"array","items":{"type":"string"},"minItems":1},"rf_rate":{"type":"number"},"end_date":{"type":"string"},"lookback":{"type":"string"},"subtitle":{"type":"string"},"benchmarks":{"type":"array","items":{"type":"string"}},"start_date":{"type":"string"},"var_confidence":{"type":"number"}},"additionalProperties":false},"logicalName":"risk_dashboard","displayName":"risk_dashboard","title":"risk_dashboard","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"sep_hedgehog","description":"The Fed \"HEDGEHOG chart\": the realized fed funds rate as one bold line, with each FOMC SEP release's MEDIAN year-end projections drawn as a short muted path branching off it (the quills) — the classic visual of how the Fed's own forecasts kept missing. Use for \"Fed projections vs what actually happened\", \"plot the dot-plot medians over time\", \"hedgehog chart\". Covers SEP releases back to 2013 (pre-2015 medians are derived from the dot-plot counts). `releases`: omit for the last 12, pass a number","inputSchema":{"type":"object","properties":{"theme":{"enum":["dark","light"],"type":"string"},"releases":{"type":["string","number","array"],"items":{"type":"string"}},"subtitle":{"type":"string"},"projection":{"enum":["fed_funds_rate"],"type":"string"}},"additionalProperties":false},"logicalName":"sep_hedgehog","displayName":"sep_hedgehog","title":"sep_hedgehog","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=The-Bitcoin-Layer&config=eyJ1cmwiOiAiaHR0cHM6Ly9tY3AudGhlYml0Y29pbmxheWVyLmNvbS9tY3AifQ%3D%3D"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22The-Bitcoin-Layer%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.thebitcoinlayer.com%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22The-Bitcoin-Layer%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.thebitcoinlayer.com%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=The+Bitcoin+Layer&connectorUrl=https%3A%2F%2Fmcp.thebitcoinlayer.com%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"The-Bitcoin-Layer\" --url \"https://mcp.thebitcoinlayer.com/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/thebitcoinlayer-mcp-02f219d5ef","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/thebitcoinlayer-mcp-02f219d5ef/tools/{tool}","mcpServerUrl":"https://mcp.thebitcoinlayer.com/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/thebitcoinlayer-mcp-02f219d5ef?live=1"}