SEC Filings
Read SEC filings, reported financial facts and sampled filing comparisons with original sources.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"sec-filings": {
"url": "https://filings.tools/mcp"
}
}
}Remote endpoints
https://filings.tools/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢list_filings(ticker, form, limit)
Find recent SEC filings for any company in the SEC's ticker list, by ticker or CIK, with filing ids, form types, dates, accession numbers and original SEC links. Returns up to 20 filings from the company's recent EDGAR window.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"pattern": "^[A-Za-z0-9.-]{1,13}$",
"description": "A ticker in EDGAR spelling (BRK-B), or a CIK such as 320193."
},
"form": {
"type": "string",
"enum": [
"10-K",
"10-Q",
"8-K",
"10-K/A",
"10-Q/A",
"20-F",
"40-F"
]
},
"limit": {
"default": 10,
"type": "integer",
"minimum": 1,
"maximum": 20
}
},
"required": [
"ticker"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"success",
"tool_error",
"internal_error"
]
},
"usage": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"api_url": {
"type": "string"
},
"docs_url": {
"type": "string"
},
"company": {
"type": "object",
"properties": {
"cik": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"ticker": {
"type": "string"
},
"name": {
"type": "string"
},
"sic": {
"type": "string"
},
"sicDescription": {
"type": "string"
},
"fiscalYearEnd": {
"type": "string"
}
},
"required": [
"cik",
"ticker",
"name"
],
"additionalProperties": false
},
"filings": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"form": {
"type": "string"
},
"accession": {
"type": "string"
},
"filingDate": {
"type": "string"
},
"reportDate": {
"type": "string"
},
"sourceUrl": {
"type": "string"
},
"pageUrl": {
"type": "string"
},
"sectionsUrl": {
"type": "string"
}
},
"required": [
"id",
"form",
"accession",
"filingDate",
"reportDate",
"sourceUrl",
"pageUrl",
"sectionsUrl"
],
"additionalProperties": false
}
},
"error": {
"type": "string",
"maxLength": 80
},
"message": {
"type": "string"
},
"http_status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"retry_after": {
"type": "string",
"maxLength": 80
}
},
"required": [
"status",
"docs_url"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢read_filing_section(filing_id, section, max_characters)
Read a named section from an SEC filing id. Omitting section returns the section index without text. A section reply contains at most 20,000 characters, with its original length and an explicit truncation flag.
Input Schema
{
"type": "object",
"properties": {
"filing_id": {
"type": "string",
"pattern": "^\\d{1,10}-\\d{18}$"
},
"section": {
"type": "string",
"pattern": "^[a-z0-9-]{1,80}$"
},
"max_characters": {
"default": 12000,
"type": "integer",
"minimum": 500,
"maximum": 20000
}
},
"required": [
"filing_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"success",
"tool_error",
"internal_error"
]
},
"usage": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"api_url": {
"type": "string"
},
"docs_url": {
"type": "string"
},
"id": {
"type": "string"
},
"product": {
"type": "string",
"const": "filings"
},
"title": {
"type": "string"
},
"sourceUrl": {
"type": "string"
},
"parserVersion": {
"type": "string"
},
"topics": {
"type": "array",
"items": {
"type": "string"
}
},
"meta": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": [
"string",
"number",
"boolean",
"null"
]
}
},
"index_only": {
"type": "boolean"
},
"section_found": {
"type": "boolean"
},
"sections_truncated": {
"type": "boolean"
},
"sections": {
"maxItems": 80,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"chars": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"markdown": {
"type": "string",
"maxLength": 20000
},
"returned_characters": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
}
},
"required": [
"id",
"title",
"chars"
],
"additionalProperties": false
}
},
"error": {
"type": "string",
"maxLength": 80
},
"message": {
"type": "string"
},
"http_status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"retry_after": {
"type": "string",
"maxLength": 80
}
},
"required": [
"status",
"docs_url"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢filing_facts(filing_id, limit)
Read XBRL facts tagged to one filing's accession, covering the API's ten supported concepts. Returns up to 200 reported values with units and periods. It does not return all company periods or calculate investment advice.
Input Schema
{
"type": "object",
"properties": {
"filing_id": {
"type": "string",
"pattern": "^\\d{1,10}-\\d{18}$"
},
"limit": {
"default": 50,
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"required": [
"filing_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"success",
"tool_error",
"internal_error"
]
},
"usage": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"api_url": {
"type": "string"
},
"docs_url": {
"type": "string"
},
"company": {
"type": "object",
"properties": {
"cik": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"ticker": {
"type": "string"
},
"name": {
"type": "string"
},
"sic": {
"type": "string"
},
"sicDescription": {
"type": "string"
},
"fiscalYearEnd": {
"type": "string"
}
},
"required": [
"cik",
"ticker",
"name"
],
"additionalProperties": false
},
"filing": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"form": {
"type": "string"
},
"accession": {
"type": "string"
},
"filingDate": {
"type": "string"
},
"reportDate": {
"type": "string"
},
"sourceUrl": {
"type": "string"
}
},
"required": [
"id",
"form",
"accession",
"filingDate",
"reportDate",
"sourceUrl"
],
"additionalProperties": false
},
"total_facts": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"truncated": {
"type": "boolean"
},
"facts": {
"maxItems": 200,
"type": "array",
"items": {
"type": "object",
"properties": {
"concept": {
"type": "string"
},
"friendly": {
"type": "string"
},
"value": {
"type": "number"
},
"unit": {
"type": "string"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
},
"fy": {
"type": "number"
},
"fp": {
"type": "string"
},
"form": {
"type": "string"
},
"filed": {
"type": "string"
},
"accession": {
"type": "string"
}
},
"required": [
"concept",
"value",
"unit",
"end",
"form",
"filed",
"accession"
],
"additionalProperties": false
}
},
"error": {
"type": "string",
"maxLength": 80
},
"message": {
"type": "string"
},
"http_status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"retry_after": {
"type": "string",
"maxLength": 80
}
},
"required": [
"status",
"docs_url"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢compare_filing(filing_id)
Compare an SEC filing with the preceding available reporting period of the same company and form. Returns full sentence-change counts and bounded examples for up to eight sections; reports when a prior filing is unavailable. It is a sampled comparison, not a complete redline.
Input Schema
{
"type": "object",
"properties": {
"filing_id": {
"type": "string",
"pattern": "^\\d{1,10}-\\d{18}$"
}
},
"required": [
"filing_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Output Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"success",
"tool_error",
"internal_error"
]
},
"usage": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"api_url": {
"type": "string"
},
"docs_url": {
"type": "string"
},
"id": {
"type": "string"
},
"ticker": {
"type": "string"
},
"form": {
"type": "string"
},
"comparable": {
"type": "boolean"
},
"current": {
"type": "object",
"properties": {
"accession": {
"type": "string"
},
"filingDate": {
"type": "string"
},
"reportDate": {
"type": "string"
},
"url": {
"type": "string"
},
"page": {
"type": "string"
}
},
"required": [
"accession",
"filingDate",
"reportDate",
"url",
"page"
],
"additionalProperties": false
},
"company": {
"type": "string"
},
"prior": {
"type": "object",
"properties": {
"accession": {
"type": "string"
},
"filingDate": {
"type": "string"
},
"reportDate": {
"type": "string"
},
"url": {
"type": "string"
},
"page": {
"type": "string"
}
},
"required": [
"accession",
"filingDate",
"reportDate",
"url",
"page"
],
"additionalProperties": false
},
"reportDate": {
"type": "string"
},
"reason": {
"type": "string"
},
"message": {
"type": "string"
},
"totals": {
"type": "object",
"properties": {
"added": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"removed": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"changed": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"unchanged": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"added",
"removed",
"changed",
"unchanged"
],
"additionalProperties": false
},
"total_sections": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"samples_only": {
"type": "boolean"
},
"sections": {
"maxItems": 8,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"counts": {
"type": "object",
"properties": {
"added": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"removed": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"changed": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"unchanged": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"required": [
"added",
"removed",
"changed",
"unchanged"
],
"additionalProperties": false
},
"onlyIn": {
"type": "string",
"enum": [
"prior",
"current"
]
},
"added": {
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"maxLength": 400
}
},
"removed": {
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"maxLength": 400
}
},
"changed": {
"maxItems": 2,
"type": "array",
"items": {
"type": "object",
"properties": {
"before": {
"type": "string",
"maxLength": 400
},
"after": {
"type": "string",
"maxLength": 400
},
"similarity": {
"type": "number"
}
},
"required": [
"before",
"after",
"similarity"
],
"additionalProperties": false
}
}
},
"required": [
"id",
"title",
"counts",
"added",
"removed",
"changed"
],
"additionalProperties": false
}
},
"error": {
"type": "string",
"maxLength": 80
},
"http_status": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"retry_after": {
"type": "string",
"maxLength": 80
}
},
"required": [
"status",
"docs_url"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Community
Evidence