Skip to main content
Glama
Arnavdsp

edgar-mcp

by Arnavdsp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SEC_USER_AGENTYesThe SEC requires a declared User-Agent with real contact details. For example: 'Your Name your@email.com'.

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
resolve_companyA

Find a company's SEC CIK number from a ticker symbol or a company name.

Call this first, before any other tool. Every other tool needs a CIK.

A ticker symbol resolves exactly and is never a guess. A company name is always a guess, because SEC filer names are not unique: "Apple" matches Apple Inc. and Apple Hospitality REIT, and "Delta" matches several unrelated filers. Prefer a ticker whenever the user gave you one.

When two names score too closely to separate, this tool refuses to choose and returns resolved: false with a candidates list. Do not pick one of the candidates yourself. Ask the user which company they mean, quoting the names and tickers, and then call this tool again with the ticker.

A company that is not in the result is very likely not an SEC filer at all. Private companies (Stripe, SpaceX, OpenAI), foreign companies with no US listing, and subsidiaries that do not file separately are simply absent from EDGAR. If a name does not resolve, say the company does not appear to file with the SEC. Do not answer from memory.

Args: query: A ticker symbol such as "NVDA", or a company name such as "NVIDIA Corporation".

Returns: On a confident match: cik, ticker, name, confidence and match_type ("ticker_exact", "name_exact" or "name_fuzzy"), plus ranked candidates. On an ambiguous match: resolved false, an error, a suggestion, and the ranked candidates to put to the user.

list_filingsA

List a company's SEC filings, newest first, with amendments flagged.

Use this to find out what a company filed and when, to get an accession number for get_filing_section, or to check whether a company files at all.

Form types have variants that all mean "annual report": 10-K is the normal one, 10-K/A is an amendment to a previously filed one, and 10-KT is a transition report covering a short year after the company changed its fiscal calendar. Asking for form "10-K" returns all of these. A foreign private issuer files 20-F or 40-F instead and will have no 10-K at all — if a company you expect to see has no annual report, ask for form "20-F".

Amendments matter for accuracy. When a 10-K/A exists, the original 10-K is marked superseded: true with superseded_by pointing at the amendment. A figure taken from a superseded filing may have been revised. Prefer the amendment, and say which filing you used.

The response also reports fiscal_year_end as MM-DD. Read it before comparing this company's fiscal year with another company's.

Args: cik: The company's CIK, from resolve_company. Zero padding optional. form: Filter to a form type, e.g. "10-K", "10-Q", "8-K", "20-F". Amendment and transition variants are included automatically. since: Only filings filed on or after this date, as YYYY-MM-DD. until: Only filings filed on or before this date, as YYYY-MM-DD. limit: Maximum filings to return. Default 20.

Returns: company, cik, fiscal_year_end, and a filings list. Each filing carries form, base_form, is_amendment, filing_date, period_of_report, accession_number, superseded flags, and URLs to the document and index.

get_financial_conceptA

Get one reported financial figure as a time series, with its XBRL tag.

This is the tool that answers "what was revenue". Supported concepts:

revenue, net_income, total_assets, total_liabilities, cash, operating_income, rnd_expense, shares_outstanding, gross_profit, cost_of_revenue

Plain-English aliases work too: "sales", "net sales", "profit", "R&D", "COGS", "cash and equivalents", "share count".

There is no XBRL tag called "revenue". Companies tag the same economic figure differently depending on the year and their accounting policy, so this tool walks an ordered fallback chain and tells you which tag actually matched. Always read matched_tag and quote it if it is not the first entry in fallback_chain. A revenue figure that came from SalesRevenueGoodsNet covers goods only, and an answer that does not say so is misleading. tags_tried shows every tag attempted and why each one was skipped.

Restatements are surfaced, not hidden. When a period was reported with a different value in an earlier filing, that period carries restated: true plus prior_value and prior_filed. The current value is the most recently filed one. When you see restated: true, say so in your answer and give both figures. An analyst who quotes a restated number without knowing it was restated will be wrong in a meeting.

Fiscal years are the company's, not the calendar's. NVIDIA's fiscal 2024 ended 28 January 2024. Apple's fiscal 2024 ended 28 September 2024. The fy field is the fiscal year the period belongs to; start and end are the actual dates. Always state the period end date alongside a fiscal-year figure.

Units are never mixed. The response names the single unit used and lists units_available. If the unit is not USD, the company reports in a foreign currency and the figure must not be compared with a dollar figure.

This tool does not compute ratios, margins, growth rates or per-share figures. To answer a margin question, fetch the two underlying concepts for the same period and divide, and say in your answer that you calculated it.

Args: cik: The company's CIK, from resolve_company. concept: A concept name or alias, e.g. "revenue" or "R&D". period: "annual" for fiscal-year figures, "quarterly" for quarters, or "all". Default "annual". fiscal_year: Return only this fiscal year, e.g. 2024. Omit to get a series of recent years. limit: Maximum periods to return, newest first. Default 8.

Returns: matched_tag, tags_tried, fallback_chain, unit, units_available, notes, and a values list. Each value carries value, fy, fp, start, end, filed, form, accession_number, restated, and prior_value/prior_filed when the figure changed between filings.

