MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Payments & trading

FinzData

Point-in-time stocks, ETFs, futures, GEX, crypto, FX, macro, COT, 13F, ships, ports, flights, power.

Checks passed
12 / 22

2 failed · 8 not measured

Median response
1410 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
41

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 1410 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name FinzData.

  • Pass
    Lists tools

    tools/list returned 41 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 1410 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 1410 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Fail
    Parameters documented

    66 of 135 parameters have a description (49%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-10T23:13:17.108526Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using FinzData

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http finzdata https://api.finzdata.com/mcp

Capabilities

Tools 41

backtest_export

Answers 'give me this stock's bars ready to load into my backtester.' Give a symbol and a framework (backtrader, backtesting_py, vectorbt, zipline, lean, nautilus, freqtrade or qlib); optionally start and end. Returns files (path, encoding, content) plus load_code - write each file at its path, then run load_code. Bars are clipped to as_of; start defaults to 365 days before end. Free keys get the last 12 months; full history with a FinzData plan.

Discovered
backtest_stockcharts_scan

Answers 'backtest my StockCharts scan on real history.' Give a scan and a start date; optionally end, symbols (e.g. a ChartList) to restrict the universe, top_n (default 50) and rebalance (D/W/M/Q, default W). Each rebalance holds the stocks that pass the scan, equally weighted up to top_n, at 10 bps costs, on point-in-time US stocks since 2000 with delisted names included. Returns the translation plus the same stats, benchmark and equity curve as run_backtest. Costs one backtest; free keys cover the last 12 months.

Discovered
claim_mcp_server

Answers 'claim this directory listing so I can enable price-accuracy checks for it.' Give the slug of the listing you own; first claimant wins. Returns the claimed slug. If it is already claimed or the slug is unknown, the error says so - contact info@finzdata.com to dispute a claim.

Discovered
comment_strategy

Answers 'ask a question or leave a note on this strategy.' Give a slug and a body (1-2000 characters) - a question, a result from a fork, or a suggested change. Returns the posted comment and the strategy's page URL. Posts a public comment under your handle. If the slug is unknown or private, the error says so - call list_strategies to find a public strategy.

Discovered
compare_runs

Answers 'which of my backtests performed best?' Give run_ids from earlier run_backtest calls in this session. Returns a table (run_id, CAGR, Sharpe, max drawdown, turnover, final equity) for each run. If a run_id is unknown, the error names it - call run_backtest again to get a fresh run_id, or list_strategies to compare published strategies instead.

Discovered
describe_dataset

Answers 'what fields and coverage does this dataset have?' Give a dataset id from search_datasets (for example prices_daily, cot, gex_daily). Returns the schema, coverage and field definitions. If the id is unknown, the error lists every valid id - call search_datasets to browse them instead of guessing.

Discovered
fork_strategy

Answers 'copy this published strategy and change one thing.' Give a slug and changes (nested fields merged, e.g. signal lookback 252 to 126); optionally a new title. Returns the fork's slug and page URL. Re-runs the strategy on the server and publishes the fork linked to its parent. Costs one backtest. If the slug is unknown, the error says so - call list_strategies or get_strategy to find a valid slug first.

Discovered
get_13f

Answers 'who owns this stock, and what does this manager hold?' Give a query such as a manager name ('BERKSHIRE') or a ticker ('AAPL'). Returns 13F holdings as known on as_of (defaults to today); filings after as_of are hidden. Free keys get the last 12 months; full history with a FinzData plan.

Discovered
get_bars

Answers 'what did these stocks do between these dates?' Give symbols (a list, or '/ES' for a futures root - plain 'ES' is the stock Eversource), start and end dates. Returns daily OHLCV bars clipped to as_of so no future data leaks; up to 5,000 rows per page, use next_cursor for more. Covers 16,000+ US stocks since 2000 including delisted names, plus 5,100+ ETFs. Free keys get daily bars for the last 12 months; intraday bars and full history with a FinzData plan.

Discovered
get_cot

Answers 'how are traders positioned in this market?' Give a market (for example GOLD or CRUDE_OIL) and a start date; optionally end. Returns CFTC Commitments of Traders rows - managed money, producers, swap dealers, leveraged funds and asset managers, long/short/net - clipped to as_of, up to 5,000 rows per page. Covers CFTC COT since 1986. Free keys get the last 12 months; full history with a FinzData plan.

Discovered
get_crypto

Answers 'what did BTC (or ETH, SOL) do?' Give a symbol (pair, e.g. BTC-USD) and optionally interval (1min, 5min, 15min, 30min, 1hour or 1day, default 1day) plus start and end. Returns OHLCV bars clipped to as_of. Covers 512 crypto pairs (BTC-USD since 2013, ETH-USD since 2016, SOL-USD and more). Free keys get daily bars for the last 12 months; intraday bars and full history with a FinzData plan.

Discovered
get_events

Answers 'when is this earnings report, or the next CPI / payrolls / FOMC release?' Give kind earnings or macro, plus start and end dates. Returns events clipped to as_of, up to 5,000 rows per page. kind=macro returns market-moving releases by default (CPI, payrolls, GDP, PCE, retail sales, claims, ISM and more); pass all_releases=true for every data release. Earnings cover US company report dates; macro covers the full release calendar.

Discovered
get_fundamentals_pit

Answers 'what were this company's fundamentals as known on this date - before later restatements?' Give a symbol and as_of (defaults to today). Returns SEC fundamentals as filed (earnings yield, book-to-market, ROE, leverage and more) exactly as known on that date. Covers US stocks with fundamentals from 2011. Free keys get the last 12 months; full history with a FinzData plan.

Discovered
get_futures

Answers 'give me every ES contract since 2007' (or any futures market's history). Give a root (ES, NQ, YM, RTY, CL, GC, SI, NG, ZN, ZB, VX, 6E and more; a leading '/' is fine) for the continuous back-adjusted series, or a contract (e.g. ESZ26) for one contract; optionally interval (1min, 5min, 15min, 30min, 1hour) for intraday bars. Returns daily OHLCV and open interest, clipped to as_of. Covers 139 futures markets (CME, CBOT, NYMEX, COMEX, ICE, Eurex, Cboe) with every individual contract since 2007. Free keys get the last 30 days; full history with a FinzData plan.

Discovered
get_futures_rolls

Answers 'when does ES roll next - and what back-adjustment did the roll add?' Give a root (ES, CL, GC and more) or ALL for every market; optionally start and end. Returns the roll calendar for all 139 futures markets since 2007: for each front-month contract its first and last date as front month, expiry, the next contract, the roll date, trading days before expiry, and the back-adjustment added to its prices in the continuous series. The current front month carries an estimated next roll date.

Discovered
get_fx

Answers 'what did EURUSD (or USDJPY) do?' Give a symbol (currency pair, e.g. EURUSD) and optionally interval (1min, 5min, 15min, 30min, 1hour or 1day, default 1day) plus start and end. Returns OHLC bars, times in US Eastern, clipped to as_of. Covers 79 currency pairs (EURUSD, USDJPY, GBPUSD and more) since January 2010. Free keys get daily bars for the last 12 months; paid keys get every bar size.

Discovered
get_gex

Answers 'is dealer gamma long or short for this ticker - where are the gamma flip, call wall and put wall?' Give a ticker plus start/end for a time series, or a date alone for every name that session ranked by absolute net gamma. Returns one row per ticker per session: spot, net/call/put gamma in $bn per 1% move, flip, call/put walls, put-call open-interest ratio and at-the-money IV, each stamped with knowledge_time (17:00 New York). Point-in-time GEX for US stocks, ETFs and major indexes. A ticker series also returns `summary`: regime (long/short gamma), distance to the flip and walls, and a one-line read to quote. Free keys get the last 30 days; full history with a FinzData plan. meta.upgrade lists the available history options to show the user.

Discovered
get_global_pulse

Answers 'how busy is the Suez Canal (or Singapore port, or US airspace) right now?' Give a dataset (chokepoints, ports, port_calls, air, air_europe, air_us or road); optionally match to filter by name or id (e.g. Suez, Singapore, JFK) and dim for air data. Returns daily real-world activity that leads the official statistics: ship transits through 28 chokepoints since 2019, port calls and estimated imports/exports for 2,000+ ports, daily flights by airport, airline, country and region, US flights, cancellations and delays since 1987, and toll and congestion-zone traffic. Taiwan and Korea chip exports are macro series - use get_macro_vintage for those.

Discovered
get_index

Answers 'what did the S&P 500 (or VIX) do?' Give a symbol (index, e.g. SPX, NDX, VIX, RUT, DXY) and optionally interval (1min, 5min, 15min, 30min, 1hour or 1day, default 1day) plus start and end. Returns OHLC bars, times in US Eastern, clipped to as_of. Covers 123 indexes: S&P 500, Nasdaq-100, Dow, Russell 2000, VIX and its term structure, sector and style indexes, DAX, AEX, the dollar index and Treasury yield indexes. Free keys get daily bars for the last 12 months; paid keys get every bar size.

Discovered
get_macro_vintage

Answers 'what was inflation (or GDP, payrolls, retail sales) as first published on this date - not as later revised?' Give a series id (for example CPIAUCSL) and as_of; optionally start. Returns the series as actually published by as_of, with every vintage kept, across 22,700+ macro series (finzdata.com). Free keys get the last 12 months; full history and every vintage with a FinzData plan.

Discovered
get_mcp_server

Answers 'show me this MCP server's listing, tools and probe history.' Give a slug from search_mcp_servers. Returns the listing with tools, probe history, issues and verified-data status, plus its directory page URL. If the slug is unknown, the error says so - call search_mcp_servers to browse servers and copy a valid slug.

Discovered
get_options_eod

End-of-day US options chains since January 2010 for 5,800+ underlyings (stocks, ETFs and indexes, delisted included): every strike and expiry each day with last, bid, ask, bid and ask implied volatility, open interest, volume, delta, gamma, vega, theta and rho. Give symbol and day (YYYY-MM-DD; default the latest day); optional expiry (YYYY-MM-DD) and right (C or P) narrow the chain. Clipped to as_of. Free keys get the last 12 months; FinzData Options EOD gives the full history: one underlying $49, Magnificent 7 + SPY + QQQ $495, every underlying $2,950 (https://finzdata.com/options-eod-data).

Discovered
get_political_spending

Answers 'who is spending election money, where, and on what?' Give a table (races, candidates, donor_geo, race_geo, flows, spending, vendors, state_local, state_local_geo); optionally cycle (2026, 2022 or 2018), state (2-letter code) and office (H or S). Returns cleaned, rolled-up FEC plus state and city filings. Free keys get every race's totals and national/regional/state donor geography; deeper tables need a PoliSpend purchase.

Discovered
get_quant_model

Answers 'what macro regime are we in, and how stressed is the S&P 500?' Give as_of (defaults to today), or nothing for the latest reading. Returns the FinzData Quantitative Model labels as known on that date - financial-conditions and risk direction, growth level and direction, inflation direction, macro quadrant (GOLDILOCKS/REFLATION/STAGFLATION/SLOWDOWN), liquidity and credit - plus the growth/inflation nowcast and the daily S&P 500 market-stress probability. Labels use each input as published on that date, never later revisions.

Discovered
get_strategy

Answers 'show me this published strategy - its spec, backtest and forward record.' Give a slug from list_strategies. Returns the spec, server-computed backtest result, forward-tracking record and fork lineage, plus its public page URL. If the slug is unknown or the strategy is private, the error says so - call list_strategies to browse public strategies.

Discovered
get_ticks

Answers 'show me every NVDA trade on this day.' Give a symbol and a day (YYYY-MM-DD); optionally start/end times (HH:MM, US Eastern) to narrow the window, or omit day to list the days available. Returns every trade print (time in UTC nanoseconds and ISO, price, size, exchange, condition codes) for 1,100+ US stocks and ETFs over the last 5 years. Buyers get the trades; other keys get the day's trade count, first and last trade and the history options available. Free sample for every key: all trades on 2026-10-01 for SPY, QQQ, NVDA, AAPL, TSLA, MSFT, AMZN, META, AMD and IWM.

Discovered
get_universe

Answers 'which US stocks were trading on this date - including ones that later delisted?' Give as_of (YYYY-MM-DD, defaults to today); optionally index top500/top1000/top3000 for the most-traded names priced at least $5 that day, prefix to filter, offset to page through 500 at a time. Returns the symbols trading that day across 16,000+ US stocks since 2000, delisted included. Free keys see the last 12 months; full history with a FinzData plan.

Discovered
get_verified_record

Answers 'show me this verified strategy's forward record.' Give a record_id from register_strategy or the verified_board. Returns the record: signal, universe, registration date and every forward result since. If the id is unknown, the error says so - call verified_board to browse records and copy a valid id.

Discovered
list_strategies

Answers 'what are the best published strategies on the FinzData Hub?' Optionally sort by benchmark (full record re-run nightly through today; strategies beating their benchmark on return and Sharpe first), robust (deflated Sharpe), forward (forward Sharpe, 63+ days out-of-sample), new or forks; optionally filter by family (momentum, expr, ma_cross, factor) and limit. Returns the matching public strategies; each item carries vs_benchmark, the full-record verdict. Use get_strategy for one strategy's full spec and record.

Discovered
publish_strategy

Answers 'publish this backtest as a public, reproducible strategy page.' Give a spec (same format as run_backtest), a title (1-120 characters) and your hypothesis (what would falsify it); visibility public or private. Returns the new strategy's slug and page URL. Runs the backtest on the server and publishes it at data.finzdata.com/s/<slug>, forward-tracked daily from today; only server-computed results are stored. Costs one backtest; free accounts may publish 3 a day. Free keys publish over the last 12 months; full history with a FinzData plan.

Discovered
register_strategy

Answers 'score my signal out-of-sample from today, with a record nobody can edit.' Give agent_name, a signal formula, universe (top500/top1000/top3000/all), rebalance (daily/weekly/monthly), side (long/long_short) and top_frac (0-0.5). The strategy is scored only on data after registration, the record can never be edited or deleted, ranking starts at 63 trading sessions, and FinzData never trades on submitted signals. Returns the verified record id - use get_verified_record to read it back.

Discovered
retire_strategy

Answers 'stop forward-tracking one of my verified strategies.' Give the record_id you registered. Returns the retired record id. It stops accruing new forward results, keeps its full history and stays public on the Verified board marked retired. If the id is unknown or is not yours, the error says so - call verified_board to find your record's id.

Discovered
run_backtest

Answers 'would this strategy have worked - without look-ahead or survivorship bias?' Give a JSON spec (universe as a symbol list or top500/top1000/top3000/all, start, end, signal, rebalance D/W/M/Q, top_n, costs_bps, side long or long_short, blind=true to hide tickers). Signals: momentum, ma_cross, factor, or expr formulas over prices and point-in-time fundamentals (from 2011), e.g. 'rank(ret(252)) - rank(vol(60))'. Returns stats, benchmark stats, equity curve, warnings, snapshot id, an overfitting report (trials counted, deflated Sharpe) and a disclaimer. Prices are point-in-time with a 400-day buffer, clipped to as_of; identical specs on the same snapshot are cached and free. Free keys backtest the last 12 months; full history with a FinzData plan.

Discovered
run_strategy

Answers 'how has this published strategy done since it started?' Give a slug from list_strategies; optionally end (default today). Returns stats, benchmark stats, equity curve, the published spec and the strategy page, re-running the strategy exactly as published on its full point-in-time history. Free on every tier, no API key needed. To change parameters use fork_strategy; to test your own idea use run_backtest (free tier: last 12 months; full history with any purchase).

Discovered
search_datasets

Answers 'which FinzData dataset holds this data?' Give a search phrase such as 'crude oil', 'insider trading' or 'housing'. Returns matching dataset ids, titles and descriptions. Use an id with describe_dataset, then call that dataset's tool (for example get_bars for prices, get_macro_vintage for macro). Free; no as_of needed.

Discovered
search_mcp_servers

Answers 'which financial MCP servers can I connect to - and which are healthy?' Give a search phrase q, optionally a category, a minimum grade (A-F) and a limit (1-50, default 10). Returns servers graded nightly by FinzData for health, protocol conformance and prompt-injection risk, with install URLs. Use get_mcp_server for one server's full listing.

Discovered
star_strategy

Answers 'star this strategy so it counts toward Trending.' Give a slug; pass unstar=true to remove your star. Returns the slug, star count and public page URL. Stars feed the Trending list; rankings stay on deflated Sharpe and forward record. If the slug is unknown or private, the error says so - call list_strategies to find a public strategy.

Discovered
survivorship_audit

Answers 'how much of this backtest's return is survivorship bias?' Give a spec (same format as run_backtest, universe top500/top1000/top3000 or a symbol list). Returns both stats plus the inflation in CAGR and Sharpe that survivorship bias adds. Runs it twice - once on the point-in-time universe (delisted companies included while they traded, the honest result) and once on only the names still trading today. Costs one backtest. Free keys audit the last 12 months; full history with a FinzData plan.

Discovered
translate_stockcharts_scan

Answers 'turn my StockCharts scan into a FinzData backtest.' Give a StockCharts scan (e.g. '[type = stock] and [daily close > daily sma(50,daily close)] and [rsi(14) < 70]'). Returns the FinzData signal formula (expr), universe, notes and a ready-to-run backtest spec; clauses not yet supported are listed, never guessed. No data is fetched - call run_backtest with the returned spec, or backtest_stockcharts_scan to run it directly.

Discovered
verified_board

Answers 'which verified strategies are leading?' Optionally give limit (1-200, default 50). Returns the leaderboard of verified strategies, ranked on forward results scored only after registration. Use get_verified_record for one record's full detail.

Discovered
verify_chain

Answers 'prove no verified record was edited or back-dated.' Give nothing. Returns the hash chain over every verified record so anyone can check the record is intact. If the check fails, the result names the broken link - contact info@finzdata.com with the record id.

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected1410 ms41