Finance & Investment Banking sec-edgarxbrlfinancial-statementsform-413f-holdingspythonpandasmcp-server

EdgarTools — SEC EDGAR Filing Analysis Skill

Turns SEC EDGAR filings into structured data with a Python library: financials, insider trades, and institutional holdings in a few lines of code.

FollowSkills review · FSRS-2.0
Recommended
67/ 100 5-point scale 3.4 / 5
1 2 3 4 5 6
1Trust20 / 25 · 4.0/5

Read-only SEC EDGAR queries: no file writes, no external egress (requests go only to official SEC endpoints), no credentials (SEC requires only a declared identity; set_identity data flow is transparent and documented). sharp-edges.yaml explicitly discloses rate limits, identity requirements, and error semantics. Deductions: publisher unverified; set_identity collects a user email sent with every request to SEC — a privacy implication not spelled out; no explicit confirmation/rollback mechanisms (limited impact for read-only scope). Not full marks.

2Reliability13 / 20 · 3.3/5

Highly self-consistent documentation: skill.yaml, sharp-edges.yaml, and validations.yaml reference each other coherently; a clear error vocabulary (TransportError/NotFoundError/None semantics) with strong failure feedback (429 wait policy, progressive fallback). The repository contains real CI workflows and an extensive test suite, meeting the static-calibration condition to exceed 10; however, the skill itself is mostly documentation/pattern files whose specific guidance paths (e.g., get_financials-first preference) lack dedicated skill-level test coverage, and runtime behavior cannot be verified statically, so no higher score.

3Adaptability8 / 15 · 2.7/5

Scenarios are clear (company lookup, filing discovery, content search); collaboration.yaml declares core-skill boundaries and delegation ranges with concrete trigger tables and a disclosed token budget. Deductions: core function depends entirely on SEC EDGAR (sec.gov/data.sec.gov), whose reachability from mainland-China networks is poor with strict rate limits; no mirror or offline guidance (enterprise mirrors only mentioned); no Chinese-language support; some boundaries rely on skill directories outside this review's scope.

4Convention12 / 15 · 4.0/5

Good layered architecture (SKILL.md entry → skill.yaml patterns → sharp-edges/validations/collaboration), versioned at 1.1 in skill.yaml, clear MIT license, thorough install notes and dependency rationale (high-quality pyproject comments). Deductions: no skill-level changelog; maintenance concentrated in a single maintainer (README self-describes as such) with an update path tied to sponsorship continuity; some example accessions may decay over time.

5Effectiveness9 / 15 · 3.0/5

Clear marginal value for AI agents using SEC data: one-line XBRL parsing, str()/to_context() optimized for LLM output, README includes a cost comparison against alternatives (sec-api), and CI/test infrastructure provides execution evidence allowing the score above 7. Deductions: static review cannot verify the actual correctness/completeness of example outputs (e.g., financial-data standardization quality); effectiveness claims rest largely on author assertion.

6Verifiability5 / 10 · 2.5/5

The repository has genuine CI workflows (cassette safety gate, offline audit, 65% coverage floor, red-main tracking) and extensive test infrastructure, so many claims are auditable; sharp-edges claims to be 'discovered through skill testing' but no corresponding skill-level test records are shown. Facts and inferences are mostly separated. Nothing was executed in this review and skill-doc path coverage is not visible, capping at 5.

Evidence confidence:Low Reviewed Sep 09, 2026 Reviewed revision 40fcce88eba7
Before you use it
  • Core function depends entirely on SEC EDGAR; reachability from mainland-China networks is poor and rate limits are strict (HTTP 429 requires 10+ minute waits), with no mirror setup guidance provided;
  • set_identity requires a name and email sent with every SEC request for SEC compliance auditing — be aware before use;
  • Publisher identity is unverified in the FollowSkills registry and the project is maintained by a single person, posing continuity risk;
  • This is a static source review with no code executed; example output correctness has not been independently verified.
See the full review method →

What does this skill do, and when should you use it?

EdgarTools is an open-source (MIT) Python library for accessing and analyzing SEC EDGAR filings. It parses 20+ form types — 10-K, 10-Q, 8-K, 13F, Form 3/4/5 and more — into typed Python objects and pandas DataFrames, with XBRL-standardized financials for cross-company comparison. This skill bundles sub-modules for company lookup, financial statements, report section extraction, holdings, insider transactions, and raw XBRL, plus a built-in MCP server and LLM-ready text output. It is maintained by one person, used in production at hedge funds and fintechs, and depends on sponsorship to keep pace with quarterly SEC format changes.

