Use Cases
Practical SEC MCP workflows for screening filings, extracting 8-K items, and converting XBRL into JSON.
SEC MCP Use Cases
This page shows practical ways to combine the SEC MCP tools into repeatable workflows.
1. Screen 8-K filings for a specific event
Use this workflow when you want to find recent 8-K filings related to a topic such as material agreements, management changes, or financing events.
Step 1: search filing text
{
"tool": "fulltext_search",
"arguments": {
"form_type": "8-K",
"text_contains": "material agreement",
"filling_date_start": "2025-01-01",
"filling_date_end": "2025-12-31",
"page_size": 25,
"page_number": 1,
"sort_by": "FilingDate",
"sort_order": "desc"
}
}Step 2: extract the relevant item
Once you identify a filing accession number, extract only the item you need:
{
"tool": "extractor_extract_item",
"arguments": {
"accession_number": "0000320193-25-000073",
"item_number": "1.01",
"type": "text"
}
}Why this works well
fulltext_searchfinds candidate filings by document content.extractor_extract_itemgives you only the relevant section instead of the entire filing.- This is useful for alerting, summarization, and classification pipelines.
2. Review the latest filings for one company
Use this workflow when you already know the issuer and want a recent filing timeline.
Step 1: query company filings
{
"tool": "filings_query",
"arguments": {
"ticker": "AAPL",
"form_type": "10-K,10-Q,8-K",
"page_size": 10,
"page_number": 1,
"sort_by": "FilingDate",
"sort_order": "desc"
}
}Step 2: extract the full filing
{
"tool": "extractor_extract_filing",
"arguments": {
"accession_number": "0000320193-25-000073",
"type": "text"
}
}Variations
- Use
cikinstead oftickerwhen your upstream systems already store SEC identifiers. - Add
report_date_startandreport_date_endwhen you want to filter by reporting period instead of filing date. - Switch
typetohtmlif your downstream parser needs markup preserved.
3. Convert a filing's XBRL into JSON
Use this workflow when you want structured financial facts instead of raw filing text.
Step 1: locate the filing
{
"tool": "filings_query",
"arguments": {
"ticker": "TSLA",
"form_type": "10-K",
"page_size": 5,
"page_number": 1,
"sort_by": "FilingDate",
"sort_order": "desc"
}
}Step 2: convert by accession number
{
"tool": "xbrl_convert",
"arguments": {
"accession_no": "0001564590-21-004599"
}
}Alternative inputs
If you already know the source document URL, you can convert directly from:
htm_urlxbrl_url
Only one input should be passed to xbrl_convert.
4. Download the original filing attachment
Use this when you need the original XML, HTML, XSD, or related file from EDGAR.
{
"tool": "download_file",
"arguments": {
"accession_no": "0001564590-21-004599",
"file_name": "tsla-10k_20201231_htm.xml"
}
}This is especially useful if:
- you maintain your own archive of source documents
- you want to inspect the raw attachment before parsing
- you need a file that is not directly covered by the extractor tools
5. Build a two-stage research workflow
For many agent or analyst workflows, the best pattern is:
- Discover filings with
filings_queryorfulltext_search. - Use the accession number as the handoff key.
- Extract only what you need with
extractor_extract_itemorextractor_extract_filing. - Pull raw assets with
download_fileonly when processed output is not enough. - Use
xbrl_convertwhen the target format should be structured JSON.
Notes
- Keep the parameter names exactly as defined by the schema, including
filling_date_startandfilling_date_end. - Item numbers are form-specific, so
1.01works for8-Kbut not necessarily for10-Kor10-Q. download_filereturns base64 content, so clients usually need a decode step before saving or parsing the file.
