{
  "markdown": "# edgar-mcp\n\n<!-- mcp-name: io.github.mcpwright/edgar-mcp -->\n\n**SEC EDGAR filings, inside your agent.** An [MCP](https://modelcontextprotocol.io) server that\nlets an LLM resolve companies, search filings, and pull recent securities offerings straight from\nthe SEC — built on Anthropic's official [`mcp` Python SDK](https://github.com/modelcontextprotocol/python-sdk).\n\nAll tools are **read-only** and hit **public** SEC endpoints (no API key required).\n\n> Status: 11 tools, working today (see below). Published on PyPI as\n> [`mcpwright-edgar`](https://pypi.org/project/mcpwright-edgar/) and in the\n> [official MCP Registry](https://registry.modelcontextprotocol.io). See the roadmap for what's next.\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `lookup_issuer(query, limit=10)` | Resolve a ticker or company name → CIK, legal name, tickers, exchange. Works for exchange-listed **and** private / non-exchange filers (Reg CF / Reg A issuers, funds). |\n| `list_filings(cik_or_query, form_type=None, limit=20)` | An issuer's most recent filings, newest first. Optional form-type filter (e.g. `10-K`, `C`, `D`). |\n| `search_filings(query, forms=None, date_from=None, date_to=None, limit=20)` | Full-text search across filing documents. |\n| `get_recent_offerings(form=\"C\", since=None, state=None, limit=20)` | Recent securities offerings, newest first — `form=\"C\"` (Reg CF), `\"D\"` (Reg D), or `\"A\"` (Reg A — 1-A offering statements **plus** 253G2 offering circulars, where the per-share price and any \"price walk-up\" live), optionally filtered by issuer `state` (e.g. `\"CA\"`). |\n| `get_filing(accession_or_url, cik=None)` | Open one filing: form, filing date, primary-document link, and every document in the filing. |\n| `get_form_d_details(accession_or_url, cik=None)` | Parse a Form D (Reg D) raise: offering amount, sold/remaining, min investment, # investors, industry, revenue range, security types, exemptions, and the officers/directors/promoters. |\n| `get_form_c_details(accession_or_url, cik=None)` | Parse a Form C (Reg CF) raise: target/max amount, price, security type, deadline, intermediary, employees, and a two-year financial snapshot (revenue, net income, assets, debt). |\n| `get_company_facts(cik_or_query)` | Headline financials from a public company's XBRL facts: latest annual revenue, gross/operating income, net income, assets, liabilities, equity, cash. |\n| `get_filing_text(url, offset=0, max_chars=20000)` | Fetch a document's text (HTML stripped) for reading/summarizing — paginated, since filings can exceed 1M characters. |\n| `get_insiders(cik_or_query, limit=25)` | A company's insiders (officers, directors, >10% owners) from recent Section 16 filings, with roles. |\n| `get_insider_trades(cik_or_query, limit=20)` | Recent insider transactions (Form 4): owner, role, buy/sell/grant, shares, price, shares owned after. |\n\n## Install\n\nRequires Python 3.12+. The zero-clone way to run it (the PyPI package is\n`mcpwright-edgar`; the command, server, and tools are all \"edgar\"):\n\n```bash\nuvx mcpwright-edgar\n```\n\n### Claude Code\n\n```bash\nclaude mcp add edgar -- uvx mcpwright-edgar\n```\n\n### Claude Desktop\n\nAdd to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"edgar\": { \"command\": \"uvx\", \"args\": [\"mcpwright-edgar\"] }\n  }\n}\n```\n\n### OpenAI Agents SDK (Python)\n\nIt's a standard MCP server, so it works with any MCP-capable client — not just Claude.\nWith the [OpenAI Agents SDK](https://openai.github.io/openai-agents-python/mcp/):\n\n```python\nfrom agents import Agent, Runner\nfrom agents.mcp import MCPServerStdio\n\nasync def main():\n    async with MCPServerStdio(\n        name=\"edgar\",\n        params={\n            \"command\": \"uvx\",\n            \"args\": [\"mcpwright-edgar\"],\n            \"env\": {\"EDGAR_MCP_USER_AGENT\": \"your-app you@example.com\"},\n        },\n    ) as edgar:\n        agent = Agent(\n            name=\"Analyst\",\n            instructions=\"Use the EDGAR tools for SEC filings and company data.\",\n            mcp_servers=[edgar],\n        )\n        result = await Runner.run(\n            agent, \"Recent Reg D raises in California — who's behind the biggest?\"\n        )\n        print(result.final_output)\n```\n\n### Any other MCP client (Cursor, VS Code, Cline, Goose, Zed, …)\n\nThey all launch a stdio MCP server the same way — point yours at:\n\n```json\n{\n  \"mcpServers\": {\n    \"edgar\": {\n      \"command\": \"uvx\",\n      \"args\": [\"mcpwright-edgar\"],\n      \"env\": { \"EDGAR_MCP_USER_AGENT\": \"your-app you@example.com\" }\n    }\n  }\n}\n```\n\n> Hosted chat connectors (e.g. ChatGPT connectors) expect a **remote** MCP server over\n> Streamable HTTP; `mcpwright-edgar` runs locally over stdio. Running it behind Streamable\n> HTTP for a hosted endpoint is straightforward if you need that.\n\n> **SEC etiquette:** the SEC requires a descriptive `User-Agent` with contact info and rate-limits\n> to ~10 req/s. Set your own via the `EDGAR_MCP_USER_AGENT` env var\n> (e.g. `\"your-app your-email@example.com\"`). The client throttles and retries for you.\n\n> **Caching:** responses are cached in-memory (byte-budgeted LRU) to cut latency and SEC load —\n> immutable filing-archive content for days, the ticker map for 24h, everything else briefly.\n> Set `EDGAR_MCP_CACHE=0` to disable.\n\n## Develop\n\n```bash\ngit clone https://github.com/mcpwright/edgar-mcp && cd edgar-mcp\nuv sync\nuv run pytest                       # tests (mocked SEC responses)\nuv run ruff check . && uv run ruff format --check .   # lint + format\nuv run mypy src tests               # strict type checking\nuv run mcp dev src/edgar_mcp/server.py   # poke the tools in the MCP Inspector\n```\n\n## Roadmap\n\n- [x] `get_recent_offerings(form=C|D)` — recent Reg CF / Reg D raises\n- [x] `get_filing(accession_or_url)` — open a filing and list its documents\n- [x] `get_form_d_details(...)` — parse Reg D offering data (amount, investors, people)\n- [x] `get_form_c_details(...)` — parse Reg CF offering data (target/max, financials, terms)\n- [x] `get_insiders` / `get_insider_trades` — Section 16 (Form 3/4/5) insiders & trades\n- [x] State filter on `get_recent_offerings` (industry isn't filterable — EDGAR omits SIC on these listings; screen via `get_form_d_details.industry_group`)\n- [x] Reg A support in `get_recent_offerings` (Form 1-A statements + 253G2 offering circulars)\n- [x] `get_company_facts(cik)` — XBRL headline financials\n- [x] `get_filing_text` — return a document's text for summarization\n- [x] Published to PyPI (`mcpwright-edgar`) + the official MCP Registry (`io.github.mcpwright/edgar-mcp`)\n- [ ] `get_form_a_details` — parse Reg A (Form 1-A) offering data\n- [ ] Older-filing metadata (beyond the recent-submissions window)\n\n## Privacy\n\nedgar-mcp runs entirely **on your machine** and collects, stores, or transmits **no personal\ndata** — no accounts, no tracking, no telemetry. Its only outbound requests go to the **U.S.\nSEC's EDGAR services** (`data.sec.gov`, `efts.sec.gov`, `www.sec.gov`) to fetch the public\nfilings you ask for; no API key is needed. One honest note: the SEC's fair-access policy asks\nfor a descriptive `User-Agent` with contact info (`EDGAR_MCP_USER_AGENT=\"your-app\nyou@example.com\"`) — whatever you set there is sent to the SEC with each request, and nowhere\nelse. Responses are cached **in memory only**; nothing is persisted to disk.\n\nFull policy: **https://mcpwright.com/privacy/**\n\n## Questions & feedback\n\n- **Questions, ideas, or \"could it do X?\"** → [**Discussions**](https://github.com/mcpwright/edgar-mcp/discussions)\n- **Bugs & concrete feature requests** → [**Issues**](https://github.com/mcpwright/edgar-mcp/issues)\n\nContributions welcome — and if you build something with it, I'd love to hear about it.\n\n---\n\nPart of [**mcpwright**](https://github.com/mcpwright) · built by [Devender Gollapally](https://github.com/devender)\n",
  "bytes": 7764,
  "sha": "cc8f646759e90ed4bec72b5b2043a28032e9e813604b80b7cf49f7665fffb986",
  "repo_slug": "mcpwright/edgar-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_mcpwright_edgar_mcp_ffc487e4/readme"
}