MCPVault

caveats

MCP tool from Secedgar MCP Server by cyanheads

surface a filer missing one or two calendar quarters, a concept that resolved to a retired XBRL tag for one company, period ends that differ inside one aligned period, and concepts whose unit differs across companies

How to use it

caveats is exposed by the Secedgar MCP Server MCP server. Add the server to your MCP client (Claude Desktop, Cursor, Windsurf and others), and the caveats tool becomes available to the model automatically. See the full listing for setup details and every tool this server provides.

Install Secedgar MCP Server

$docker run -e EDGAR_USER_AGENT="MyApp my@email.com" -p 3010:3010 secedgar-mcp-server
FULL SECEDGAR MCP SERVER LISTING

Other tools in Secedgar MCP Server (22)

item_distribution

counts every code across the scanned window before the filter, so a zero-hit filter comes back with the items that are present rather than a dead end

periods

bounds the inline matrix (1-12, default 4) and the window shrinks further when companies x concepts x periods is too large to return in one response; the full aligned series is always materialized as a df<id> dataframe for growth rates and spreads via secedgardataframequery

quarter

targets a reporting period ("2026-Q1"); omit it for the newest quarter whose 45-day filing deadline has passed. The applied quarter and its filing window are echoed back

related_tags

flags alternate-definition tags some filers use as their primary line (e.g. cash → restricted-cash-inclusive total, equity → NCI-inclusive total), so a whole-universe screen on the base tag isn't silently under-inclusive — query those separately

secedgar_company_search

Find companies and retrieve entity info with optional recent filings

secedgar_compare_companies

Compare named companies across several concepts, aligned on calendar periods

secedgar_dataframe_describe

List canvas dataframes with provenance, TTL, and schema

secedgar_dataframe_drop

Drop a canvas dataframe by name. Opt-in via EDGARDATAFRAMEDROPENABLED=true — off by default since TTL already handles cleanup

secedgar_dataframe_query

Run a single-statement SELECT across dataframes

secedgar_fetch_frames

Fetch SEC XBRL frames for one concept × one period across all reporting companies

secedgar_find_holders

Reverse 13F lookup — which institutional managers reported holding an issuer

secedgar_get_beneficial_owners

5%+ blockholders of an issuer, parsed from structured SCHEDULE 13D / 13G filings

secedgar_get_filing

Fetch a specific filing's metadata and document content

secedgar_get_financials

Get historical XBRL financial data for a company

secedgar_get_fund_holdings

ETF and mutual fund portfolio holdings from the quarterly NPORT-P report

secedgar_get_insider_transactions

Form 4 / 4-A insider transactions (buys, sells, grants, exercises) parsed from ownership XML

secedgar_get_institutional_holdings

13F-HR quarterly institutional holdings parsed from the information table

secedgar_get_material_events

8-K filings with item codes decoded and filterable — earnings, officer changes, non-reliance

secedgar_get_snapshot

One-call financial profile — the latest value of every supported concept, grouped by statement

secedgar_search_concepts

Discover supported XBRL concept names or reverse-lookup a raw tag

secedgar_search_filings

Search EDGAR filings since 1993 — full-text (2001+) plus archive-backed browse for pre-2001 ranges

total_holdings_in_filing

counts raw info-table rows; totalpositions counts distinct positions after consolidation (both before limit)