Edgar — SEC Company Financials for AI Agents
SEC financials for AI agents: statements for 8,000+ public companies. 5 tools, free, no key.
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": {
"edgar": {
"url": "https://edgar.morningbrief.link/mcp"
}
}
}Remote endpoints
https://edgar.morningbrief.link/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢search_companies(query, sic, sic_prefix, limit)
Searches the SEC EDGAR company directory by ticker or company name fragment and/or industry (SIC) and returns each match's CIK (the SEC's permanent company ID), primary ticker, name, exchange, industry (SIC code and description), and facts_rows (number of standardized financial fact rows loaded — >0 means financials are available). Use to find a company's identifiers before calling get_company or the financial tools; use get_company instead when you already hold a ticker or CIK and want one company's full profile. Read-only lookup of the stored directory; no API key. The directory covers all EDGAR filers and is refreshed from the SEC's ticker files; an exact ticker match ranks first, name matching is case-insensitive, a query over 40 characters is rejected, and industry-filtered lists sort covered companies first. Provide `query`, `sic`, and/or `sic_prefix` — at least one is required; `sic` is an exact industry match of 1-4 digits (e.g. '3674' semiconductors) and `sic_prefix` a 2-digit division match (e.g. '36' electronics).
Input Schema
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Ticker symbol or company name fragment, e.g. 'NVDA' or 'nvidia' (max 40 characters)"
},
"sic": {
"type": "string",
"description": "Exact SIC industry code, 1-4 digits, e.g. '3674' (semiconductors)"
},
"sic_prefix": {
"type": "string",
"description": "SIC division prefix, 1-2 digits, e.g. '36' (electronics)"
},
"limit": {
"type": "number",
"description": "Max results (default 20, max 1000)",
"default": 20
}
}
}🟢get_company(ticker, cik)
Returns one company's EDGAR profile by ticker or CIK — name, exchange, industry (SIC), fiscal year end, entity type, and state of incorporation — plus whether standardized financials are loaded for it and, if so, how many facts and the latest reported period. Use after search_companies to confirm a company's identity and financials availability; use get_financials instead for the statements themselves. Read-only; no API key. Provide `ticker` or `cik`; if both are given, `cik` takes precedence. Any listed ticker for a company resolves to that company, not just its primary ticker.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Ticker symbol, e.g. 'NVDA' (any ticker the company lists)"
},
"cik": {
"type": "number",
"description": "SEC CIK number, e.g. 1045810 (takes precedence over ticker)"
}
}
}🟢get_financials(ticker, cik, period, limit)
Standardized financial statements for one company from its SEC EDGAR XBRL filings — revenue, net income, EPS, cash flow, and balance-sheet concepts per fiscal period, latest periods first. Use for period-by-period statements; use get_metric_history instead for one concept's long time series, and list_financial_concepts to see which concepts exist. Read-only; no API key. Values are cleaned: when a period was reported more than once the latest filing wins, fiscal periods are verified, and two concepts (total_liabilities, gross_profit) may be derived from reported components and are tagged 'derived:' in their source tag. Every value carries per-value provenance (form, filed date, accession number). Identify the company by ticker or CIK (CIK wins if both are given). Coverage loads progressively — roughly 25 more companies refreshed per day, priority tiers first — so a valid company can legitimately return 'no financials stored yet'.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Ticker symbol, e.g. 'NVDA'"
},
"cik": {
"type": "number",
"description": "SEC CIK number (takes precedence over ticker)"
},
"period": {
"type": "string",
"enum": [
"annual",
"quarterly",
"all"
],
"description": "Annual (10-K) periods, quarterly (10-Q) periods, or all. Default: annual",
"default": "annual"
},
"limit": {
"type": "number",
"description": "Number of periods (default 5, max 20)",
"default": 5
}
}
}🟢get_metric_history(ticker, cik, concept, period, limit)
Time series for one standardized financial concept for one company (e.g. 'revenue', 'net_income', 'eps_diluted', 'total_assets'), from SEC EDGAR XBRL filings with history back to 2015. Use for a single metric's trend; use get_financials instead for full statements per period, and list_financial_concepts for the valid concept slugs. Read-only; no API key. Each point carries the period start/end, fiscal year and period labels, the value and unit, and per-value provenance (form, filed date, accession number); duplicates and restatements are resolved latest-filed-wins, and values computed from reported components are tagged 'derived:'. `period` defaults to all (annual plus quarterly points); `limit` defaults to 40 points, max 200.
Input Schema
{
"type": "object",
"properties": {
"ticker": {
"type": "string",
"description": "Ticker symbol, e.g. 'NVDA'"
},
"cik": {
"type": "number",
"description": "SEC CIK number (takes precedence over ticker)"
},
"concept": {
"type": "string",
"description": "Canonical concept slug (see list_financial_concepts)",
"enum": [
"revenue",
"cost_of_revenue",
"gross_profit",
"research_and_development",
"selling_general_admin",
"operating_income",
"net_income",
"eps_basic",
"eps_diluted",
"operating_cash_flow",
"capital_expenditures",
"net_interest_income",
"noninterest_income",
"insurance_premiums",
"dividends_paid",
"total_assets",
"total_liabilities",
"stockholders_equity",
"cash_and_equivalents",
"long_term_debt",
"short_term_debt",
"shares_outstanding"
]
},
"period": {
"type": "string",
"enum": [
"annual",
"quarterly",
"all"
],
"description": "Annual points, quarterly points, or all. Default: all",
"default": "all"
},
"limit": {
"type": "number",
"description": "Max data points (default 40, max 200)",
"default": 40
}
},
"required": [
"concept"
]
}🟢list_financial_concepts
Lists the 22 standardized financial concepts this API builds from SEC XBRL (revenue, cost of revenue, gross profit, operating and net income, EPS, assets, liabilities, equity, cash flow, capex, dividends, shares, and more), each with its label, unit, kind (duration flow vs instant balance-sheet snapshot), and the ordered source XBRL tags it is built from. Use to discover valid `concept` values before calling get_metric_history. Read-only reference data; no API key. A concept missing for a given company means the company reports none of its source tags — absence is honest, never approximated.
Input Schema
{
"type": "object",
"properties": {}
}Community
Evidence