← Back to directory
S

SEC EDGAR MCP Server

Community
Query SEC EDGAR filings, XBRL financials, and company data through MCP. STDIO & Streamable HTTP.
Category
Database #10 of 58
Stars
★ 10 Popular
Transport
stdio (local process) · Streamable HTTP
Runtime
Bun 1.3.0+ · Node.js · Docker · Hosted (no local runtime)
Credentials
No credential needed
License
Apache-2.0
Last commit
Tools
17
68FMRS · C

This server provides a comprehensive tool for accessing SEC EDGAR data via MCP, covering a wide range of financial datasets with strong SQL analytics ability. It is community-maintained and not an official SEC tool, but it respects SEC API terms.

Strongest · Documentation 17/20 Weakest · Reliability 11/20

Reliability
11/20
Security and permissions
15/20
Maintenance
11/20
Documentation
17/20
Setup experience
14/20
Why each score
Reliability 11/20
The README documents behavioral edge cases per tool (pagination, caveats, truncation, archive routing) in unusual depth and claims a test suite (tests/, bun run test), but a static review offers no execution or CI evidence that the 17 tools match the documented behavior; version 0.15.2 is pre-1.0. Deducted for unverifiable execution evidence.
Security and permissions 15/20
No API keys required; the only credential-like input is a compliance User-Agent. SQL tools are read-only by default (writes/DDL/DROP rejected, system catalogs denied), the single destructive tool dataframe_drop is opt-in via env var, and TTL handles cleanup. Deducted because the public hosted instance runs with MCP_AUTH_MODE=none and clients must trust a third-party host with their query traffic; no default auth on remote deployments. No red-line issues.
Maintenance 11/20
Versioned npm releases (0.15.2), Apache-2.0 license, Docker/ghcr publishing, and a changelog-style README are visible; but 7 stars and 0 open issues cannot demonstrate issue responsiveness, no SECURITY.md or security-response channel is evidenced, and single-maintainer risk is undisclosed.
Documentation 17/20
Documentation quality is outstanding: tool parameters, hard limits (EFTS 2001 index floor, 13D/13G coverage start, NPORT publication lag), costs (SEC rate limit, ~5s for 50-document scans), a full config table, and honest caveats about non-coverable scenarios. Deducted because some multi-branch behaviors are hard to verify statically and troubleshooting guidance remains thin.
Setup experience 14/20
One-click install links for Claude Desktop (MCPB), Cursor, and VS Code plus stdio/npx/bunx/HTTP/Docker config examples; only EDGAR_USER_AGENT is required, and the DuckDB-on-Workers limitation is disclosed. Deducted for Bun/npx runtime pull complexity, optional mirror bootstrap steps, and no CI/execution evidence that the examples work as written; capped by static calibration.

Static review · not runListed 2026-09-08

Read the FMRS scoring method →

Fit and risk

What it can accessUses the network

Best for

  • Financial analysts and researchers needing fast, structured access to SEC filings.
  • Developers wanting to run SQL queries on SEC data directly within MCP clients.
  • Regtech and data scientists interested in XBRL data.

Not for

  • Users requiring totally offline access to historical filings (though a local mirror option exists).
  • Scenarios needing real-time streaming or very low latency (SEC has rate limits and publication lag).
  • Users who want to avoid setting up their own EDGAR_USER_AGENT (but can use the hosted instance).

Required permissions

  • Access to SEC EDGAR public API (no API key, but valid User-Agent required).
  • When self-hosting locally, runs a local server process that needs a Node/Bun runtime.
  • Optional: when using the local SQLite mirror, stores data and caches on disk.

Risks and side effects

  • SEC requires a valid User-Agent like 'YourAppName [email protected]'; otherwise IP blocks could occur.
  • The tool accesses public APIs and may be rate-limited if too many requests are made.
  • As a non-official server, validate reliability and maintenance status before using in production.

Setup

Before you start

Runtime:Bun 1.3.0+ · Node.js · Docker · Hosted (no local runtime)

EDGAR_USER_AGENT required SEC-required User-Agent in the format 'AppName [email protected]'; supply your own app name and email. Required.
Other optional settings (17)
EDGAR_RATE_LIMIT_RPS optional Max requests per second to SEC APIs; default 10, do not exceed 10.
EDGAR_TICKER_CACHE_TTL optional Seconds to cache the company tickers lookup file; default 3600.
EDGAR_DATASET_TTL_SECONDS optional Per-table TTL for canvas dataframes in seconds; default 86400.
EDGAR_DATAFRAME_DROP_ENABLED optional Set true to expose secedgar_dataframe_drop; off by default.
EDGAR_MIRROR_ENABLED optional Enable a local SQLite mirror of tickers and XBRL facts; default false.
EDGAR_MIRROR_PATH optional Directory holding the mirror SQLite databases; default ./data/edgar-mirror.
EDGAR_MIRROR_REFRESH_CRON optional Cron for in-process nightly mirror refresh (HTTP transport only), e.g. 0 9 * * *.
EDGAR_MIRROR_FALLBACK_LIVE optional Fall back to live SEC API on mirror miss; default true.
CANVAS_PROVIDER_TYPE optional Canvas engine; defaults to duckdb, set to none to disable.
MCP_TRANSPORT_TYPE optional Transport: stdio or http; default stdio.
MCP_HTTP_PORT optional HTTP server port; default 3010.
MCP_AUTH_MODE optional Auth mode: none, jwt, or oauth; default none.
MCP_LOG_LEVEL optional Minimum log level; default info.
LOGS_DIR optional Directory for log files (Node.js only); defaults to <project-root>/logs.
MCP_HTTP_HOST optional Hostname for the HTTP server; default 127.0.0.1.
MCP_HTTP_ENDPOINT_PATH optional Endpoint path for the MCP server; default /mcp.
MCP_PUBLIC_URL optional Public-facing origin override for TLS-terminating proxies; leave unset for direct deployments.
  1. Use the public hosted instance: point any MCP client to https://secedgar.caseyjhand.com/mcp via Streamable HTTP.
  2. Or run locally: create a stdio config with the command npx -y @cyanheads/secedgar-mcp-server@latest and set the environment variable EDGAR_USER_AGENT (e.g., 'YourName [email protected]').
  3. For self-hosted HTTP, set MCP_TRANSPORT_TYPE=http and run with Bun: bun run start:http, default endpoint http://localhost:3010/mcp.
