Back to Directory/Analytics & BI

EDGAR Filings

SEC 10-K/10-Q symbols, segment revenue, BDC non-accrual, and Form 4 lines with citations.

Analytics & BIPythonv1.1.2

EDGAR Filings MCP

PyPI MCP

Cursor / Claude tools that return SEC filing numbers, not web-search guesses.

Who this is for: people already in an IDE chat who need a ticker’s 10-K/10-Q symbols, segment revenue, BDC non-accrual, or Form 4 lines without writing edgartools glue.

Pain it solves: models invent segment mix, insider trades, and BDC credit quality. These tools return accession, concept, period, open_market, non-accrual method, and the EDGAR index URL so you can check the filing.

What it is not: a research product, a document reader, or a substitute for reading the 10-K. It wraps edgartools for four jobs only. China PE, humanoid robots, and unlisted credit CVs are out of scope — those filings are not on EDGAR.

Install

If uv is already on PATH, paste this into ~/.cursor/mcp.json (Windows: %USERPROFILE%\.cursor\mcp.json). Use a real name and email (SEC FAQ). Same snippet is in examples/cursor.mcp.json and examples/claude.mcp.json.

{
  "mcpServers": {
    "edgar-filings": {
      "command": "uvx",
      "args": ["edgar-filings-mcp"],
      "env": {
        "EDGAR_IDENTITY": "Your Name you@example.com"
      }
    }
  }
}

PyPI package edgar-filings-mcp is live. Registry name is io.github.Dxfory/edgar-mcp. Skip Smithery hosted. Pin mcp>=1.9,<2 — MCP 2.x renamed FastMCP; the package already pins that range.

The first uvx launch downloads edgartools (pandas / pyarrow). If the client looks stuck, run uvx edgar-filings-mcp once in a terminal so uv can cache the wheels, then restart the MCP server. After that, initialize is a couple of seconds.

No uv yet:

macOS / Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows (PowerShell):

irm https://astral.sh/uv/install.ps1 | iex

From git instead of PyPI:

uvx --from git+https://github.com/Dxfory/edgar-mcp.git edgar-filings-mcp

Clone (no uv)

git clone https://github.com/Dxfory/edgar-mcp.git
cd edgar-mcp
python -m venv .venv

macOS / Linux:

.venv/bin/python -m pip install -e .

Windows:

.\.venv\Scripts\python -m pip install -e .

Point the client at that interpreter with args ["-m", "edgar_mcp"].

If PyPI SSL fails (common with a local HTTPS proxy), use a mirror:

python -m pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

Tools

ToolReturns
get_trading_symbolsEvery dei:TradingSymbol on the latest 10-K or 10-Q, plus the legacy entity_info scalar
get_segment_revenueDimensioned XBRL revenue (product / business / geographic axes)
get_bdc_nonaccrualBDC non-accrual rate, fair value, named investments, and extraction method
get_form4Newest Form 4 summaries, transaction lines, open_market, and code_counts

form on get_trading_symbols, get_segment_revenue, and get_bdc_nonaccrual is 10-K (default) or 10-Q. get_bdc_nonaccrual only accepts SEC BDCs (814- filers) such as ARCC. There is no fifth tool.

Hot-theme footguns this server will / will not answer

ThemeAgent inventsToolStop
AI infrastructureNVIDIA / hyperscaler “AI mix”get_segment_revenue on NVDA (Data Center is tagged). AMZN/MSFT capex is not AI-onlyDo not add a fake AI-capex tool
Private credit / BDCNon-accrual, NAV as credit quality, PIK as currentget_bdc_nonaccrualNon-accrual ≠ Fitch default rate; PIK can still be accrual
GP-led continuation vehiclesDeal price and “premium to par”NonePrivate secondaries are not EDGAR
China PE / 具身智能Round sizes and factory hoursNoneSSE/HKEX, not EDGAR

Footguns the tools already warn about

  • entity_info.ticker is last-wins on repeated TradingSymbol facts. Dual-class and preferred tickers can replace the common symbol.
  • Segment mix is not in get_financials(). Some statement “DETAILED” views drop reportable-segment lines; this server queries dimensioned facts instead.
  • Form 4 A / M / F are grants, option exercises, and tax withholding — open_market is false.
  • BDC extraction_method=none or a zero rate plus extractor warnings is a parse gap, not proof the book is clean.
  • Latest 10-K can be a 10-K/A. The tools prefer the original form so Schedule-of-Investments footnotes are not dropped.

Run without Cursor

python -m edgar_mcp

stdio only. Do not print to stdout.

python tests/run_offline.py
python scripts/smoke_stdio.py
python scripts/pressure.py

smoke_stdio.py only checks initialize + four tool names (no EDGAR). After uvx is on PATH:

python scripts/smoke_stdio.py -- uvx edgar-filings-mcp

pressure.py hits live EDGAR and needs EDGAR_IDENTITY.

License

MIT. Filing data is from the SEC EDGAR system; this project is not affiliated with the SEC.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx edgar-filings-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-dxfory-edgar-mcp": {
      "command": "uvx",
      "args": [
        "edgar-filings-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

edgar-filings-mcppypi

Compatible MCP Clients

EDGAR Filings works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More