Skip to main content
Available as MCP tool: sec_filing_read — call directly from Claude / Cursor / any MCP client. See MCP Server for the 60-second setup.
Live   1 credit per call

What it does for your agent

sec_filing_read is the second step in SEC Filing’s progressive-disclosure pattern: after sec_filing_browse returns the list of filings for a ticker, use this tool to extract the full text of a specific item (Risk Factors, MD&A, Financial Statements, earnings press releases, etc.). Pass either accession_number (recommended after browse, and required for 8-K) or year / quarter plus the section code(s), and the response carries the section text plus a manifest of the filing’s other sections. Pass items (an array) to pull several sections in one call — still 1 credit — and a requested code the filing doesn’t have is simply dropped from the result rather than erroring. sec_filing_read is not semantic search: it performs parameterized lookup by (ticker, filing_type, accession_number OR year[+quarter], item) and returns the exact section text — no relevance ranking, no fuzzy matching.
The MCP tool groups the locator under one filing object. Over HTTP API, locator parameters remain flat query parameters as listed below. Hosted Remote MCP and @llmquant/data-mcp@0.7.1 accept exactly one of three locator shapes inside filing:
  • annual report — {"filing_type": "10-K", "year": 2024}
  • quarterly report — {"filing_type": "10-Q", "year": 2025, "quarter": 2}
  • one exact filing — {"filing_type": "10-K" | "10-Q" | "8-K", "accession_number": "0000320193-26-000050"}
Send only the fields your chosen shape lists. Combinations outside these three — an accession_number next to year, a quarter on a 10-K, an 8-K without an accession_number — are rejected before the call runs, so they cost no credits.

Response

The HTTP API response uses snake_case field names. The MCP tool result returns the same data with camelCase names, such as filingType, accessionNumber, and availableSections.
FilingReadResult
required
number
Credits consumed (always 1).
number
Account credits remaining.
200 OK · sec_filing_read

Notes

Two-step lookup is canonical: call sec_filing_browse first (free) to get the list of filings, grab the accession_number you want, then call sec_filing_read (1 credit) with that accession + a specific item. This avoids ambiguity around period_of_report vs filed_at years for 10-Q.
Inspect available_sections[i].char_count before pulling more sections — long items (Risk Factors, MD&A) can be tens of thousands of characters. Read one section per call to keep agent context small.
Need several sections from one filing? Pass items (e.g. ["item2.02","item9.01"]) to fetch them in a single call — still 1 credit — and skip pulling large exhibits you didn’t ask for.
10-K, 10-Q, and 8-K use different item code systems — see the parameter reference below. Mixing them returns 400.
Missing codes are dropped, not errored. A format-valid item / items code the filing doesn’t contain is omitted from the result (check available_sections for what exists). If none of the requested codes can be returned, the response is 200 with an empty items array and a meta.notice; the read still costs 1 credit. A malformed code (wrong system for the filing type) still returns 400.
For 10-Q, year alone is not enough — you must pass either year + quarter, or accession_number. year for 10-Q without quarter returns 400.
8-K must be located by accession_number. It is event-driven (many filings per year), so year / quarter cannot identify one — browse first, then read by accession_number. Passing year or quarter for 8-K returns 400.
Plain-text output only. HTML / structured tables are not exposed by this tool. Very recently filed reports may take a moment to become available while they are processed.

Direct invocation

Full parameter reference

The names and meanings below are the HTTP query parameters. The MCP tool uses snake_case locator names inside a single filing object (filing_type, year, quarter, accession_number) and returns camelCase result fields — see the note near the top of this page.
string
required
U.S. equity ticker (e.g. AAPL, NVDA, META).
string
required
Filing type — 10-K, 10-Q, or 8-K.
integer
Calendar year of period_of_report. Required for 10-K when accession_number is omitted; required together with quarter for 10-Q when accession_number is omitted. Not used for 8-K (locate by accession_number).
integer
Quarter of period_of_report (1-4). Only valid for 10-Q (rejected for 10-K and 8-K). Required when looking up a 10-Q by year (without accession_number).
string[]
Fetch several sections in one call. Over HTTP, comma-separate them (items=item2.02,item9.01); for the MCP tool, pass an array. The codes are the same as item below. Up to 25 per call, duplicates removed, still 1 credit. A code this filing doesn’t have is skipped; if no requested code matches, you get 200 with empty items and a notice. Omit to return every section.
string
Singular alias for items (HTTP only; the MCP tool exposes only items) — equivalent to items=[<item>]. Omit to return every extractable section.10-K item codes: 1, 1A, 1B, 1C, 2, 3, 4, 5, 6, 7, 7A, 8, 9, 9A, 9B, 10, 11, 12, 13, 14, 15.10-Q item codes: part1item1, part1item2, part1item3, part1item4, part2item1, part2item1a, part2item2, part2item3, part2item4, part2item5, part2item6.8-K item codes: vary per filing (event-driven) — e.g. item2.02 (earnings / Results of Operations), item5.02 (executive changes), item1.01 (material agreement), item8.01 (other events), plus exhibits like ex99.1 (press release). Read available_sections from any response to see the exact set a given 8-K contains.Common picks: 10-K 1 (Business) · 1A (Risk Factors) · 7 (MD&A) · 8 (Financial Statements) · 10 (Directors / Officers); 10-Q part1item1 (Financial Statements) · part1item2 (MD&A) · part2item1a (Risk Factors).
string
Exact SEC accession number (e.g. 0001045810-26-000021). Recommended after sec_filing_browse, and required for 8-K. Cannot be combined with year or quarter.The MCP tool checks the format (0000000000-00-000000), so a placeholder string is rejected instead of being sent as a real lookup. Take the value from sec_filing_browse.

SEC Filing Browse

Step 1 — list available filings for a ticker before calling read.

13F Holdings by Manager

Institutional ownership data — a different SEC filing family (Form 13F).

MCP Server setup

Connect Claude / Cursor / any harness in 60 seconds.