compare_companiesA

Compare one financial figure across several companies, and check the dates line up.

Give it tickers or company names and one concept. It resolves each company, fetches the same concept for each, and lines the figures up side by side.

Read the warning field before you write your answer. Companies choose their own fiscal calendars. NVIDIA's fiscal 2024 ended in January 2024; Apple's ended in September 2024; Microsoft's ended in June 2024. All three are called "FY2024" and all three cover different months. When the period end dates in a comparison are more than 45 days apart, this tool sets comparable: false and a warning. Repeat that warning to the user in plain language and give the period end dates. A table of three numbers that quietly compares January to September is worse than no table.

The tool also warns when the companies matched different XBRL tags, which means the figures are defined differently even when the dates line up, and when a company reports in a currency other than US dollars.

If any company name is ambiguous, the whole comparison stops rather than guessing which filer was meant. A comparison that silently includes the wrong company looks completely normal.

Args: companies: Tickers or company names, e.g. ["NVDA", "AAPL", "MSFT"]. Two to about eight works; more is slow. concept: A concept name understood by get_financial_concept, such as "revenue" or "net_income". fiscal_year: The fiscal year to compare, e.g. 2024. Omit to use the most recent fiscal year that all the companies report. period: "annual" or "quarterly". Default "annual".

Returns: comparable, warning, fiscal_year, unit, a companies list with one row per filer (value, fy, start, end, filed, form, matched_tag, restated), an unavailable list for companies with no data, and notes.

get_filing_sectionA

Read one named section out of a filing's text, e.g. Risk Factors or MD&A.

Use this for narrative questions — what management said about demand, what risks the company discloses, what a legal proceeding is about. Do not use it to read financial figures: use get_financial_concept, which returns tagged numbers rather than text that used to be a table.

Get the accession number from list_filings first.

Sections this tool can extract, by key: business (Item 1), risk_factors (Item 1A), properties (Item 2), legal_proceedings (Item 3), mda (Item 7), market_risk (Item 7A), financial_statements (Item 8), controls (Item 9A).

Section boundaries are found by matching item headings in the flattened document. This works well for 10-K and 10-Q filings from roughly 2005 onward. It works less well on older filings, on filings that incorporate a section by reference to an exhibit or a proxy statement, and on filings that use unusual heading formats. When the section cannot be found the tool says so and gives you the document URL — pass that URL to the user rather than describing the section from memory.

Long sections are truncated. Check truncated and say so if you summarise.

Args: cik: The company's CIK, from resolve_company. accession_number: The filing's accession number from list_filings, in the form 0001045810-24-000029. section: A section key such as "risk_factors", or an alias such as "Item 1A" or "MD&A". max_chars: Maximum characters of section text to return. Default 20000.

Returns: text, section_label, form, filing_date, period_of_report, document_url, chars_returned, truncated, and extraction_confidence.

search_full_textA

Search the full text of EDGAR filings. COVERS 2001 ONWARD ONLY.

EDGAR's full-text index begins in 2001. Filings from 1993 to 2000 are in EDGAR and can be read with list_filings and get_filing_section, but they are not in this index and this tool cannot see them. Zero results does not mean the phrase was never filed — it may mean the filing predates 2001. Say this to the user whenever their question touches an earlier period. This tool refuses a date range that starts before 2001 rather than quietly searching a shorter window than the user asked for.

Use it to find which companies discussed a topic, or which filing of a company first mentioned something. Wrap a phrase in double quotes for an exact match: "supply chain constraints".

This returns filings that match, not the matching text. Follow up with get_filing_section to read the surrounding language.

Args: query: The phrase to search for. Use double quotes for exact phrases. forms: Restrict to form types, e.g. ["10-K", "10-Q"]. date_from: Earliest filing date as YYYY-MM-DD. Must be 2001 or later. date_to: Latest filing date as YYYY-MM-DD. limit: Maximum results. Default 10.

Returns: results (company, cik, form, filing_date, accession_number, index_url), total_hits, and a coverage statement restating the 2001 limit.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool owns a clearly distinct job: resolving entities, listing filings, pulling a single financial time series, extracting a filing section, searching full text, and comparing companies. The only adjacent pair is compare_companies and get_financial_concept, but the former is explicitly a multi-company alignment tool while the latter is a single-company series, and both descriptions make the boundary clear.

Naming Consistency5/5

All six tool names follow the same verb_noun snake_case pattern: resolve_company, list_filings, get_financial_concept, get_filing_section, search_full_text, compare_companies. There is no mixing of camelCase, inconsistent verb forms, or vague tool names.

Tool Count5/5

Six tools is right-sized for an EDGAR client, with each tool mapping to a distinct step in the workflow: resolve, browse filings, read numbers, read prose, search, and compare. None feels redundant, and the set is neither too thin nor bloated.

Completeness4/5

The set covers the core EDGAR workflow well, including entity resolution, filing discovery, XBRL figures, narrative sections, and cross-filing search. Minor gaps remain—there is no tool for fetching an entire raw filing body, and get_financial_concept supports a fixed concept list rather than arbitrary XBRL tags—but these are workaroundable through document URLs and the available extraction tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues