edgar_filing_exhibit_text
Pack: edgar · Connect: https://pipeworx.io/mcp (see Connect below for a single-pack URL)
No MCP client? Call it directly: GET https://gateway.pipeworx.io/v1/tools/edgar_filing_exhibit_text for the schema, then POST the same URL with its arguments for the data.
Full text of an exhibit (e.g. a press release) attached to an SEC filing, such as an 8-K’s EX-99.1.
Tool description as the model sees it
Full text of an EXHIBIT attached to a filing — not the filing’s own primary document (use edgar_filing_text for that). This is the only way to read an 8-K’s Exhibit 99.1/99.2 press release — a quarterly production-and-delivery report, an earnings release, a KPI update — because the 8-K body itself routinely just says “see the attached exhibit” and carries none of the numbers; the figures live in the exhibit document. Pass the filer’s ticker or cik plus either an accession (from edgar_company_filings) or a form_type to auto-resolve the latest matching filing (defaults to “8-K” when both accession and form_type are omitted, since that is overwhelmingly when an exhibit holds the operative content). Set exhibit to pick a specific attachment by its SEC-assigned type — “99.1”, “99”, “10.1” — read off the filing’s own document index (case-insensitive, the “EX-” prefix optional); omit it to default to the first EX-99.* exhibit, which is the convention Item 2.02 (earnings) and Item 7.01 (Reg FD) 8-Ks use for a press release. When the requested exhibit is not found (or none exists), the response lists every exhibit actually in the filing under available_exhibits rather than failing silently. For a specific number inside the exhibit, pass search (a short phrase likely to appear verbatim, e.g. “vehicle deliveries”, “Megapack”, “energy storage”) the same way edgar_filing_text does — it scans the whole exhibit and returns matching passages ranked by a nearby figure, with |-separated phrases for more than one fact in one call; a zero-match search is a real answer (try different wording) and falls back to a word-level match when the exact phrase misses. Without search, the exhibit text is returned paged (max_chars/offset, same convention as edgar_filing_text) since a press release can run several thousand words. Use for “Tesla’s Q3 2026 vehicle deliveries and production”, “what did $TICKER’s earnings press release say about [KPI]”, “read the exhibit attached to $TICKER’s latest 8-K”. Source: U.S. Securities and Exchange Commission, EDGAR filing exhibits (the same primary-source filings edgar_filing_text and edgar_filing_documents read).
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
ticker | string | no | The filer’s ticker (e.g. “TSLA”) or company name. Provide this OR cik. Tickers are auto-resolved to CIKs. |
cik | string | no | The filer’s CIK number (e.g. “1318605”). Provide this OR ticker. |
ticker_or_cik | string | no | Alias for ticker / cik — the single-argument spelling edgar_filing_documents and edgar_filing_text use. Takes either a ticker or a CIK. |
accession | string | no | Optional SEC accession number of a specific filing, with or without dashes (e.g. “0001628280-26-064366”). Omit it to auto-resolve the latest filing matching form_type (and filed, if given) — the response says accession_source:"auto_selected" when this happens. |
form_type | string | no | When accession is omitted, the form type of the filing to resolve — “8-K”, “10-K”, “10-Q”, etc., or a |-separated set. Defaults to “8-K” when both accession and form_type are omitted, since an exhibit holding the operative content (a press release) is overwhelmingly an 8-K attachment. |
filed | string | no | Only consider filings filed on this date, in this month, or in this year — “2026-10-02”, “2026-10”, “2026” (US spellings accepted). Pass this whenever the question names a date or quarter (“Tesla’s Q3 2026 deliveries report”) — Tesla and most large filers submit TWO 8-Ks a quarter (a day-2 production-and-delivery release, then a day-~22 full earnings release), so without a date the newest one is used and it may not be the one the question means. |
filing_date | string | no | Alias for filed. |
exhibit | string | no | Which exhibit to read, by its SEC-assigned type — “99.1”, “EX-99.1”, “99”, “10.1” (case-insensitive, “EX-” prefix optional). Omit to default to the first EX-99.* exhibit (the press-release convention). If nothing matches, the response lists every exhibit the filing actually has under available_exhibits instead of failing with no leads. |
search | string | no | Find a specific fact instead of paging blind — same convention as edgar_filing_text’s search. A short 2-4 word phrase likely to appear VERBATIM (e.g. “vehicle deliveries”, “energy storage deployments”), case-insensitive, scanned over the WHOLE exhibit text before any paging. Falls back to a word-level match (reported as such) when the exact phrase has no match. Separate multiple facts with | (e.g. “vehicle deliveries|energy storage deployments”) to get both from this one exhibit in one call, each reported independently under searches[]. |
contains | string | no | Alias for search. |
find | string | no | Alias for search. |
phrase | string | no | Alias for search. |
max_chars | number | no | Max characters to return in this page when search is not used (1000–100000, default 50000). Text past this is available via next_offset. |
offset | number | no | Character offset to start from when search is not used (default 0). Pass the prior result’s next_offset to page forward. |
Example call
Arguments
{
"ticker": "TSLA",
"accession": "0001628280-26-064366",
"search": "vehicle deliveries|energy storage"
}
curl
curl -X POST https://gateway.pipeworx.io/edgar/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"edgar_filing_exhibit_text","arguments":{"ticker":"TSLA","accession":"0001628280-26-064366","search":"vehicle deliveries|energy storage"}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('edgar_filing_exhibit_text', {
"ticker": "TSLA",
"accession": "0001628280-26-064366",
"search": "vehicle deliveries|energy storage"
});
Connect
Add this to your MCP client config — every tool in the catalog, including this one — or use one-click install buttons:
{
"mcpServers": {
"pipeworx": {
"url": "https://pipeworx.io/mcp"
}
}
}
Connect to just the edgar pack
{
"mcpServers": {
"edgar": {
"url": "https://gateway.pipeworx.io/edgar/mcp"
}
}
}
See Getting Started for client-specific install steps.