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:
- Install
uv(docs). - Set
EDGAR_IDENTITYto a name and a real email (SEC FAQ). - Paste
examples/cursor.mcp.jsoninto 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.tickeris last-wins on repeatedTradingSymbolfacts. 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/Fare grants, option exercises, and tax withholding —open_marketis false. - BDC
extraction_method=noneor a zero rate plus extractor warnings is a parse gap, not proof the book is clean. - Latest
10-Kcan be a10-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)
| File | Size | Uploaded | |
|---|---|---|---|
| edgar_filings_mcp-1.1.0.tar.gz | 13.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|