# secedgar-mcp-server MCP server

Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.

## Links
- Registry page: https://www.getdrio.com/mcp/io-github-cyanheads-secedgar-mcp-server
- Repository: https://github.com/cyanheads/secedgar-mcp-server

## Install
- Command: `npx -y @cyanheads/secedgar-mcp-server`
- Endpoint: https://secedgar.caseyjhand.com/mcp
- Auth: Auth required by registry metadata

## Setup notes
- Package: Npm @cyanheads/secedgar-mcp-server v0.8.4
- Environment variable: EDGAR_USER_AGENT (required)
- Environment variable: MCP_LOG_LEVEL (default info)
- Package: Npm @cyanheads/secedgar-mcp-server v0.8.4
- Environment variable: EDGAR_USER_AGENT (required)
- Environment variable: MCP_HTTP_HOST (default 127.0.0.1)
- Environment variable: MCP_HTTP_PORT (default 3010)
- Environment variable: MCP_HTTP_ENDPOINT_PATH (default /mcp)
- Environment variable: MCP_PUBLIC_URL
- Environment variable: MCP_AUTH_MODE (default none)
- Environment variable: MCP_LOG_LEVEL (default info)
- The upstream registry signals required auth or secrets.
- Remote endpoint: https://secedgar.caseyjhand.com/mcp

## Tools
- secedgar_company_search (Secedgar Company Search) - Find 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. Endpoint: https://secedgar.caseyjhand.com/mcp
- secedgar_search_filings (Secedgar Search Filings) - Search the full-text index of EDGAR filings since 1993. Supports exact phrases, boolean operators, wildcards, and entity targeting (ticker:AAPL or cik:320193 in query). Endpoint: https://secedgar.caseyjhand.com/mcp
- secedgar_get_filing (Secedgar Get Filing) - Fetch 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 to read the next page. Use section to jump directly to a heading (e.g. 'risk factors', 'item 7') without needing an offset. Endpoint: https://secedgar.caseyjhand.com/mcp
- secedgar_get_financials (Secedgar Get Financials) - Get 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. Endpoint: https://secedgar.caseyjhand.com/mcp
- secedgar_get_insider_transactions (Get Insider Transactions) - Fetch 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 shares owned after the transaction. Covers nonDerivative transactions (open-market buys/sells, gifts) and derivative transactions (option exercises, RSU vests). When a canvas is available, the full set of transactions parsed from the scanned recent filings is materialized as df_<id> (the inline list is a preview capped at limit) — query it with secedgar_dataframe_query to aggregate net buy/sell by insider: SUM(CASE WHEN direction='dispose' THEN -shares_traded ELSE shares_traded END). Use secedgar_search_filings with forms=["4"] for broader date-range queries or to search across all companies. Endpoint: https://secedgar.caseyjhand.com/mcp
- secedgar_get_institutional_holdings (Get Institutional Holdings) - Fetch 13F-HR quarterly institutional holdings by parsing the SEC EDGAR information table XML. ticker_or_cik is the institutional filer (e.g., "Vanguard Group" or its CIK 0000102909) — the tool returns what that institution holds. It does not do reverse lookup from a portfolio company to its institutional holders (EDGAR has no issuer-to-13F index); for issuer-side questions, use secedgar_search_filings with forms=["13F-HR"]. The 13F information table lists each position: issuer name, CUSIP, shares held, market value (in whole USD), and put/call designation for options. Sub-lines for the same security are consolidated into distinct positions sorted by value by default (set consolidate=false for raw filing rows). The full parsed holdings set is materialized as df_<id> when a canvas is available — the inline holdings list is a preview capped at limit — so query it with secedgar_dataframe_query to aggregate the whole filing or self-join across quarters on cusip + reporting_period. Institutions with less than $100M in 13(f) securities are exempt and may not file. Use secedgar_search_filings with forms=["13F-HR"] for broader search. Endpoint: https://secedgar.caseyjhand.com/mcp
- secedgar_fetch_frames (Secedgar Fetch Frames) - Fetch SEC XBRL frames for one concept × one period across all reporting companies. Inline response returns the top N ranked companies; the full frames response (all reporters) is materialized as df_<id> when a canvas is available, queryable via secedgar_dataframe_query. Accepts friendly names like "revenue" or "assets" (discover via secedgar_search_concepts) or raw XBRL tags. One call hits one XBRL tag — when a friendly name maps to multiple same-meaning tags, the response's `unqueried_tags` lists the others; call again per tag and UNION/COALESCE in SQL with an analysis-specific priority (e.g. SalesRevenueGoodsNet is goods-only). The response's `related_tags` separately flags alternate-DEFINITION tags a meaningful share of filers use as their primary line (e.g. cash incl. restricted cash, equity incl. noncontrolling interest) — a whole-universe screen on the base tag silently omits those filers; query them separately, but do not blindly union (the semantics differ). Response includes `value_distribution` and `period_end_range` to flag XBRL scale-factor anomalies and fiscal-year mixing. Endpoint: https://secedgar.caseyjhand.com/mcp
- secedgar_search_concepts (Secedgar Search Concepts) - Search supported XBRL financial concepts by keyword, statement group, or taxonomy. Use before secedgar_get_financials 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 to it. Empty search with no filters returns the full catalog. Endpoint: https://secedgar.caseyjhand.com/mcp
- secedgar_dataframe_describe (Secedgar Dataframe Describe) - List dataframes (df_XXXXX_XXXXX) materialized by secedgar_fetch_frames, secedgar_search_filings, secedgar_get_financials, secedgar_get_insider_transactions, and secedgar_get_institutional_holdings. Each entry surfaces source tool, query parameters, creation/expiry timestamps, row count, column schema, and whether the dataframe is truncated relative to the upstream source. Endpoint: https://secedgar.caseyjhand.com/mcp
- secedgar_dataframe_query (Secedgar Dataframe Query) - Run a single-statement SELECT against the canvas dataframes registered by secedgar_fetch_frames, secedgar_search_filings, and secedgar_get_financials. Read-only: writes, DDL, DROP, COPY, PRAGMA, ATTACH, and external-file table functions are rejected. System catalogs (information_schema, pg_catalog, sqlite_master, duckdb_*) are denied — list dataframes via secedgar_dataframe_describe. Optional register_as chains the result as a new dataframe with a fresh TTL. Endpoint: https://secedgar.caseyjhand.com/mcp

## Resources
- secedgar://concepts - XBRL Financial Concepts Reference list of common XBRL financial concepts grouped by financial statement, mapping friendly names accepted by secedgar_get_financials and secedgar_fetch_frames to their XBRL tags. MIME type: text/markdown
- secedgar://filing-types - SEC Filing Types Reference list of common SEC filing types with descriptions, cadence, and typical use cases. Helps choose the forms parameter for secedgar_search_filings or the form_types filter for secedgar_company_search. MIME type: text/markdown

## Prompts
- secedgar_company_analysis - Guide a structured analysis of a public company's SEC filings: identify recent filings, extract financial trends, surface risk factors, and note material events. Arguments: company, focus_areas

## Metadata
- Owner: io.github.cyanheads
- Version: 0.8.4
- Runtime: Npm
- Transports: STDIO, HTTP
- License: Not captured
- Language: Not captured
- Stars: Not captured
- Updated: Jun 4, 2026
- Source: https://registry.modelcontextprotocol.io
