🔗 MCP API

Getting Started

Connect your MCP client to the FinFeedAPI SEC MCP server and start searching, extracting, and downloading SEC filings.

Getting Started with SEC API MCP

This guide shows how to connect an MCP client to the hosted FinFeedAPI SEC MCP server.

Endpoint and authentication

  • MCP endpoint: https://api.sec.finfeedapi.com/mcp
  • Header: X-APIKey: YOUR_API_KEY
  • Transport: HTTP streaming MCP

Cursor example

Add the SEC server to your MCP client configuration:

{
  "mcpServers": {
    "FinFeedAPI-SEC": {
      "url": "https://api.sec.finfeedapi.com/mcp",
      "headers": {
        "X-APIKey": "YOUR_API_KEY_HERE"
      }
    }
  }
}

Replace YOUR_API_KEY_HERE with your real API key and restart the client if required by your MCP application.

First requests to try

These are the fastest ways to validate that the server is connected and usable.

1. Query recent filings for a ticker

Call filings_query with:

{
  "ticker": "AAPL",
  "form_type": "10-K,10-Q,8-K",
  "page_size": 5,
  "page_number": 1,
  "sort_by": "FilingDate",
  "sort_order": "desc"
}

Use this flow when you already know the company and want structured filing metadata.

2. Search filing text for a keyword

Call fulltext_search with:

{
  "form_type": "8-K",
  "text_contains": "material agreement",
  "filling_date_start": "2025-01-01",
  "filling_date_end": "2025-12-31",
  "page_size": 10,
  "page_number": 1
}

Use this flow when you want to discover filings by document content instead of company metadata.

3. Extract a full filing

Once you have an accession number, call extractor_extract_filing:

{
  "accession_number": "0000320193-25-000073",
  "type": "text"
}

This returns the filing content classified according to the supported form type.

4. Extract a specific filing item

Call extractor_extract_item when you need one section only:

{
  "accession_number": "0000320193-25-000073",
  "item_number": "1.01",
  "type": "text"
}

Typical item formats:

  • 8-K: 1.01, 2.01, 7.01
  • 10-K or 10-Q: 1, 2, and other section numbers used by the filing

5. Convert XBRL to JSON

Call xbrl_convert with one of the supported inputs.

Using accession number:

{
  "accession_no": "0001564590-21-004599"
}

Using an SEC filing HTML URL:

{
  "htm_url": "https://www.sec.gov/Archives/edgar/data/1318605/000156459021004599/tsla-10k_20201231.htm"
}

Only one of accession_no, htm_url, or xbrl_url should be provided.

6. Download a filing attachment

Call download_file with:

{
  "accession_no": "0001564590-21-004599",
  "file_name": "tsla-10k_20201231_htm.xml"
}

The result includes the file content as base64 plus file metadata.

Metadata-first workflow

  1. Start with filings_query using ticker or cik.
  2. Sort by FilingDate or AcceptanceDateTime.
  3. Capture the returned accession number.
  4. Use that accession number with extractor_extract_filing, extractor_extract_item, download_file, or xbrl_convert.

Content-first workflow

  1. Start with fulltext_search.
  2. Filter by text_contains, form_type, and filing dates.
  3. Review matching filings.
  4. Extract the filing or a specific item from the most relevant accession numbers.

XBRL workflow

  1. Find a filing accession number with filings_query.
  2. Call xbrl_convert using that accession number.
  3. If needed, download the original XBRL attachment with download_file.

Troubleshooting

No tools appear in the client

  • Verify the endpoint URL is exactly https://api.sec.finfeedapi.com/mcp.
  • Confirm the request includes the X-APIKey header.
  • Restart the MCP client after editing its configuration.

Filing date filters do not work

Use the exact parameter names exposed by the tool schema:

  • filling_date_start
  • filling_date_end

Even though "filing" is the natural spelling, the MCP schema currently uses filling_*.

xbrl_convert fails

  • Provide only one input source: accession_no, htm_url, or xbrl_url.
  • Make sure the HTML URL ends with .htm or .html.
  • Make sure the XBRL URL ends with .xml.

Item extraction returns no useful content

  • Confirm the filing form supports item-based extraction.
  • Verify the item_number matches the form structure, for example 1.01 for 8-K.
  • Try extractor_extract_filing first if you are not sure which items are present.
Service StatusGitHub SDK