All servers · Markets & trading · Company & business data
io.github.cyanheads/secedgar-mcp-server
io.github.cyanheads/secedgar-mcp-server · v0.15.14
New (7 days)Tools changed (7 days)
Measured by MCP Station
| Last check | Reachable |
|---|---|
| Checked at | — |
| Check success 7 / 30 days | — |
| First-try success 30 days | — |
| Median response | — |
| Lookups 30 days | — |
| Authentication | No auth |
| MCP version | 2025-06-18 |
| Rank score | — |
| Declared risk | Read-only (all tools declare readOnlyHint) |
| Capabilities declared | logging, prompts, resources, tools |
| Tool definitions | 16 tools · with description 100% · input schema is an object 100% · read/destructive hints 100% |
Description written by the publisher, not verified
Query SEC EDGAR filings, XBRL financials, and company data via MCP. STDIO or Streamable HTTP.
Connect
streamable-http · https://secedgar.caseyjhand.com/mcp
claude mcp add --transport http secedgar-mcp-server https://secedgar.caseyjhand.com/mcp{
"mcpServers": {
"secedgar-mcp-server": {
"url": "https://secedgar.caseyjhand.com/mcp"
}
}
}Tools as reported by the server
secedgar_company_searchFind companies and retrieve entity info with optional recent filings. Entry point for most EDGAR workflows — resolves tickers, names, or CIKs to entity details, with accession numbers in the result feeding secedgar_get_filing for document content. When a date or form filter carries the scan past thesecedgar_search_filingsSearch EDGAR filings since 1993. Full-text search covers 2001-present (the EFTS index floor); pre-2001 date ranges (to 1993) are served from the archives by form and entity/date. Pre-2001 free text needs entity scope (ticker:/cik:) — with it, the tool reads the entity's matching filings and matchessecedgar_get_filingFetch a specific filing's metadata and document content by accession number. Returns the primary document as readable text. Use offset/next_offset for multi-page access to large filings (10-K, S-1 can exceed 1M chars): pass the next_offset from a truncated response as offset, without section, to reasecedgar_get_financialsGet historical XBRL financial data for a company. Accepts friendly concept names (e.g., "revenue", "net_income", "assets") or raw XBRL tags. Discover available friendly names with secedgar_search_concepts. Handles historical tag changes and deduplicates data automatically. The full series is also stsecedgar_get_snapshotBuild a company financial profile in one call: the latest value of every supported XBRL concept, grouped by statement. Reads the filer's complete companyfacts payload once rather than one request per concept, so it replaces a run of secedgar_get_financials calls when the question is "what do this cosecedgar_get_material_eventsRetrieve a company's 8-K filings with their item codes decoded, optionally filtered to specific items. 8-K item codes are how material events are actually scoped — 1.01 material agreements, 2.02 results of operations, 4.02 non-reliance on previously issued financials, 5.02 officer and director deparsecedgar_get_insider_transactionsFetch Form 4 insider transactions (purchases, sales, grants, exercises) for a company by parsing SEC EDGAR ownership XML. Returns the reporting person, their relationship to the issuer, transaction date, type, shares traded (absolute magnitude), direction (acquire/dispose), price per share, and sharsecedgar_get_institutional_holdingsFetch 13F-HR quarterly institutional holdings by parsing the SEC EDGAR information table XML. company is the institutional filer — its 10-digit CIK (e.g. 0000102909), a ticker, or an entity name (names outside EDGAR's ticker file resolve through EDGAR entity search) — and the tool returns what thatsecedgar_find_holdersFind which institutional managers reported holding an issuer, by searching 13F-HR information tables for one reporting quarter. This is the reverse direction of secedgar_get_institutional_holdings: that tool takes a manager and returns its portfolio, this one takes an issuer and returns its managerssecedgar_get_beneficial_ownersList the 5%-and-over beneficial owners of a public company, parsed from the structured SCHEDULE 13D and SCHEDULE 13G filings made about it. The input is the ISSUER — the company being held — which is the opposite direction from secedgar_get_institutional_holdings, where the input is the manager. 13Dsecedgar_get_fund_holdingsList what an ETF or mutual fund holds, parsed from the NPORT-P portfolio report it files with the SEC every quarter. The input is the fund — a ticker like VOO, a fund series ID, or the registrant trust — which is the opposite direction from the ownership tools: secedgar_get_institutional_holdings ansecedgar_fetch_framesFetch SEC XBRL frames for one concept × one period across all reporting companies. Inline response returns a page of the ranked companies — start at the top or pass offset/next_offset to walk further down the ranking; the full frames response (all reporters) is materialized as df_<id> when a canvassecedgar_compare_companiesCompare 2-10 named companies across 1-8 XBRL concepts, aligned on fiscal years (annual) or calendar quarters (quarterly). This is the middle shape between secedgar_get_financials (one company, one concept, full history) and secedgar_fetch_frames (one concept, one period, every reporting company) — rsecedgar_search_conceptsSearch supported XBRL financial concepts by keyword, statement group, or taxonomy. Use before secedgar_get_financials, secedgar_compare_companies, or secedgar_fetch_frames to discover the right friendly name, or pass a raw XBRL tag (e.g., "NetIncomeLoss") to reverse-lookup which friendly names map tsecedgar_dataframe_describeList the dataframes (df_XXXXX_XXXXX) registered by the data-returning secedgar_* tools — any tool whose response carries a `dataset` handle stages its full result set here. Each entry surfaces source tool, query parameters, creation/expiry timestamps, row count, column schema, and whether the datafrsecedgar_dataframe_queryRun a single-statement SELECT against the canvas dataframes registered by the data-returning secedgar_* tools — any tool whose response carries a `dataset` handle. Inspect a dataframe with secedgar_dataframe_describe first; its column schema is what the SQL has to match. Read-only: writes, DDL, DROP
Tool changes
- 2026-10-24: secedgar_company_search, secedgar_search_filings, secedgar_get_filing, secedgar_get_financials, secedgar_get_snapshot, secedgar_get_material_events, secedgar_get_insider_transactions, secedgar_get_institutional_holdings, secedgar_find_holders, secedgar_get_beneficial_owners, secedgar_get_fund_holdings, secedgar_fetch_frames
- 2026-10-19: secedgar_company_search, secedgar_search_filings, secedgar_get_filing, secedgar_get_financials, secedgar_get_snapshot, secedgar_get_material_events, secedgar_get_insider_transactions, secedgar_get_institutional_holdings, secedgar_find_holders, secedgar_get_beneficial_owners, secedgar_get_fund_holdings, secedgar_fetch_frames
- 2026-10-16: secedgar_company_search, secedgar_search_filings, secedgar_get_filing, secedgar_get_financials, secedgar_get_snapshot, secedgar_get_material_events, secedgar_get_insider_transactions, secedgar_get_institutional_holdings, secedgar_find_holders, secedgar_get_beneficial_owners, secedgar_get_fund_holdings, secedgar_fetch_frames
Repository · JSON · Text for agents · Registry updated 2026-10-23