Koskamo

Edgar MCP

Edgar MCP provides AI agents with access to standardized SEC EDGAR financial data for over 8,000 US public companies. It offers tools to search companies, retrieve company profiles, fetch standardized financial statements (income, balance sheet, cash flow), access metric history, and list financial concepts, all without requiring an API key or authentication.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Edgar MCP logo, by Morning BriefVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Morning Brief
MCP endpoint (Streamable HTTP)
https://edgar.morningbrief.link/mcp
Vendor documentation

What you can do with it

  • Search for US public companies by ticker or name
  • Retrieve standardized financial statements for a specific company
  • Get historical metric data like revenue or net income
  • List available financial concepts for SEC filings

Source and maintenance

Vendor evidenceRegistry 1.1.1

Protocol and capabilities

Server
edgar-api 1.0.0
MCP protocol
2024-11-05
Tools
5 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Tools

5 advertised

search_companies
Advertised by the server during the last successful anonymous check.
Advertised read-only

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).

search_companies input schema
{
  "type": "object",
  "properties": {
    "sic": {
      "type": "string",
      "description": "Exact SIC industry code, 1-4 digits, e.g. '3674' (semiconductors)"
    },
    "limit": {
      "type": "number",
      "default": 20,
      "description": "Max results (default 20, max 1000)"
    },
    "query": {
      "type": "string",
      "description": "Ticker symbol or company name fragment, e.g. 'NVDA' or 'nvidia' (max 40 characters)"
    },
    "sic_prefix": {
      "type": "string",
      "description": "SIC division prefix, 1-2 digits, e.g. '36' (electronics)"
    }
  }
}
search_companies annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_company
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

get_company input schema
{
  "type": "object",
  "properties": {
    "cik": {
      "type": "number",
      "description": "SEC CIK number, e.g. 1045810 (takes precedence over ticker)"
    },
    "ticker": {
      "type": "string",
      "description": "Ticker symbol, e.g. 'NVDA' (any ticker the company lists)"
    }
  }
}
get_company annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_financials
Advertised by the server during the last successful anonymous check.
Advertised read-only

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 values computed from reported components carry derived:true plus a 'derived:' source tag — this includes Q4 figures, derived as fiscal year minus Q1–Q3 because quarterly filings never contain a filed Q4 (a restated FY or quarter changes the derived value, so derived Q4 can differ from a Q4 filed later). Responses also carry a staleness flag when SEC submissions show a newer filing than the stored facts, and predecessor companies when a ticker moved between filers (e.g. a reorg), whose history is included in the periods. 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'.

get_financials input schema
{
  "type": "object",
  "properties": {
    "cik": {
      "type": "number",
      "description": "SEC CIK number (takes precedence over ticker)"
    },
    "limit": {
      "type": "number",
      "default": 5,
      "description": "Number of periods (default 5, max 20)"
    },
    "period": {
      "enum": [
        "annual",
        "quarterly",
        "all"
      ],
      "type": "string",
      "default": "annual",
      "description": "Annual (10-K) periods, quarterly (10-Q) periods, or all. Default: annual"
    },
    "ticker": {
      "type": "string",
      "description": "Ticker symbol, e.g. 'NVDA'"
    }
  }
}
get_financials annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_metric_history
Advertised by the server during the last successful anonymous check.
Advertised read-only

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 carry derived:true plus a 'derived:' tag — including Q4 points derived as fiscal year minus Q1–Q3. The series spans a company's predecessor chain when a ticker moved between filers, and the response carries a staleness flag when SEC submissions show a newer filing than the stored facts. `period` defaults to all (annual plus quarterly points); `limit` defaults to 40 points, max 200.

get_metric_history input schema
{
  "type": "object",
  "required": [
    "concept"
  ],
  "properties": {
    "cik": {
      "type": "number",
      "description": "SEC CIK number (takes precedence over ticker)"
    },
    "limit": {
      "type": "number",
      "default": 40,
      "description": "Max data points (default 40, max 200)"
    },
    "period": {
      "enum": [
        "annual",
        "quarterly",
        "all"
      ],
      "type": "string",
      "default": "all",
      "description": "Annual points, quarterly points, or all. Default: all"
    },
    "ticker": {
      "type": "string",
      "description": "Ticker symbol, e.g. 'NVDA'"
    },
    "concept": {
      "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"
      ],
      "type": "string",
      "description": "Canonical concept slug (see list_financial_concepts)"
    }
  }
}
get_metric_history annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_financial_concepts
Advertised by the server during the last successful anonymous check.
Advertised read-only

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.

list_financial_concepts input schema
{
  "type": "object",
  "properties": {}
}
list_financial_concepts annotations
{
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
178 ms
95th percentile latency
178 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 178 ms · metadata changed · 5 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http edgar-mcp-morningbrief https://edgar.morningbrief.link/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add edgar-mcp-morningbrief --url https://edgar.morningbrief.link/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable edgar-mcp-morningbrief in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "edgar-mcp-morningbrief": {
      "url": "https://edgar.morningbrief.link/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "edgar-mcp-morningbrief": {
      "type": "streamableHttp",
      "url": "https://edgar.morningbrief.link/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start edgar-mcp-morningbrief and inspect its tools.
VS Code configuration
{
  "servers": {
    "edgar-mcp-morningbrief": {
      "type": "http",
      "url": "https://edgar.morningbrief.link/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http edgar-mcp-morningbrief https://edgar.morningbrief.link/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "edgar-mcp-morningbrief": {
      "url": "https://edgar.morningbrief.link/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "edgar-mcp-morningbrief": {
      "serverUrl": "https://edgar.morningbrief.link/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Edgar MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Edgar MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing