cyanheads avatar

Secedgar Mcp Server

cyanheads/secedgar-mcp-server

A production-grade interface to the SEC's EDGAR archive with serious depth. You get full-text search across 30 years of filings, XBRL financials with friendly concept names that handle historical tag changes, parsed insider transactions from Forms 3/4/5, and institutional holdings from 13F-HR filings. The frames tool pulls cross-company datasets for a single metric across all filers. Results beyond inline limits land in DuckDB-backed dataframes you can query with SQL. Runs locally via stdio or connects to a public HTTP endpoint. Reach for this when you need structured financial data or filing content without writing your own EDGAR parser or wrestling with raw XBRL taxonomies.

GitHub stars
11
tools
16
auth
Required
transport
STDIO, HTTP
env vars
9
last updated
Nov 8, 2026

Install

From registry metadata
$ npx add-mcp https://secedgar.caseyjhand.com/mcp --name secedgar

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http secedgar https://secedgar.caseyjhand.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 16 tools

Verified live against the running server on Nov 6, 2026.

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 ca...6 params

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. When a date or form filter ca...

Parameters* required
filed_aftervalue
Only include filings filed on or after this date (YYYY-MM-DD). A date filter routes the scan into the older submissions archive pages, so it reaches filings that predate the recent window — the las...
filed_beforevalue
Only include filings filed on or before this date (YYYY-MM-DD). Use alone or with filed_after; together they bound the archive-page scan.
filing_limitinteger
Maximum number of filings to return in the inline list; when more match, the notice names where the rest are. Capped at 50: a larger value, up to 1000, returns what 50 returns.default: 10
formsarray
Filter filings to specific form types (e.g., ["10-K", "10-Q", "8-K"]), matched exactly (case-insensitive) — list an amendment such as "10-K/A" to include it. Without this, returns all form types.
include_filingsboolean
Include recent filings in the response. Set to false for entity-info-only lookups.default: true
query*string
Company ticker symbol (e.g., "AAPL", "VOO"), name (e.g., "Apple"), or CIK number (e.g., "320193"). Ticker is the fastest lookup and works for equities, ETFs, and mutual funds; a multi-class share t...
secedgar_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 matchi...7 params

Search 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 matchi...

Parameters* required
filed_aftervalue
Only include filings filed on or after this date (YYYY-MM-DD). Use alone or with filed_before; alone, the search runs through today (UTC).
filed_beforevalue
Only include filings filed on or before this date (YYYY-MM-DD). Use alone or with filed_after; alone, the search starts at 2001-01-01, or at 1993-01-01 (the archive start) for a date before 2001.
formsarray
Filter to specific form types (e.g., ["10-K", "10-Q", "8-K"]). Without this, searches all form types. Note: "10-K" also matches amendments filed as 10-K/A. SEC renamed the blockholder schedules on...
limitinteger
Results per page. Capped at 100: a larger value, up to 1000, returns what 100 returns.default: 20
offsetinteger
Pagination offset. For sort=relevance on a 2001-onward search, EDGAR pages server-side, and the offset counts matching documents, not filings — EDGAR indexes each document of a filing separately —...default: 0
queryvalue
Full-text search query. Optional — omit (or pass "") to browse by form type and/or entity instead, e.g. every S-1 in a date window, or a company's filings via ticker:/cik:. A date range alone is no...
sortstring
Result ordering. "filing_date_desc" (default) returns most recent first. "filing_date_asc" returns oldest first. "relevance" returns SEC's native search-score order, which weights term match streng...one of filing_date_desc · filing_date_asc · relevancedefault: filing_date_desc
secedgar_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,...7 params

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 as offset,...

