Skip to main content

EDGAR Filings 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, 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

Three lines:

  1. Install uv (docs).
  2. Set EDGAR_IDENTITY to a name and a real email (SEC FAQ).
  3. Paste examples/cursor.mcp.json into the client config.
EDGAR_IDENTITY=Your Name you@example.com

macOS / Linux:

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

Windows (PowerShell):

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

Then copy examples/cursor.mcp.json to ~/.cursor/mcp.json (Windows: %USERPROFILE%\.cursor\mcp.json). Copy examples/claude.mcp.json into Claude Desktop’s MCP config.

Pin mcp>=1.9,<2. MCP 2.x renamed FastMCP. The package already pins that range.

{
  "mcpServers": {
    "edgar-filings": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/Dxfory/edgar-mcp.git",
        "edgar-filings-mcp"
      ],
      "env": {
        "EDGAR_IDENTITY": "Your Name you@example.com"
      }
    }
  }
}

That GitHub URL is v1.1 on main (four tools, including get_bdc_nonaccrual). The PyPI name edgar-filings-mcp is declared in server.json but not published yet, so uvx edgar-filings-mcp without --from git+... will fail. The MCP registry listing waits until the PyPI version matches server.json. Skip Smithery hosted.

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

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

Tool Returns
get_trading_symbols Every dei:TradingSymbol on the latest 10-K or 10-Q, plus the legacy entity_info scalar
get_segment_revenue Dimensioned XBRL revenue (product / business / geographic axes)
get_bdc_nonaccrual BDC non-accrual rate, fair value, named investments, and extraction method
get_form4 Newest Form 4 summaries, transaction lines, open_market, and code_counts

form on the first three tools 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

Theme Agent invents Tool Stop
AI infrastructure NVIDIA / hyperscaler “AI mix” get_segment_revenue on NVDA (Data Center is tagged). AMZN/MSFT capex is not AI-only Do not add a fake AI-capex tool
Private credit / BDC Non-accrual, NAV as credit quality, PIK as current get_bdc_nonaccrual Non-accrual ≠ Fitch default rate; PIK can still be accrual
GP-led continuation vehicles Deal price and “premium to par” None Private secondaries are not EDGAR
China PE / 具身智能 Round sizes and factory hours None SSE/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 --from git+https://github.com/Dxfory/edgar-mcp.git 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.

Release files for edgar-filings-mcp 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for edgar-filings-mcp 1.1.0
File Size Uploaded
edgar_filings_mcp-1.1.0.tar.gz 13.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for edgar-filings-mcp 1.1.0
File Interpreter ABI Platform
edgar_filings_mcp-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 27.5 kB

Release files / edgar_filings_mcp-1.1.0.tar.gz

Download URL edgar_filings_mcp-1.1.0.tar.gz
Size 13.6 kB
Tags Source
SHA-256 checksum
How to use checksums
a385f6c52603fe247ad202d158f936b3ba881b96cbe78145cfdb1698129ebbec
BLAKE2b-256 checksum
How to use checksums
a42da2c6eef7b9c8274bc4bd8b9e74f8cd240bdf76d224d7f0cf49bc50e48709
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / edgar_filings_mcp-1.1.0-py3-none-any.whl

Download URL edgar_filings_mcp-1.1.0-py3-none-any.whl
Size 13.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b30da6d998a7efd7609f0efee3463275043cd1d9fdb12f1c7ccb05817c1de92a
BLAKE2b-256 checksum
How to use checksums
492cd4c0262a735f6a8f425952aa595af41be15bf30bcba1b838e9ec5c97e385
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

1.1.2

2 release files

1.1.1

2 release files

This release

1.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page