
SEC EDGAR
io.github.brechanbechPublished by GitHub account brechanbechv0.10.0Updated Oct 26, 2026
Rust MCP server for SEC EDGAR data — company filings, financial concepts, and company info
The publisher's own server: edgar.tools SEC Intelligence
Overview
Local MCP server that gives an assistant access to SEC EDGAR: company filings, XBRL financial data, insider trades, institutional holdings and ownership…
- What you can do
- Resolve tickers or names to SEC CIK numbers and list registered tickers with exchange info
- Look up company details: SIC code, industry, state of incorporation, fiscal year end, addresses
- List recent filings by form type, or the latest filings across all of EDGAR, with direct document URLs
- Read filing text and exhibits: section index, a section by item, in-document search, paging, document lists
- Search the full body text of filings since 2001, filtered by form, ticker and date
- Pull XBRL financials: historical concepts such as revenue or net income, a company's reported metrics, and cross-company comparisons for a period
- When to use it
- Useful when you regularly ask about US public-company filings, reported financials, insider activity, fund holdings or 5% owners and want natural-language answers instead of hand-built EDGAR URLs. The README notes that for one or two filings a year, giving the assistant the URL directly is enough.
- Requirements
- Runs as a local native binary installed with Cargo (Rust 1.88 or newer); building it needs a C compiler, and no Node, Python or Docker runtime is involved. No API key. A contact email is required by SEC's fair-access policy: it is collected on first use via the sec_configure tool and stored in a local config file. Network access to SEC EDGAR is needed.
Installation
In SourceWeft
- Open SEC EDGAR in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
sec-mcp
A Model Context Protocol server that gives Claude Desktop access to SEC EDGAR data — company filings, financial statements, and company info. No API key needed. It runs as a single native binary, with no Node, Python or Docker runtime behind it.
Why an MCP for this?
EDGAR is a set of public REST endpoints with no API key, and the documentation at sec.gov/search-filings/edgar-application-programming-interfaces is reasonable. So strictly speaking, an MCP isn't needed. What this wrapper buys you:
-
Persistent User-Agent identity. SEC's fair-access policy requires a contact email in the User-Agent header; without one, requests get throttled or rejected. You don't want to re-paste your email into every prompt. The MCP stores it in a config file and stamps every request.
-
Ticker → CIK resolution with caching. Every EDGAR endpoint is keyed by a zero-padded 10-digit CIK, not by ticker. Without a tool, each query would re-fetch the ~1 MB
company_tickers.jsonand parse it from scratch. The MCP caches it for an hour. -
URL-construction quirks the docs are quiet about. The
CY{period}prefix on the XBRL frames endpoint, the trailingIfor instant concepts, the zero-padded CIK, the dash-stripped accession number in archive URLs. Easy to get wrong on the fly; encoded once in the tool. -
Response shaping.
companyfactsresponses are tens of MB andfilings.recentis laid out as column-major parallel arrays. Both are usable, but a language model would burn a lot of context reformatting them. The MCP returns trimmed, row-shaped JSON. -
Discovery. With the MCP installed, the tool list itself tells Claude that it can query SEC filings, plus the common concept names. Without it, the model has to remember the endpoints exist.
If you only pull one or two filings a year, you don't need this — just give Claude the URL. At any higher volume, the wrapper pays for itself by turning "explain the URL grammar in every conversation" into "ask a natural question."
Install
Install with Cargo (Rust 1.88 or newer):
This compiles the rustls crypto backend (ring), which has a small amount of C,
so you need a C compiler on the build host — but no cmake or assembler.
macOS (Xcode Command Line Tools) and most desktop Linux distros already have one;
a minimal Linux image may not — install it first, e.g.
apt install build-essential on Debian/Ubuntu.
Configure Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
Restart Claude Desktop.
First use
On your first SEC-related request Claude will explain that a contact email is required by the SEC EDGAR fair-access policy and ask your permission before proceeding. Your email is stored locally in ~/Library/Application Support/sec-mcp/config.toml and is only used in the HTTP User-Agent header sent to the SEC — it is not shared anywhere else.
Example prompts
- "What are Apple's recent SEC filings?"
- "Show me Tesla's annual revenue for the last 5 years"
- "What was Microsoft's net income last quarter?"
- "What industry is NVDA in according to the SEC?"
- "What is Bridgewater Associates' CIK, and what has it filed recently?"
- "Who owns more than 5% of Sonos, and has any of them filed a 13D?"
- "How much did SpaceX raise in private rounds before it listed?"
- "What were Bridgewater's ten largest positions last quarter?"
- "Which 8-Ks were filed in the last hour, and what items did they report?"
- "List every Schedule 13D filed last week"
- "Show me Amazon's most recent 10-K filing"
- "What tickers are listed on NYSE with 'energy' in the name?"
- "What financial metrics does Apple report to the SEC?"
- "What revenue guidance did Airbnb give in its Q1 2025 earnings release?"
- "Summarize the risk factors in Tesla's latest 10-K"
- "Which companies had the highest revenue in 2024?"
Tools
Wherever a tool takes a ticker, it also takes a CIK (1163302, 0001163302 or
CIK0001163302). SEC's ticker list holds only current tickers, so a company that
was acquired, delisted or renamed is reachable only by CIK. sec_lookup_cik with
name finds it, and full-text search hits and frames rows carry one.
Amendments (10-K/A and friends)
A form ending in /A amends one filed earlier. A 10-K/A is often not a
complete annual report. Rule 12b-15 requires only the full text of each item
being changed, so the most common amendment is Part III alone (directors, pay,
ownership), filed when the proxy statement misses its 120-day window. Others add
or fix exhibits. The rest are restatements that replace the original's figures.
Apple's January 2010 10-K/A, for example, refiled fiscal 2009 under new
revenue-recognition rules.
sec-mcp therefore excludes amendments unless you ask for them:
sec_financial_concept'sannual/quarterlyperiod filters match base forms only. The amended period is already covered by the original filing, and admitting both would report two facts for one period. Passinclude_amendments: trueto admit them when the restatement is what you want: Apple's fiscal 2009 revenue is $36.5B on the original 10-K and $42.9B on the 10-K/A.amended_factsthen counts them.sec_full_text_searchwith a form filter drops amendments. EDGAR itself does not: it filters on a filing's root form, soforms=10-Kalso returns10-K/A. To get amendments, request the form directly (10-K/A), list both (10-K,10-K/A), or passinclude_amendments: true. Any amendment returned is markedamendment: true.
Because that search filtering happens after EDGAR's, two parts of the response behave differently from a plain search:
totalis still EDGAR's count, which includes the dropped amendments. It is flaggedtotal_is_upper_bound, ortotal_is_approximatewhen it has also saturated at 10000. Each page reportsamendments_excluded.- Paging must use
next_offset. A page can return fewer thanlimithits because amendments were skipped, sooffset + returnedwould revisit them.
Common XBRL concepts for sec_financial_concept
Development
There is also an opt-in live suite that drives the built server over stdio
against the real SEC EDGAR APIs — the thing offline tests can't see, like
EDGAR changing a response shape or a URL-construction quirk slipping through. It
is skipped unless SEC_MCP_LIVE_EMAIL is set, which both opts in and supplies
the contact email the fair-access policy
requires (the address is read from the environment, never committed):
The suite runs sequentially through one server process, so it stays well within EDGAR's rate limit.
License
MIT — see LICENSE.md for details.
MCP registry
Ownership-verification token for the MCP registry (read from this crate's rendered README on crates.io):
Registry ownership token:
mcp-name: io.github.brechanbech/sec-mcp
Releasing
A version is immutable once published — crates.io yanks, it does not delete, and a number is never reused — so the order matters:
-
cargo testandcargo clippy --all-targetsclean. -
Bump
versioninCargo.toml. -
Bump
versioninserver.json— both fields, the top-level one and the one underpackages[]. Nothing enforces this: no script, no CI, no test reads the file, and it is the step that goes missing. This manifest stayed correct, but the registry entry did not: 0.5.0, 0.5.1 and 0.5.2 all shipped to crates.io while the registry still advertised 0.4.4, because step 6 was never run. -
Commit and push; let CI go green before publishing rather than after.
-
cargo publish --dry-run, which compiles from the packaged copy and so catches a crate depending on a file it does not ship. Thencargo publish. Give both--target-dir target/package-verify. Without it, the verify build sharestarget/debugwith ordinary builds under the same unit hash, so the binary's fingerprint ends up tracking the packagedsrc/main.rsrather than yours. Later edits then never rebuildtarget/debug/sec-mcp, and the offline stdio test intests/live_smoke.rssilently runs the published code. If that has happened,cargo clean -p sec-mcprepairs it. -
Publish to the MCP registry, after crates.io and not before — the registry verifies the namespace by reading
mcp-namefrom this crate's rendered README on crates.io, andserver.jsonnames a cargo version that must already exist there: -
Create a release for the tag on both Codeberg and the GitHub mirror, with the version's CHANGELOG section as notes. A tag alone is not a release: Glama reads the GitHub mirror and reported "No stable releases found" while it carried every tag and no release.
Source: README.md at commit c6c1da5
Tools
0Version history
6- v0.10.0LatestOct 26, 2026
- v0.7.0Oct 26, 2026
- v0.6.1Oct 25, 2026
- v0.6.0Oct 23, 2026
- v0.5.2Sep 27, 2026
- v0.4.4Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Edgar integrations
edgar.tools SEC Intelligence
tools.edgarOfficial publisher
Remote MCP server giving assistants 23 tools and 5 recipes for SEC filings, financials, insider trades, 13F holdings and funds.

SEC EDGAR Filings
Published by GitHub account SudiptoHaldar
Read-only SEC EDGAR filing metadata by stock ticker: latest filing, calendar-year filing history, and form-type codes, with official sec.gov links.

SEC EDGAR — Recent Company Filing Index by CIK
Published by GitHub account kriton-dev
SEC EDGAR — Recent Company Filing Index by CIK's hosted MCP server; credential required; Streamable HTTP.

Sec Edgar Mcp
Published by GitHub account mrfentmen
Reads SEC EDGAR data so an assistant can look up company profiles by CIK, XBRL financial tag history and full-text filings.

SEC EDGAR Insider Trades & Financials
Published by GitHub account monriah-studio
Remote MCP server for U.S. SEC EDGAR data, letting an assistant look up insider trades, filings, XBRL financials and full-text filing search.