I asked the edgar.tools MCP server six questions about ELF
An end-to-end session against the live MCP plugin in Claude Desktop. Six questions, eight tool calls, an honest list of what works and what's still mid-flight.
I spent thirty minutes on a Friday morning running six questions about e.l.f. Beauty through Claude Desktop with the edgar.tools MCP plugin installed. Eight tool calls later I had the FY26 financials, the new acquisition-driven risk language, the insider trades from the last six months, and the exact MD&A paragraph that quantified how much of FY26 revenue growth came from the rhode acquisition ($293.5 million) versus the existing business ($29.5 million) — every claim cited to an SEC accession the reader could click straight through to. Every response came back as structured JSON with a data_quality{} envelope on it — source filing, as-of date, signal annotations — so Claude could ground each claim on a specific 10-K, 10-Q, 8-K, or 13F rather than reasoning from prose.
That's the toolkit as it actually exists today: a small set of well-shaped tools with grounded data, structured signals, and citations on every number, and the rest of this post walks through what shipped, what's mid-flight, and what to expect when you install it.
The edgar.tools MCP server is what makes any of that possible. MCP — Model Context Protocol — is the open standard Anthropic shipped for connecting LLM clients to external tools, and edgar.tools runs one. Install the plugin once from the MCP Hub, authorize with your edgar.tools account, and roughly twenty-five tools become callable from your Claude Desktop conversations. You don't call them yourself: you ask Claude a question in plain English, Claude picks the tool, and the response you read is its synthesis on top of structured JSON with SEC accessions on every numeric claim. The tools are designed for LLM consumers — compact, citation-first, with explicit freshness flags so Claude can tell stale data from fresh.
What's in the toolkit today
The twenty-five tools group into a handful of categories. The mental model that matters is what each one does for the analyst:
| Category | Tools | What you'd ask |
|---|---|---|
| Lookup | search_companies, search_entities |
"Find e.l.f. Beauty" |
| Profile | company_brief, financial_snapshot |
"Tell me about ELF" |
| Time series | financial_trends, financial_statements |
"How has revenue trended?" |
| Ownership | insider_activity, institutional_ownership |
"Who's buying and selling?" |
| Narrative | filing_section, disclosure_search |
"What does the 10-K say about X?" |
| Intel bundle | position_intel |
"Give me a structured read on this name" |
Free covers lookups and a thin profile slice. Pro ($24.99/month) opens the bulk — full profiles, multi-year trends, ownership detail, the narrative tools, and corpus search. Analyst adds position_intel and five slash-command recipes that compose the aggregation tools into pre-baked workflows.
A live session — six questions about ELF
To make the toolkit concrete, here is the session itself. The persona is a value-side investor with a thirty-minute window: ELF is on the watchlist because revenue has been climbing fast and the stock has had a wild ride, and the goal is to decide whether to keep watching, drop it, or escalate to a position-sizing exercise. Six questions, asked one at a time in plain English. Under each I have noted the tools Claude picked, what came back, and the finding that mattered.
Q1 — Identity and headline financials
Claude reached for company_brief and financial_snapshot in parallel. The first returned FY26 figures fresh from the 10-K filed three days earlier — revenue $1.636 billion, net income $26.3 million, operating cash flow $212.5 million, for the fiscal year ended March 31, 2026. The second came back with the twelve-ratio snapshot, broken into profitability, returns, liquidity, and leverage groupings. Both responses carried a data_quality{} envelope citing the source filing and an as_of date so every number Claude later quoted had an SEC link back to the underlying filing — no manual lookup required.
Q2 — Recent events
Claude reached for material_events, which scans a company's 8-K filings. Three came back — two routine earnings releases and one item-5.02 disclosure from February 13 announcing a director appointment. What made the response useful was not the list itself but the signals[] array attached to it: the tool flagged the 5.02 entry as severity: "high" in a structured field, so Claude could lead its answer with the one filing that actually mattered. The other two were noise for a triage-style read, and were treated accordingly.
Q3 — Multi-year trend
Claude picked financial_trends and pulled revenue, net income, and operating income across five years. The series surfaced a striking inflection — net income growth swung from +107.5% in FY24 to −12.2% in FY25; operating income decelerated from +120% to +5.6% over the same step — and those were not numbers Claude computed. They came back directly in the signals[] array as severity: "medium" anomaly entries, with each datapoint cited to its source filing. A consumer LLM doesn't have to do the trend math; the tool does, and the deceleration story arrives pre-flagged.
Q4 — Ownership signals
Claude reached for insider_activity and institutional_ownership in parallel. The insider response carried sixteen transactions over a 180-day window, but the field that actually answered the question was most_recent_open_market_buy: "2026-02-20" — a director (Matthew Farrell) bought 5,000 shares at $92.96, code P, no compensatory footnotes. The "without being made to" qualifier was carried by a single structured field, not by Claude parsing transaction codes. The institutional side returned 456 holders totaling $4.78 billion in reported value — Baillie Gifford on top at $545.8 million, Vanguard and BlackRock behind it — drawn from the December 31, 2025 13F cycle that the response envelope identified explicitly.
Q5 — Risks
Claude picked position_intel, the Analyst-tier bundle that pulls catalysts, ownership shifts, and a risk-factor diff between a company's two latest 10-Ks into a single call. The risk_diff section identified two added entries and seventeen materially-changed ones between the FY25 and FY26 filings — and the highest-priority added entry read:
"Acquisitions or investments, such as our acquisition of HRBeauty LLC ('rhode'), could disrupt our business and harm our financial condition."
Surfacing the rhode acquisition as a brand-new risk factor — without me having typed "rhode" or "acquisition" — set up the next question, where the same accession came back into play.
Q6 — What drove FY26 growth?
Claude reached for `filing_section` and asked for the MD&A section of the FY26 10-K () — the same accession position_intel had handed back in the previous answer. One tool call, one returned section, one paragraph that answered the question exactly:
"Net sales increased $323.0 million, or 25%, to $1,636.5 million in the fiscal year ended March 31, 2026, from $1,313.5 million in the fiscal year ended March 31, 2025. The rhode Acquisition contributed $293.5 million to our growth in the fiscal year ended March 31, 2026, with the remaining $29.5 million contributed from our existing business."
No "rhode" keyword in the prompt. No directed search. Claude saw the rhode acquisition come back from Q5's risk_diff, kept the accession in context, and asked filing_section for the MD&A body. The toolkit moved from "list of independent tools" to a system that hands accessions between calls — without any prompt engineering on my end.
What's still in flight
Two pieces of the toolkit are honest works in progress, and both surfaced during this session.
The first is calibration consistency across tools. insider_activity and position_intel both score insider-trading "clusters" — runs of related transactions on the same day — but they don't always agree on the severity. The April 27 cluster of six officer sales (which were actually mandatory PSU tax-withholding sales, footnoted as non-discretionary on each Form 4) was scored HIGH by one tool and LOW by the other. The data needed to make the right call is in both responses; the calibrator that reads the footnotes lives in one and not the other. Filed as a follow-up; the fix is a single shared calibrator.
The second is a sign-convention bug in a sanity-check assertion on insider_activity. The tool computes its own check on whether the summary net_value matches the transaction-level sum — useful in principle for catching aggregation bugs — but the check uses the opposite sign convention from the aggregator it is checking, so it false-fires on most active insider windows with a misleading caveat. Filed today; the fix is one line.
Both are bugs, not architectural gaps, and both close in the next release cycle. The relevant point for installing today: the trust infrastructure itself is being calibrated, not just the tool outputs it tags.
What we honestly don't cover
The toolkit is best for issuer-side analysis. If your question is about a public company — what they filed, who runs them, what their insiders are doing, what their 10-K says about a specific topic — this is the right surface. A few things we are not, and don't pretend to be:
- Not a real-time price feed. Prices in tool responses come from filings (Form 4 transaction prices, 13F report-date valuations), not market data.
- Not a fundamental forecasting model. We don't produce next-year revenue estimates, target prices, or buy/sell recommendations. The toolkit gives the LLM the grounded inputs; the model the analyst trusts produces the outputs.
- Not a portfolio-management or position-sizing tool. Track-record metrics, attribution, and trade-blotter analysis live in the analyst's existing stack.
- Not a private-borrower or pre-IPO database. The SEC is the public surface, and that's what we cover. If your real exposure is to non-filers, this is the periphery of your book, not the center.
For the things we do cover — issuer fundamentals, insider behavior, ownership flows, filing narrative, peer and corpus search — the tools are designed to give an LLM the structured ground truth it needs to write a citable answer.
Install and try it
The MCP server is available through the Plugin Hub at app.edgar.tools/mcp. Install in Claude Desktop, authorize with your edgar.tools account, and the tools appear in your conversation tool tray. Free tier covers lookups; Pro ($24.99/month) covers most of what's in this post; Analyst adds position_intel and the slash-command recipes.
If you want to see the Q6 moment for yourself, paste this into Claude Desktop after installing:
"What drove e.l.f. Beauty's FY26 revenue growth, and where in the 10-K is that documented?"
You should see Claude reach for a profile or intel tool first, pick up the FY26 10-K accession, call filing_section with section: "mdna", and quote the same paragraph this post quoted — with the citation already on the line.