Queries EDGAR through Company, get_filings, and find entry points: look up companies by ticker, locate filings by accession number, and search by form type and year. Parses filings into typed objects that yield income statements, balance sheets, and cash flow statements (XBRL-standardized), Form 4 insider transactions as DataFrames, 13F institutional holdings, 8-K event items, and multi-year XBRL concept time series. It extracts sections (Risk Factors, MD&A), converts HTML to clean text/Markdown for RAG, supports full-text search, and exposes an MCP server for AI clients.

  1. A quant researcher comparing standardized financials across companies gets XBRL-normalized income statements and balance sheets via Company().get_financials().
  2. A compliance or investment team monitoring insider activity parses the latest Form 4 and inspects buys/sells via form4.to_dataframe().
  3. A fund analyst reviewing hedge fund portfolios pulls a 13F-HR and exports every position as a DataFrame.
  4. An event-driven strategy tracks corporate announcements by parsing 8-Ks and reading reported event items.
  5. An engineer building a financial AI product or data pipeline needs rate-limit awareness, caching, LLM-ready text, and an MCP server.
  6. A Claude user asks natural-language questions (e.g., compare two companies' 3-year revenue growth) and gets answers backed by real SEC data via the skill or MCP server.

What are this skill's strengths and limitations?

Pros
  • Free, MIT-licensed, open source and inspectable — no API keys or subscriptions
  • Covers 20+ form types with XBRL-standardized financials for cross-company comparison
  • Typed objects plus pandas DataFrames drop straight into data pipelines
  • Built-in MCP server and RAG-friendly text keep AI integration cheap
  • 1000+ tests, configurable rate limiting, and enterprise mirrors for production use
Limitations
  • Maintained by a single person; sustainability depends on sponsorship while the SEC changes formats quarterly and ships new XBRL taxonomies yearly
  • Requires providing your name and email as an identity string to the SEC (mandatory for EDGAR)
  • SLAs, regression testing, and roadmap input are gated behind paid sponsor tiers ($250–$1,500/mo)
  • Self-reported metrics (downloads, stars) come from README badges and were not independently verified for this profile

How do you install this skill?

pip install edgartools

To install as an AI skill for Claude Code / Claude Desktop:
pip install "edgartools[ai]"
python -c "from edgar.ai import install_skill; install_skill()"

Or run as an MCP server (requires uv): add the edgartools-mcp command to Claude Desktop config with the EDGAR_IDENTITY environment variable set. The skill file lives at edgar/ai/skills/core/SKILL.md in the repository.

How do you use this skill?

Identify yourself to the SEC first:
from edgar import set_identity
set_identity("Your Name [email protected]")

Common entry points:
company = Company("AAPL") # by ticker
filing = find("0000320193-25-000079") # by accession
filings = get_filings(form="10-K", year=2024) # discovery

Every object exposes .docs for API reference, e.g. company.docs.search("filings"). You can also trigger it naturally, e.g. "List Tesla executives who sold over $1 million in stock in the past 6 months."

How does this skill compare with similar options?

The README contrasts it with sec-api, a hosted API: EdgarTools is free, open source, returns typed Python objects, runs in your process with no keys or quotas, and includes an MCP server; sec-api is a proprietary hosted JSON API at $49+/mo. The author also offers edgar.tools, a hosted platform on the same engine, for teams that don't want to operate the pipeline themselves.

FAQ

Do I need an SEC API key?
No. EDGAR requires an identity with every request; set_identity("Name email") once. No signup, no rate-limit tiers.
Can I use it commercially or in production?
Yes — MIT licensing permits commercial use, and the README states it runs in production at hedge funds and fintechs. SLAs and enterprise support require paid GitHub Sponsors tiers.
What are the main failure modes?
The SEC amends filing formats quarterly and ships new XBRL taxonomies yearly, so parsers need ongoing updates. Also, always set your identity first or requests may be rejected.
Which filing types are supported?
20+ typed forms including 10-K, 10-Q, 8-K, 13F, Form 3/4/5, DEF 14A proxies, S-1, N-CSR, N-MFP, N-PORT, Schedule 13D/G, and Form D/C/144.

Related skills