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.0110-Kor10-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.
Recommended workflows
Metadata-first workflow
- Start with
filings_queryusingtickerorcik. - Sort by
FilingDateorAcceptanceDateTime. - Capture the returned accession number.
- Use that accession number with
extractor_extract_filing,extractor_extract_item,download_file, orxbrl_convert.
Content-first workflow
- Start with
fulltext_search. - Filter by
text_contains,form_type, and filing dates. - Review matching filings.
- Extract the filing or a specific item from the most relevant accession numbers.
XBRL workflow
- Find a filing accession number with
filings_query. - Call
xbrl_convertusing that accession number. - 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-APIKeyheader. - 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_startfilling_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, orxbrl_url. - Make sure the HTML URL ends with
.htmor.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_numbermatches the form structure, for example1.01for8-K. - Try
extractor_extract_filingfirst if you are not sure which items are present.