Parameters* required
accession_number*string
Filing accession number in either format: "0000320193-23-000106" (dashes) or "000032019323000106" (no dashes). Obtained from secedgar_company_search or secedgar_search_filings results.
cikstring
Filer CIK, digits only (resolve via secedgar_company_search if you have a ticker or name). Optional but recommended — speeds up archive lookup. If omitted, the filer is looked up from the accession...
content_limitinteger
Maximum characters of document text to return per page. 10-K filings can exceed 500,000 characters; S-1/A can exceed 1,000,000. Default 50,000 captures ~12,000 words (typically business overview, r...default: 50000
documentstring
Specific document filename within the filing (e.g., "ex-21.htm" for subsidiaries list). Omitted or blank: the primary document. Available documents are listed in the response metadata under documen...
include_xbrlboolean
Include XBRL viewer artifacts and machine-readable taxonomy files (R*.htm fragments, *_cal/_def/_lab/_pre.xml linkbases, *_htm.xml inline instance, *.xsd schemas, MetaLinks.json, FilingSummary.xml,...default: false
offsetinteger
Character offset into the extracted document text. Pass next_offset from a truncated response to continue reading the next page, and leave section out: section takes precedence over offset. Default...default: 0
sectionstring
Jump to a named section, matched against every detected heading and the document's own lines (e.g. 'risk factors', 'item 7', 'item 2.02', 'certain relationships'). The first match wins, in this ord...
secedgar_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...6 params

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. The...

Parameters* required
company*string
Ticker symbol (e.g., "AAPL") or CIK number. Ticker is preferred.
concept*string
Financial concept — friendly name (e.g., "revenue", "net_income", "assets", "eps_diluted") or raw XBRL tag (e.g., "AccountsPayableCurrent"). Friendly names auto-resolve to the correct XBRL tags and...
limitinteger
Cap the inline data[] to the most-recent N periods (the series is newest-first). The full series is always registered to the dataframe, so older periods stay queryable via secedgar_dataframe_query....
period_typestring
Filter to annual (FY) or quarterly (Q1-Q4) data. "all" returns both. For an instant (balance-sheet) concept, "annual" returns the values dated on the filer's fiscal-year ends. When omitted, default...one of annual · quarterly · all
taxonomystring
XBRL taxonomy. us-gaap for US companies, ifrs-full for foreign filers, dei for entity info (shares outstanding).one of us-gaap · ifrs-full · deidefault: us-gaap
unitstring
SEC unit key to read the series in, for a concept reported in more than one (e.g. "ZAR" and a "USD" convenience translation, or "USD/EUR" among exchange-rate pairs). "USD-per-shares" is read as "US...
secedgar_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 quest...3 params

Build 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 quest...

Parameters* required
company*string
Ticker symbol (e.g. "AAPL") or CIK number. Ticker is preferred.
period_typestring
Which duration periods to report per concept: the latest full year, the latest single quarter, or both (default). Balance-sheet and entity-info concepts are point-in-time and always report their la...one of annual · quarterly · bothdefault: both
taxonomystring
XBRL taxonomy to resolve concepts under. Every concept is looked up in this one taxonomy, so ifrs-full covers only the concepts with confirmed IFRS tag variants and the rest — including the dei ent...one of us-gaap · ifrs-fulldefault: us-gaap
secedgar_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 off...5 params

Retrieve 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 off...

Parameters* required
company*string
Company ticker symbol (e.g. "AAPL"), name (e.g. "Apple"), or CIK number (e.g. "320193"). Ticker is the exact lookup; name search matches current and former names.
filed_aftervalue
Only include filings filed on or after this date (YYYY-MM-DD). A date filter routes the scan into the older submissions archive pages, so it reaches 8-K filings that predate the recent window (the...
filed_beforevalue
Only include filings filed on or before this date (YYYY-MM-DD). Use alone or with filed_after; together they bound the archive-page scan.
itemsarray
Item codes to filter to; a filing matches when it reports any of them. Omit to return every 8-K. Current-regime codes are dotted ("2.02"), pre-2004-08-23 codes are bare integers ("12"), and the two...
limitinteger
Filings returned inline, newest first. Every scanned filing that passes the filter is materialized as a dataframe when there are more than this and a canvas is available. Default 20. Capped at 100:...default: 20
secedgar_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), pr...5 params

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), pr...

Parameters* required
company*string
The issuer whose Form 4 filings to read — the company, not the reporting person. A ticker symbol (e.g., "AAPL"), a CIK with or without zero-padding (e.g., "320193" or "0000320193"), or a company na...
filed_aftervalue
Only read Form 4 filings filed on or after this date (YYYY-MM-DD). A date window reaches filings older than the recent submissions window by paging into the archive, and with a canvas every Form 4...
filed_beforevalue
Only read Form 4 filings filed on or before this date (YYYY-MM-DD). Use alone or with filed_after. Without either bound the tool reads the newest Form 4 filings.
limitinteger
Maximum number of transactions to return across all Form 4 filings fetched. Filings are scanned newest-first. Default 20. Capped at 100: a larger value, up to 1000, returns what 100 returns.default: 20
transaction_typestring
Filter by direction. "purchase" = open-market buys (code P). "sale" = open-market sells (code S). "all" includes grants, awards, exercises, gifts, and other coded transaction types as well.one of purchase · sale · alldefault: all
secedgar_get_institutional_holdingsRead an institutional manager's 13F-HR information table for a quarter. company is the filer: a 10-digit CIK, ticker, or name; names outside the ticker file use EDGAR entity search, and ambiguous names return candidates. For managers holding an issuer, use secedgar_find_holder...5 params

Read an institutional manager's 13F-HR information table for a quarter. company is the filer: a 10-digit CIK, ticker, or name; names outside the ticker file use EDGAR entity search, and ambiguous names return candidates. For managers holding an issuer, use secedgar_find_holder...

Parameters* required
company*string
The institutional filer whose 13F to fetch — a 10-digit CIK (e.g. "0000102909" for VANGUARD GROUP INC, the most reliable form), a ticker, or an entity name. A name is matched against the registrant...
consolidateboolean
When true (default), info-table sub-lines for the same security (CUSIP + class + put/call) are summed into one position and results are sorted by market value descending, so `limit` returns the lar...default: true
limitinteger
Maximum number of holdings rows to return. 13F filings from large institutions can contain thousands of positions. Default 20. Capped at 500: a larger value, up to 1000, returns what 500 returns.default: 20
offsetinteger
Row to start the page at, 0-based, over the ordered position list. Pass the next_offset from the previous response to read the next page — the filing is parsed whole and sliced, so paging is stable...default: 0
quarterstring
Reporting quarter to target, in "YYYY-QN" format (e.g., "2025-Q4"), matched exactly against each 13F-HR's period of report. When omitted, returns the most recent 13F-HR in the submissions feed's re...
secedgar_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 a...4 params

Find 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 a...

Parameters* required
cusipvalue
The issuer's 9-character CUSIP (e.g. "037833100" for Apple common stock; foreign issuers use a CINS starting with a letter, e.g. "H1467J104"). The precise match key — information tables identify ev...
issuer*string
The portfolio company whose holders you want — a ticker ("AAPL"), a 10-digit CIK ("0000320193"), or a company name. Without cusip, this resolves to the company's EDGAR-conformed name, and that name...
limitinteger
Filer rows returned inline. The full fetched set (up to 500 rows) is materialized as a dataframe when a canvas is available. Default 20. Capped at 100: a larger value, up to 1000, returns what 100...default: 20
quartervalue
Reporting quarter to search, "YYYY-QN" (e.g. "2026-Q1"). Omit for the newest quarter whose 45-day filing deadline has passed — the applied quarter and its filing window are echoed in the response....
secedgar_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 in...4 params

List 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 in...

Parameters* required
form_kindstring
Which schedule to return. "13D" is the activist form, filed by a holder that may seek to influence control and carrying a stated purpose of transaction. "13G" is the passive form, available to inst...one of all · 13D · 13Gdefault: all
include_amendmentsboolean
Whether to include amendments (SCHEDULE 13D/A, SCHEDULE 13G/A). Amendments carry the current position and are how an ongoing stake is tracked, so they are included by default. Set false to see only...default: true
issuer*string
The company whose blockholders you want — a ticker ("AAPL"), a 10-digit CIK ("0000320193"), or a company name. This is the subject company of the schedule, not the investor filing it; passing an in...
limitinteger
Number of successfully parsed filings naming the requested issuer to return, newest first. Other-issuer schedules and failed documents do not consume this limit; at most 50 documents are examined....default: 10
secedgar_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_in...5 params

List 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_in...

Parameters* required
fund*string
The fund whose portfolio you want — a fund ticker ("VOO", "SCHD"), an SEC fund series ID ("S000002839"), or a 10-digit CIK. A ticker names one share class of one series and routes directly; a CIK n...
limitinteger
Number of positions to return inline, largest first by percent of net assets. Default 20. A broad index fund reports thousands of positions, so the inline list is a preview — read the whole portfol...default: 20
offsetinteger
Position to start the page at, 0-based, over the full ordered holdings list. Pass the returned next_offset to read the next page — the report is parsed whole and sliced, so paging is stable and gap...default: 0
report_datestring
Target a specific reporting period by its last day (YYYY-MM-DD), e.g. "2025-12-31". Omit for the most recent report. Period ends follow the fund's own fiscal quarters, which are not always calendar...
series_idstring
SEC fund series identifier ("S000002839"), naming which fund of the registrant to report. Takes precedence over any series the fund input implies. Series IDs come back on fund results from secedgar...
secedgar_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...7 params

Fetch 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...

Parameters* required
concept*string
Financial concept — same friendly names as secedgar_get_financials (e.g., "revenue", "assets", "eps_basic") or raw XBRL tag.
limitinteger
Number of companies to return. Capped at 100: a larger value, up to 1000, returns what 100 returns.default: 25
offsetinteger
Rank to start the page at, 0-based, over the sorted frame. Pass the next_offset from the previous response to read the next page — the ranked list is fetched whole and sliced, so paging is stable a...default: 0
period*string
Calendar period. Use duration periods (no I suffix) for income/cash-flow items: "CY2023" (full year), "CY2024Q2" (single quarter). Use instant periods (I suffix) for balance-sheet items: "CY2023Q4I...
sortstring
Sort direction. "desc" for highest values first (typical for revenue, assets). "asc" for lowest values.one of desc · ascdefault: desc
taxonomystring
Frames namespace a raw XBRL tag is read from: us-gaap for financial-statement tags, dei for cover-page entity tags such as EntityCommonStockSharesOutstanding. SEC publishes frames for no other taxo...one of us-gaap · deidefault: us-gaap
unitstring
Unit of measure. Use "USD-per-shares" (or equivalently "USD/shares") for EPS, "shares" for share counts, "pure" for ratios. Ignored when concept resolves to a friendly name with a known unit.one of USD · USD-per-shares · USD/shares · shares · puredefault: USD
secedgar_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...5 params

Compare 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...

Parameters* required
companies*array
Companies to compare, as ticker symbols (preferred) or CIK numbers. A company that does not resolve is reported in failed_companies and the rest of the comparison still runs. The first 10 inputs ar...
concepts*array
Concepts to compare — friendly names like "revenue" or "net_income" (discover them with secedgar_search_concepts) or raw XBRL tags. The first 8 distinct concepts are compared, spellings of one conc...
period_typestring
Align on fiscal years, each under the calendar-year key SEC frames it as (annual), or on calendar quarters (quarterly). Quarterly comparisons of off-calendar filers are missing at least one calenda...one of annual · quarterlydefault: annual
periodsinteger
Upper bound on how many recent periods the inline matrix covers, newest first — not a guarantee. The matrix is companies x concepts x periods cells, and the inline window drops further older period...default: 4
taxonomystring
XBRL taxonomy to resolve concepts under. Use ifrs-full only when every company in the list reports under IFRS; mixing IFRS and US GAAP filers in one call resolves them all under the same taxonomy.one of us-gaap · ifrs-fulldefault: us-gaap
secedgar_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 whi...3 params

Search 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 whi...

Parameters* required
groupstring
Filter to a single financial statement group. income_statement covers P&L items; balance_sheet covers position items (use instant periods in secedgar_fetch_frames); cash_flow covers CF statement it...one of income_statement · balance_sheet · cash_flow · per_share · entity_info
searchstring
Case-insensitive substring matched against friendly name, label, and XBRL tags. Examples: "cash" finds cash and operating_cash_flow; "earnings" finds eps_basic and eps_diluted; "NetIncomeLoss" reve...
taxonomystring
Filter to a single XBRL taxonomy. us-gaap for US filers, ifrs-full for foreign filers, dei for entity info.one of us-gaap · ifrs-full · dei
secedgar_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,...1 params

List 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,...

Parameters* required
namestring
Optional table name (df_XXXXX_XXXXX) to describe a single dataframe. Omit to list all dataframes.
secedgar_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-...4 params

Run 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-...

Parameters* required
previewinteger
Rows to include in the immediate response. Defaults to the row limit. Set lower (e.g., 50) when chaining via register_as and only a sample is needed inline. Capped at 10000: a larger value, up to 1...
register_asstring
When set, persist the result as a new dataframe under this name (must match df_XXXXX_XXXXX shape, or pass a fresh df_<id> generated by the agent). Fresh TTL window — not inherited from the parents...
row_limitinteger
Hard cap on rows materialized in the response. Default 1000. A query matching more rows than this stops at the cap and `row_count_capped` comes back true; the full result lives on-canvas under regi...default: 1000
sql*string
Single-statement SELECT against df_<id> tables on the shared canvas. Standard DuckDB SQL — joins, aggregates, window functions, CTEs all supported. Reference dataframes by the names returned in fet...

Sponsors

Configuration

EDGAR_USER_AGENT*

User-Agent header for SEC compliance. Format: "AppName contact@email.com".

EDGAR_RATE_LIMIT_COOLDOWN_SECONDSdefault: 600

Seconds to stop sending to SEC after a 429: calls are refused locally, then one probe request goes out.

MCP_LOG_LEVELdefault: info

Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

MCP_TRANSPORT_TYPEdefault: http

Selects the HTTP transport.

MCP_HTTP_HOSTdefault: 127.0.0.1

The hostname for the HTTP server.

MCP_HTTP_PORTdefault: 3010

The port to run the HTTP server on.

MCP_HTTP_ENDPOINT_PATHdefault: /mcp

The endpoint path for the MCP server.

MCP_PUBLIC_URL

Public-facing origin override for TLS-terminating proxies (e.g., https://mcp.example.com). Leave unset for direct deployments.

MCP_AUTH_MODEdefault: none

Authentication mode to use: 'none', 'jwt', or 'oauth'.

Readme

@cyanheads/secedgar-mcp-server

Query SEC EDGAR filings, XBRL financials, and company data via MCP. STDIO or Streamable HTTP.

16 Tools (+1 opt-in) • 2 Resources • 1 Prompt

npm License Docker MCP SDK TypeScript Bun

Details

Repository
github.com/cyanheads/secedgar-mcp-server
Categories
Sales & Marketing, Data & Analytics
Package
@cyanheads/secedgar-mcp-server
Transport
STDIO, HTTP
Auth
Required
Registry
MCP registry, active
Resources
3
Prompts
1
Tools verified
Nov 6, 2026

More from cyanheads

Related Sales & Marketing MCP servers

View all
1temporal-cortex avatarTemporal Cortex Calendar MCPtemporal-cortex/mcp18 deterministic calendar tools: contact resolution, temporal context, availability, booking0stars
2acamolese avatarGoogle Search Consoleacamolese/google-search-console-mcpGoogle Search Console: SEO audits, performance queries, URL inspection, indexing checks.9stars
3akzar1el avatarWeb Validator by DigestSEOakzar1el/mcp-web-validatorAudit public webpages and supplied markup for HTML, CSS, SEO, JSON-LD, and link issues.9stars
4apideck-libraries avatarMcpapideck-libraries/mcpApideck Unified API MCP — 330 tools across 200+ SaaS connectors (accounting, CRM, HRIS, ATS).0stars
5agencyenterprise avatarAiseo Auditagencyenterprise/aiseo-auditAudit web pages for AI search readiness with evidence-tiered factors and pipeline-stage scores.8stars
6hasdata avatarHasData Glassdoorhasdata/glassdoor-mcpGlassdoor job listings and full postings with company ratings and salary estimates, as JSON.8stars