🔗 MCP API

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_search finds candidate filings by document content.
  • extractor_extract_item gives 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 cik instead of ticker when your upstream systems already store SEC identifiers.
  • Add report_date_start and report_date_end when you want to filter by reporting period instead of filing date.
  • Switch type to html if 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_url
  • xbrl_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:

  1. Discover filings with filings_query or fulltext_search.
  2. Use the accession number as the handoff key.
  3. Extract only what you need with extractor_extract_item or extractor_extract_filing.
  4. Pull raw assets with download_file only when processed output is not enough.
  5. Use xbrl_convert when the target format should be structured JSON.

Notes

  • Keep the parameter names exactly as defined by the schema, including filling_date_start and filling_date_end.
  • Item numbers are form-specific, so 1.01 works for 8-K but not necessarily for 10-K or 10-Q.
  • download_file returns base64 content, so clients usually need a decode step before saving or parsing the file.
Service StatusGitHub SDK