About SEC EDGAR
SEC EDGAR is an MCP server for financial researchers and investors to find U.S. company filings and XBRL data. It supports company lookup, filing retrieval, financial histories, and full-text search without an API key.
Key features
- 01Company search by name or ticker
- 02Recent and latest filing retrieval
- 03XBRL financial highlights
- 04Historical GAAP concept data
- 05Full-text filing search
- 06Markdown or JSON responses
Use cases
- 01Find a company's CIK and recent filings
- 02Review reported financial metrics over time
- 03Search filings for a topic across companies
MCP support
Exposes SEC EDGAR company lookup, filing, XBRL, and search tools to MCP clients. Requests go directly from the user's machine to SEC APIs.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
npx -y edgar-mcpSEC_USER_AGENTDescriptive User-Agent with contact info required by the SEC, e.g. 'your-app [email protected]'Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMESEC EDGAR MCP Server 🏛️
U.S. SEC filings and financial data for Claude Desktop and any MCP-compatible client, powered by SEC EDGAR. Search companies, pull filings (10-K, 10-Q, 8-K, Form 4, ...), read XBRL financials, and full-text search across all filings — all from natural language. No API key required.
npm package:
edgar-mcp· GitHub repo:danishashko/edgar-mcp.
🎯 What You Get
- 🔎 Company lookup by name or ticker → CIK
- 🗂️ Recent filings (any form type) with direct document links
- 📄 Latest filing of a type (newest 10-K / 10-Q / 8-K) in one call
- 💰 Financial highlights (revenue, net income, assets, equity, EPS) from XBRL
- 📈 Concept history — any GAAP line item over time
- 🔬 Full-text search across the last ~10 years of filings
Every tool returns human-readable markdown by default, or structured JSON on request (response_format: "json"). Lightweight (Python standard library + mcp only), no API key, retries on rate limits.
🚀 Quick Start
Add this to your Claude Desktop config and restart Claude:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"edgar": {
"command": "npx",
"args": ["-y", "edgar-mcp"],
"env": {
"SEC_USER_AGENT": "your-app-name [email protected]"
}
}
}
}
The SEC asks every API client to send a descriptive User-Agent with contact info. Set SEC_USER_AGENT to your own name/email (a default is provided so it works out of the box). On first launch the npx wrapper creates an isolated Python environment and installs the dependency (one-time, ~a minute). You need Python 3.10+ and Node.js 16+.
Prefer a global install?
npm install -g edgar-mcp
{
"mcpServers": {
"edgar": {
"command": "edgar-mcp",
"env": { "SEC_USER_AGENT": "your-app-name [email protected]" }
}
}
}
🔧 Available Tools
| Tool | What it returns | Parameters |
|---|---|---|
search_company | Companies matching a name/ticker, with their CIK | query, limit |
get_recent_filings | Recent filings (form, dates, link), optional form filter | identifier, form_type, limit |
get_latest_filing | The newest filing of a given type, with a document link | identifier, form_type |
get_company_facts | Headline financials (revenue, net income, assets, equity, cash, EPS) | identifier |
get_concept | One XBRL concept's reported history over time | identifier, concept, limit |
full_text_search | Filings matching a keyword/phrase across all companies | query, forms, limit |
Every tool also accepts response_format ("markdown", the default, or "json"). identifier accepts a ticker, CIK, or company name.
Common XBRL concepts for get_concept: Revenues / RevenueFromContractWithCustomerExcludingAssessedTax, NetIncomeLoss, Assets, Liabilities, StockholdersEquity, EarningsPerShareDiluted.
💬 Example Prompts
Once the server is connected, just ask Claude:
- "What's Apple's latest 10-K?"
- "Show me Tesla's recent 8-K filings."
- "What are Microsoft's headline financials?"
- "Show me NVIDIA's net income over the last few years."
- "Which companies mention 'quantum computing' in their 10-Ks?"
- "Find the CIK for Berkshire Hathaway."
🐛 Troubleshooting
"SEC EDGAR is rate-limiting requests" EDGAR allows ~10 requests/second. The server retries automatically; wait a moment if it persists.
"Not found"
Use search_company to confirm the exact ticker/CIK first.
"Command not found" / "Python not found"
Ensure Python 3.10+ and Node.js 16+ are installed and on your PATH. On macOS/Linux, try python3.
Tools not showing up in Claude
- Confirm the config file is valid JSON (no trailing commas).
- Fully quit and reopen Claude Desktop.
Using a different model or provider (LiteLLM, OpenRouter, NVIDIA NIM, a local model)
This server never talks to a model. Your client starts it as a local process and
speaks JSON-RPC over stdin/stdout, so changing ANTHROPIC_BASE_URL or swapping the
model behind your client has no effect on it. If tools stop firing after a switch
like that, check two things: the model has to support function calling, and a proxy
configured to drop unsupported parameters can silently strip your tool definitions,
which produces no error at all. Run /mcp in your client (or claude mcp list) to
confirm the server is connected before suspecting the server.
🛠️ Manual Installation (Alternative)
If you would rather run the Python file directly instead of via npx:
1. Download the server and install the dependency
pip install mcp
(or pip3 on macOS/Linux)
2. Point Claude Desktop at it
{
"mcpServers": {
"edgar": {
"command": "python3",
"args": ["/absolute/path/to/edgar_mcp.py"],
"env": { "SEC_USER_AGENT": "your-app-name [email protected]" }
}
}
}
On Windows use "command": "python" and a path like "C:\\path\\to\\edgar_mcp.py".
3. Restart Claude Desktop.
🔒 Privacy & Rate Limits
- Uses the official SEC EDGAR APIs — public, no key.
- Requests go straight from your machine to the SEC. Nothing is stored or proxied.
- The SEC requires a descriptive
User-Agentwith contact info and limits ~10 requests/second. - Intended for personal, educational, and research use.
📝 Notes
identifieris flexible: ticker (AAPL), CIK (320193), or name (Apple).- Financial data comes from XBRL, first required by the SEC in 2009, so history goes back that far for most filers.
get_company_factsreturns highlights; useget_conceptfor the full series of any one metric.
📋 Changelog
See CHANGELOG.md for the full version history.
📚 Resources
⚖️ Legal Disclaimer
This tool uses the public SEC EDGAR APIs but is not affiliated with or endorsed by the U.S. Securities and Exchange Commission. Use is subject to the SEC's website policies. Data is provided as-is for personal, educational, and research purposes; verify against the original filings before relying on it.
👤 Author
Daniel Shashko
- GitHub: @danishashko
- LinkedIn: daniel-shashko
- npm: danielshashko
📄 License
MIT © Daniel Shashko
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.