claude_desktop_config.json
{
  "mcpServers": {
    "secedgar-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/secedgar-mcp-server@latest"
      ],
      "env": {
        "EDGAR_USER_AGENT": "YourAppName [email protected]"
      }
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "secedgar-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/secedgar-mcp-server@latest"
      ],
      "env": {
        "EDGAR_USER_AGENT": "YourAppName [email protected]"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add secedgar-mcp-server -e 'EDGAR_USER_AGENT=YourAppName [email protected]' -- npx -y @cyanheads/secedgar-mcp-server@latest

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After configuring the MCP client, check that tools like secedgar_company_search appear in the tool list; then ask 'Search for Apple's company info' — if it returns Apple's CIK and entity details, the installation works.

Troubleshooting

  1. Ensure EDGAR_USER_AGENT env var is set and formatted correctly.
  2. Check network connectivity and potential SEC rate limiting.
  3. Verify MCP client config has correct command, arguments, and env vars.
  4. If using the public instance, ensure it is online (check project repo).

Things to try

Once connected, you can ask your AI assistant things like:

  • Search for Apple by ticker and show its recent 10-K filings
  • Get Microsoft's annual revenue for the last three years
  • List the latest institutional holdings reported in Berkshire Hathaway's 13F
  • Compare Apple and Google's net income and diluted EPS over the last four quarters

Tools 17

secedgar_company_search read-only
Find companies by ticker, name, or CIK and get entity details, with optional recent filings.
secedgar_search_filings read-only
Search EDGAR filings since 1993 with full-text search (2001+) and archive browsing for earlier ranges.
secedgar_get_filing read-only
Fetch a specific filing's metadata and document content by accession number.
secedgar_get_financials read-only
Get historical XBRL financial data for a company with friendly concept name resolution.
secedgar_get_snapshot read-only
One-call company financial profile with latest values of every supported concept.
secedgar_get_material_events read-only
Get a company's 8-K history with decoded item codes and filtering.
secedgar_get_insider_transactions read-only
Parse Form 4/4-A insider transactions (buys, sells, grants, exercises) from ownership XML.
secedgar_get_institutional_holdings read-only
Parse quarterly institutional holdings from 13F-HR information tables.
Show 9 more tools
secedgar_find_holders read-only
Reverse 13F lookup: which institutional managers reported holding an issuer.
secedgar_get_beneficial_owners read-only
Get 5%+ blockholders of an issuer from structured SCHEDULE 13D/13G filings.
secedgar_get_fund_holdings read-only
Get ETF and mutual fund portfolio holdings from quarterly NPORT-P reports.
secedgar_fetch_frames read-only
Fetch SEC XBRL frames for one concept × one period across all reporting companies.
secedgar_compare_companies read-only
Compare 2-10 companies across multiple concepts, aligned on calendar periods.
secedgar_search_concepts read-only
Discover supported XBRL concept names or reverse-lookup a raw tag.
secedgar_dataframe_describe read-only
List canvas dataframes with provenance, TTL, and schema.
secedgar_dataframe_query read-only
Run single-statement SELECT queries across dataframes.
secedgar_dataframe_drop destructive
Drop a canvas dataframe by name. Opt-in via EDGAR_DATAFRAME_DROP_ENABLED=true.

Use cases

Analyze financial health and filing history of public companies.
Monitor insider transactions and institutional holdings changes.
Retrieve latest portfolio holdings of specific funds or ETFs.
Compare financial metrics across companies universe-wide.
Screen and filter material events like 8-K filings.

Supported clients

Claude Desktop
Cursor
VS Code

Listed from the project's documentation, not tested by this site.

Overview

The SEC EDGAR MCP server is a TypeScript-built MCP server offering 17 tools (one optional) for accessing SEC EDGAR data. It supports company search, filing retrieval, XBRL financial data, insider transactions, institutional holdings, beneficial owners, fund holdings, and more, with DuckDB-backed dataframe SQL analytics. It runs over stdio or Streamable HTTP and requires no API keys.

Similar servers

Source revision ea5610699519 Data synced 2026-10-19 Read the FMRS scoring method