metricduck avatar

MetricDuck — Financial Analysis

com.metricduck/financial-analysis

Connects Claude to SEC filing data for 5,000+ public companies through 21 tools accessible via streamable HTTP. You get financials, company screening, and peer comparisons without parsing EDGAR yourself. Setup takes under a minute: drop the URL into your MCP config, authenticate with Google or GitHub, and start querying. Free tier gives you 500 credits daily, no card required. Useful when you need structured financial data in your agent workflows, whether you're building investment research tools, running comparative analysis, or just want to ask Claude about a company's balance sheet without leaving your editor.

tools
23
transport
HTTP
last updated
Oct 20, 2026

Install

From registry metadata
$ npx add-mcp https://mcp.metricduck.com/mcp --name financial-analysis

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http financial-analysis https://mcp.metricduck.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 23 tools

Verified live against the running server on Nov 6, 2026.

browse_companyUse this when the user asks what MetricDuck has on a company or wants to start researching one: "what filings do you have for X?", "what's notable about X?", "where do I start on X?". One call returns the company's identity (ticker, name, CIK), its filings with extracted text...2 params

Use this when the user asks what MetricDuck has on a company or wants to start researching one: "what filings do you have for X?", "what's notable about X?", "where do I start on X?". One call returns the company's identity (ticker, name, CIK), its filings with extracted text...

Parameters* required
include_delistedboolean
Include delisted companies among FUZZY candidates (ticker-prefix / name matches). Default false. A delisted company always resolves by its exact ticker, former ticker, or CIK regardless of this fla...default: false
query*string
Company name, ticker, or 10-digit zero-padded CIK. Accepts free-text fuzzy match like 'US Steel' or 'AAPL'. For delisted companies, prefer the CIK.
search_companiesUse this when you have a company name or an ambiguous ticker and need the exact ticker (or CIK) before calling other tools. Fuzzy name/ticker match: handles partial names ("micro" -> MSFT), typos, and ticker variations. Returns ticker, full name, CIK, SIC, filer type (domestic...2 params

Use this when you have a company name or an ambiguous ticker and need the exact ticker (or CIK) before calling other tools. Fuzzy name/ticker match: handles partial names ("micro" -> MSFT), typos, and ticker variations. Returns ticker, full name, CIK, SIC, filer type (domestic...

Parameters* required
limitinteger
Maximum results (default 5, max 20)default: 5
query*string
Company name or ticker (supports partial matches and typos). 2-5 uppercase letters are read as a ticker: pass an all-caps NAME that is not a ticker ("AMCOR") in normal casing ("Amcor"). A miss retu...
get_company_overviewUse this when the user asks for a quick read on one company now: the latest price, valuation, margins, cash flow, balance sheet and segment mix in one call; get_financials gives the multi-period statements, and get_metric_history one metric over time. Includes: current price,...2 params

Use this when the user asks for a quick read on one company now: the latest price, valuation, margins, cash flow, balance sheet and segment mix in one call; get_financials gives the multi-period statements, and get_metric_history one metric over time. Includes: current price,...

Parameters* required
depthstring
Response shape preset. 'snapshot' = headline facts only (~2K chars: key signals, flags, latest filing pointers) — best for multi-ticker sequencing or quick checks. 'core' (default) = standard overv...one of snapshot · core · fulldefault: core
ticker*string
Company ticker symbol (e.g., 'AAPL', 'MSFT'). Must be exact — search_companies resolves a name.
get_stock_priceUse this when the user asks for a share price on a date or a return between two dates: daily end-of-day close, adj_close and volume for US-listed stocks, from a market-data feed, not SEC filings; get_company_overview shows only the latest price; get_metric_history has period-e...4 params

Use this when the user asks for a share price on a date or a return between two dates: daily end-of-day close, adj_close and volume for US-listed stocks, from a market-data feed, not SEC filings; get_company_overview shows only the latest price; get_metric_history has period-e...

Parameters* required
end_datestring
Window end (YYYY-MM-DD). The LAST returned row on/before this date is the price ON OR BEFORE it. Omit start_date to fetch just the price on/before this date.
limitinteger
Max rows (newest first if the window exceeds it). Default 30. With start_date alone, the short forward window is returned whole. For a point-to-point return over a long span, make TWO narrow-window...default: 30
start_datestring
Window start (YYYY-MM-DD). Markets trade only on business days — if this date is a weekend/holiday the FIRST returned row is the next OPEN day (the price ON OR AFTER this date). Omit end_date to fe...
ticker*string
Company ticker symbol (e.g., 'AAPL'). US exchange-listed (NYSE/Nasdaq/AMEX), 1–5 letters.
get_financialsUse this when the user asks for a company's income statement, balance sheet or cash flow over several quarters or years: all three statements in one call, up to 10 years, each period cited to its filing; get_metric_history follows one metric, and get_company_overview is the la...5 params

Use this when the user asks for a company's income statement, balance sheet or cash flow over several quarters or years: all three statements in one call, up to 10 years, each period cited to its filing; get_metric_history follows one metric, and get_company_overview is the la...

Parameters* required
periodstring
Time period granularityone of quarterly · annualdefault: quarterly
statementsarray
Which statements to include (default: all three)
ticker*string
Company ticker symbol (e.g., 'AAPL'). Must be exact.
vantage_datestring
As-of vantage (YYYY-MM-DD): restrict to filings PUBLISHED on or before this date, and cite the filing that was current then. Omit for the latest. IMPORTANT — this bounds which FILINGS are visible a...
yearsinteger
Years of history (default 2, max 10)default: 2
compare_companiesUse this when the user asks how a company compares with its peers or named rivals: a side-by-side table of ~70 metrics (latest TTM, FY or Q), its rank on ROIC, operating margin and revenue growth, and whether it leads or trails on them; screen_companies finds companies by crit...5 params

Use this when the user asks how a company compares with its peers or named rivals: a side-by-side table of ~70 metrics (latest TTM, FY or Q), its rank on ROIC, operating margin and revenue growth, and whether it leads or trails on them; screen_companies finds companies by crit...

Parameters* required
custom_peersstring
Optional comma-separated peer tickers (e.g., 'MSFT,GOOG,AMZN'). Auto-selected if omitted.
metricsstring
Optional comma-separated metric_ids to show instead of the default curated table (e.g. 'dividend_payout_ratio,dividend_yield,ev_ebitda,roa,interest_coverage'). Drawn from the ~70 curated fundamenta...
peer_modestring
Peer selection method: 'sector' (same sector + similar market cap, default) or 'tags' (business model similarity — finds companies with overlapping classification tags). Use 'tags' for cross-sector...one of sector · tagsdefault: sector
period_typestring
'TTM' (default): trailing twelve months. 'FY': each company's latest reported fiscal year. 'Q': each company's latest reported fiscal quarter. Each company is at ITS OWN latest period (fiscal years...one of TTM · FY · Qdefault: TTM
ticker*string
Primary company ticker symbol to compare (e.g., 'AAPL'). Must be exact.
screen_companiesScreen US companies by financial metrics. Find stocks matching quantitative criteria. Metric IDs, period types (incl. growth: period_type="ttm.yoy") and sector codes are listed on the `filters` / `sectors` parameters. LATEST-snapshot values; full history via get_metric_history...6 params

Screen US companies by financial metrics. Find stocks matching quantitative criteria. Metric IDs, period types (incl. growth: period_type="ttm.yoy") and sector codes are listed on the `filters` / `sectors` parameters. LATEST-snapshot values; full history via get_metric_history...

Parameters* required
excluded_tagsarray
Classification tags results must NOT have (e.g., ['china_supply_chain_heavy', 'regulated_industry']).
filters*array
Metric filters
limitinteger
Max results (default 20, max 50). Responses cap at ~20K chars: a lower limit or stricter filters keep them whole.default: 20
required_tagsarray
Classification tags all results must have (e.g., ['ai_ml_infrastructure', 'subscription_recurring']). Tags: cloud_infrastructure, saas_enterprise, saas_smb, marketplace_platform, semiconductor_desi...
sectorsarray
Sector codes: TECH, FIN, HEALTH, CONS_STAPLES, CONS_DISC, IND, ENERGY, UTIL, RE, MAT, COMM.
sort_bystring
Metric ID to sort by (default: 'market_cap')
list_filingsUse this when the user asks which filings a company has made — its 10-K annual reports, 10-Q quarterly reports, 8-K current reports (earnings releases, events, call transcripts), proxy statements (DEF 14A), or 20-F / 40-F / 6-K for foreign issuers — or needs one specific past...9 params

Use this when the user asks which filings a company has made — its 10-K annual reports, 10-Q quarterly reports, 8-K current reports (earnings releases, events, call transcripts), proxy statements (DEF 14A), or 20-F / 40-F / 6-K for foreign issuers — or needs one specific past...

Parameters* required
cikstring
10-digit SEC CIK as alternative to ticker. Use for delisted/acquired companies (e.g., Z=Zillow ticker may not resolve; pass cik='0001617640' instead). Either ticker or cik required.
fiscal_periodstring
Pick a specific fiscal period. FY = annual (10-K / 20-F / 40-F); Q1/Q2/Q3 = quarterly (10-Q). The 4th quarter is reported in the annual 10-K, so Q4 is treated as FY. Combine with fiscal_year to pin...one of Q1 · Q2 · Q3 · Q4 · FY
fiscal_yearinteger
Pick a specific fiscal year (e.g., 2020). Resolved via the XBRL period index — correct for non-calendar fiscal years (a 10-K filed Feb 2024 is FY2023). Alone, lists all of that fiscal year's filing...
form_subtypestring
Filter 8-K filings by sub-type (derived from section inventory): earnings releases; event = M&A / exec changes / debt; transcript = earnings calls; other = misc. Implicitly narrows to form_type='8-...one of 8-K-earnings · 8-K-event · 8-K-transcript · 8-K-other
form_typestring
Filter by form type: 10-K annual, 10-Q quarterly, 8-K current reports, DEF 14A proxy; 20-F/40-F annual and 6-K interim for foreign private issuers. Other forms (424B2, FWP, 13F-HR, 4): search_sec_f...one of 10-K · 10-Q · 8-K · DEF 14A · 20-F · 40-F
include_delistedboolean
Opt in to historical data for a delisted company. Default false returns a structured 'delisted' error (HTTP 410) naming the delisting date. Querying by cik bypasses this gate. Applies to 10-K/10-Q/...default: false
tickerstring
Company ticker symbol (e.g., 'AAPL'). Must be exact. Either ticker or cik required.
vantage_datestring
As-of vantage (YYYY-MM-DD): only list filings filed ON OR BEFORE this date (point-in-time). Omit to list the most recent filings. For vantages older than the `years` window, pass a larger `years`.
yearsinteger
Years of filing history (default 2, max 7). Ignored when fiscal_year is set.default: 2
get_filing_sectionUse this when the user asks what a 10-K, 10-Q or 8-K says — risk factors, MD&A, the business description, an earnings release and its guidance / outlook, an 8-K event, a proxy (DEF 14A) — and for earnings call transcript Q&A or prepared remarks, where MetricDuck has the transc...17 params

Use this when the user asks what a 10-K, 10-Q or 8-K says — risk factors, MD&A, the business description, an earnings release and its guidance / outlook, an 8-K event, a proxy (DEF 14A) — and for earnings call transcript Q&A or prepared remarks, where MetricDuck has the transc...

Parameters* required
accession_numberstring
Filing accession number from list_filings. Latest filing used if omitted.
char_offsetinteger
Within-chunk character offset (default 0). A chunk exceeding max_chars serves a char-window and emits a `char_offset` cursor — pass it back with the same `offset` to read deeper. Ignored on normal...default: 0
cikstring
10-digit SEC CIK as an alternative to ticker — use for delisted/acquired companies (e.g. Activision cik='0000718877') whose ticker no longer resolves.
companion_accessionsarray
Explicit companion accessions (from a `screen_filing_signals` row's `value.companion_accessions`). With `include_companions=true`, skips the discovery hop — halves the round-trips if you already sc...
fiscal_periodstring
Fiscal period: 'Q1'/'Q2'/'Q3' for a quarter's 10-Q, or 'FY' for the annual 10-K (the default when omitted). Resolved via the XBRL DEI period index (correct for non-calendar fiscal years). The fourt...one of Q1 · Q2 · Q3 · Q4 · FY
fiscal_yearinteger
Fiscal year to look up (e.g., 2023). Resolves to that fiscal year's filing via the XBRL period index — correct for non-calendar fiscal years (e.g. a 10-K filed Feb 2024 covers FY2023, not FY2024)....
form_typestring
Form type filter (picks the latest of that type when accession_number is omitted). 20-F/40-F/6-K cover foreign private issuers. Other forms (424B2, FWP, 13F-HR, 4): search_sec_filings(query, compan...one of 10-K · 10-Q · 8-K · DEF 14A · 20-F · 40-F
include_companionsboolean
With section_id='item_1_01_material_agreement' on an 8-K anchor: also return text from same-day same-issuer companion 8-Ks (7.01 Reg FD + Ex 99 / 8.01). Default false = anchor only.default: false
include_delistedboolean
Query a delisted/acquired company by its old ticker. Default false returns a structured delisted error pointing at the CIK.
max_charsinteger
Soft response-size cap (default 20,000 chars). The anchor is always served in full; companions are appended in priority order and truncated with a follow-up-call marker. Raise only when you need wi...default: 20000
max_chunksinteger
Chunks per page (default 10, max 10)default: 10
offsetinteger
Chunk offset for pagination (default 0)default: 0
preview_charsinteger
Outline-mode preview length per section (default 120 ≈ 25 words). Ignored when section_id is provided.default: 120
querystring
Keyword to search within section chunks (e.g., 'customer concentration', 'export control'). Returns the chunks that contain every word (order-free); when none does, returns the closest chunks under...
section_idstring
Section ID — omit it (with `accession_number` set) for outline mode. Common IDs by category: **10-K / 10-Q core:** `risk_factors`, `business_description`, `mda_full`, `mda_results_operations`, `md...
tickerstring
Company ticker symbol (e.g., 'AAPL'). Required unless cik is provided.
vantage_datestring
As-of vantage (YYYY-MM-DD): serve the latest filing filed ON OR BEFORE this date — don't assume the newest filing reflects a past vantage. Omit for the latest. Ignored if accession_number is provided.
get_xbrl_factsUse this when the user asks for a number the standard statements don't break out — revenue by segment, geography, product or customer, customer concentration, an industry metric (medical cost ratio, reserve replacement ratio) — or a figure exactly as filed in a 10-K / 10-Q. Se...8 params

Use this when the user asks for a number the standard statements don't break out — revenue by segment, geography, product or customer, customer concentration, an industry metric (medical cost ratio, reserve replacement ratio) — or a figure exactly as filed in a 10-K / 10-Q. Se...

Parameters* required
accession_numberstring
Specific filing accession number (from list_filings — which takes vantage_date, so it gives the filing current as of a past date). If omitted, resolves automatically from form_type + fiscal_year (l...
fiscal_periodstring
Pin the exact period when resolving by fiscal_year (Q1/Q2/Q3/Q4/FY). WITHOUT it, fiscal_year resolves to the LATEST filing of that year — wrong for 'as of <quarter>' questions (use this to get the...one of Q1 · Q2 · Q3 · Q4 · FY
fiscal_yearinteger
Fiscal year to look up (e.g., 2022). If omitted, uses the latest filing. Ignored if accession_number provided.
form_typestring
Filing type when auto-resolving (ignored if accession_number provided). Default: 10-K (annual). FPI filers: 20-F/40-F (annual) or 6-K (interim) — the backend auto-resolves the right form family, so...one of 10-K · 10-Q · 20-F · 40-F · 6-Kdefault: 10-K
limitinteger
Maximum facts to return (default 50, max 200)default: 50
period_historyboolean
Return the searched concept's full as-filed series ACROSS filings (every period: quarter, 6-month YTD, 9-month YTD, FY) instead of one filing's facts. Use this to de-cumulate a cumulative cash-flow...default: false
search*string
Search XBRL concepts by label or name. SPACES INSIDE A TERM ARE 'AND' — every word must appear somewhere in the fact's concept name, label, OR its dimension axis/member labels AS THE FILER WROTE TH...
ticker*string
Company ticker symbol (e.g., 'UNH', 'AAPL'). Must be exact.
get_filing_indexUse this when the user asks what matters in a company's latest 10-K or 10-Q — red flags, accounting quality, debt and liquidity stress, top risks, management tone and guidance, segments and customer concentration. Returns the facts MetricDuck extracted from that filing, each w...3 params

Use this when the user asks what matters in a company's latest 10-K or 10-Q — red flags, accounting quality, debt and liquidity stress, top risks, management tone and guidance, segments and customer concentration. Returns the facts MetricDuck extracted from that filing, each w...

Parameters* required
lensstring
Filter to a specific analytical view. earnings_quality: SBC dilution, accounting flags, material weaknesses, earnings quality assessments. debt_stress: Debt profile, covenant compliance, near-term...one of earnings_quality · debt_stress · risk_trajectory · competitive_position · management_outlook
ticker*string
Company ticker symbol (e.g., 'AAPL'). Must be exact.
vantage_datestring
As-of vantage (YYYY-MM-DD): index the signal map for the latest filing filed ON OR BEFORE this date — for point-in-time / 'as of <date>' analysis (backtest, 'what was known at the announcement'). O...
screen_filing_signalsUse this when the user asks which companies show a red flag or event across filings, earnings releases or earnings calls — "which companies lowered guidance?", "who has covenant risk or debt coming due?", "which tech companies sound cautious?", "who announced M&A or a partners...10 params

Use this when the user asks which companies show a red flag or event across filings, earnings releases or earnings calls — "which companies lowered guidance?", "who has covenant risk or debt coming due?", "which tech companies sound cautious?", "who announced M&A or a partners...

Parameters* required
agreement_type_filterstring
Discriminator for `ir_partnership` signals — e.g. 'm_and_a_announcement' for fresh M&A deals, 'partnership_strategic' for alliances. Ignored for non-IR signals.one of partnership_strategic · partnership_supply · partnership_jv · partnership_amendment · warrant_issuance · m_and_a_announcement
limitinteger
Max results (default: 20)default: 20
match_modestring
Match semantics within a source type. 'all' (default) = every requested signal fires on the SAME row (targeted screening); 'any' = at least one fires (broadcast discovery / digest pools).one of all · anydefault: all
order_bystring
Result ordering. 'recency' (default) = event_date/filing_date DESC; 'market_cap' = market-cap DESC NULLS LAST with a recency tiebreak — use it so high-impact filings aren't pushed past the limit by...one of recency · market_capdefault: recency
recency_daysinteger
Only filings from last N days (default: 90)default: 90
sectorsarray
Sector codes: TECH, HEALTH, FIN, RE, CONS_DISC, CONS_STAPLES, IND, MAT, ENERGY, UTIL, TRANSPORT, COMM, OTHER
signals*array
Signal filters to match. Pass one or more ids EXACTLY as listed below (only these are screenable). Omit `ticker` to screen the whole universe for a signal (the common case); pass `ticker` only to c...
since_datestring
Lower bound (inclusive, YYYY-MM-DD) on event_date / filing_date. With until_date, defines an explicit range that OVERRIDES recency_days — use for historical windows, backfilling past digests, or co...
tickerstring
Filter to a single ticker (e.g. 'NVDA'). Use for per-ticker cross-source signal inventory. Omit to screen across all companies.
until_datestring
Upper bound (inclusive, YYYY-MM-DD). With since_date, overrides recency_days.
search_sec_filingsSearch the full text of SEC filings since 2001 to find companies related to any concept — a product, technology, regulation, event, or company. Returns filing-level results with aggregated statistics (company count, form type breakdown, industry distribution). For 10-K/10-Q fi...9 params

Search the full text of SEC filings since 2001 to find companies related to any concept — a product, technology, regulation, event, or company. Returns filing-level results with aggregated statistics (company count, form type breakdown, industry distribution). For 10-K/10-Q fi...

Parameters* required
companystring
Restrict to one company. Accepts a ticker in capitals (e.g. 'WSC'; resolved to its CIK, so exact), a CIK (exact match — get from search_companies; shorter numeric CIKs are auto-zero-padded to 10 di...
date_fromstring
Start date YYYY-MM-DD. Default: 1 year ago. For a HISTORICAL event (M&A announcement, lawsuit, restructuring, leadership change) set it before the event, with form_type='8-K' and rank_by='relevance...
date_tostring
End date YYYY-MM-DD. Default: today.
form_typestring
SEC form type filter. 10-K (annual report), 10-Q (quarterly), 8-K (material events), DEF 14A (proxy/compensation), S-1 (IPO registration). Comma-separated for multiple: '10-K,10-Q'. Omit to search...
limitinteger
Max results (default 10, max 100). Results deduplicated by filing, sorted most recent first. Section-level enrichment applies to the first 5 results.default: 10
querystring
Search terms. All terms required by default (implicit AND). Syntax: exact phrase "revenue recognition", OR: "goodwill impairment" OR "asset writedown", NOT: restructuring NOT "restructuring charges...
rank_bystring
Sort order for the returned filing list. 'date' (default) = most recent filings first — best for time-sensitive queries (breaches, guidance changes, recent events). 'relevance' = EFTS native releva...one of date · relevancedefault: date
sectionsboolean
Include section-level matches showing WHERE in each filing the term appears. Provides exact section + chunk pointers for immediate drill-in with get_filing_section. Set false for faster filing-leve...default: true
ticker_lookupstring
RETIRED — returns a redirect. Scope with `company`; to find who MENTIONS a company, search its formal name with form_type.
get_earningsUse this when the user asks what a company just reported in its earnings release: the 8-K's headline income statement (revenue, operating income, net income, diluted EPS) and as-released cash flow (OCF, capex, FCF, with growth), typically weeks before the 10-Q/10-K that get_fi...3 params

Use this when the user asks what a company just reported in its earnings release: the 8-K's headline income statement (revenue, operating income, net income, diluted EPS) and as-released cash flow (OCF, capex, FCF, with growth), typically weeks before the 10-Q/10-K that get_fi...

Parameters* required
quartersinteger
Number of most recent quarters to return (1-8, default 4).default: 4
ticker*string
Company ticker symbol (e.g., 'NVDA'). Must be exact.
vantage_datestring
As-of vantage (YYYY-MM-DD): serve releases KNOWN on/before this date — the quarters walk back from the vantage instead of today. For backtests / point-in-time questions. Omit for the latest. Scope:...
get_guidance_vs_actualDid management deliver what they guided? Joins forward guidance from earnings-call transcripts to reported actuals from 10-K/10-Q + 8-K earnings for the same ticker + fiscal period. Returns both sides verbatim with quotes and locators. Use Cases: - "Did NVDA deliver on Q2 FY20...2 params

Did management deliver what they guided? Joins forward guidance from earnings-call transcripts to reported actuals from 10-K/10-Q + 8-K earnings for the same ticker + fiscal period. Returns both sides verbatim with quotes and locators. Use Cases: - "Did NVDA deliver on Q2 FY20...

Parameters* required
fiscal_periodstring
Target fiscal period, e.g. "Q2 FY2026". If omitted, defaults to the most recent period with SEC filing actuals, or to a newer quarter whose 8-K earnings release is out when guidance targets it.
ticker*string
Company ticker symbol (e.g., 'NVDA'). Must be exact.
compare_earnings_callsHow has management's posture shifted across recent earnings calls? Cross-quarter trajectory view of transcript signals for a single ticker. This is MetricDuck's EARNINGS-CALL TRANSCRIPT tool (agents also look for this as get_earnings_call_transcript / get_earnings_transcript /...4 params

How has management's posture shifted across recent earnings calls? Cross-quarter trajectory view of transcript signals for a single ticker. This is MetricDuck's EARNINGS-CALL TRANSCRIPT tool (agents also look for this as get_earnings_call_transcript / get_earnings_transcript /...

Parameters* required
dimensionsarray
Filter to specific trajectory axes; every axis is a per-quarter series. Omit for all. guidance: forward guidance items with delta_vs_prior. hedges: Q&A deflection rate. qa: Q&A Exchange Analyzer ag...
n_quartersinteger
How many most-recent earnings calls to compare (default: 4, min: 2, max: 8).default: 4
ticker*string
Company ticker symbol (e.g., 'NVDA'). Must be exact.
vantage_datestring
As-of vantage (YYYY-MM-DD): compare only calls reported ON OR BEFORE this date, window anchored there rather than today — don't assume the latest calls reflect a past vantage. Omit for the most rec...
get_metric_historyUse this when the user asks for one metric in a given period or over time (gross margin, ROE, P/E and 250+ more): its Q, FY or TTM series; get_financials returns whole statements, and compare_companies sets a company beside its peers. Returns newest-first rows labeled with the...5 params

Use this when the user asks for one metric in a given period or over time (gross margin, ROE, P/E and 250+ more): its Q, FY or TTM series; get_financials returns whole statements, and compare_companies sets a company beside its peers. Returns newest-first rows labeled with the...

Parameters* required
metric_id*string
Exact metric id (lowercase + underscores). Common XBRL financials: gross_margin, oper_margin, net_margin, ebitda_margin, roe, roa, roic, pe_ratio, ev_ebitda, ev_sales, fcf_yield, pb_ratio, current_...
period_typestring
Q = quarterly, FY = fiscal year, TTM = trailing 12 months.one of Q · FY · TTMdefault: Q
ticker*string
Company ticker symbol (e.g., 'AAPL'). Must be exact.
vantage_datestring
As-of vantage (YYYY-MM-DD): restrict the series to periods whose ORIGINAL filing was published on or before this date, and cite the filing that was current then. Omit for the latest. IMPORTANT — th...
windowinteger
Max observations returned, newest first. Default 20, max 40.default: 20
get_metric_lineageThe DERIVATION of one COMPUTED metric — its human formula + immediate inputs (each value + source), one level at a time. The audit / verify affordance for derived figures (margins, ratios, ROIC, FCF, adj-EBITDA): call it ONLY when the query asks **how a metric is computed**, *...6 params

The DERIVATION of one COMPUTED metric — its human formula + immediate inputs (each value + source), one level at a time. The audit / verify affordance for derived figures (margins, ratios, ROIC, FCF, adj-EBITDA): call it ONLY when the query asks **how a metric is computed**, *...

Parameters* required
fiscal_periodstring
Pin the fiscal period. Omit for the latest.one of Q1 · Q2 · Q3 · Q4 · FY
fiscal_yearinteger
Pin the fiscal year (e.g. 2025). Omit for the latest period.
metric*string
Metric id of a COMPUTED metric (e.g. 'net_margin', 'roic', 'fcf', 'ev_ebitda').
period_typestring
Q = quarterly, FY = fiscal year, TTM = trailing 12 months.one of Q · FY · TTMdefault: Q
segmentstring
Reporting segment id. Omit for the consolidated figure.
ticker*string
Company ticker symbol (e.g., 'AAPL'). Must be exact.
get_ir_documentsRetrieve IR earnings-PRESENTATION-DECK text — forward guidance, operational KPIs, and segment outlook that are ONLY in the company's investor-relations slide deck and NOT in the SEC 8-K/10-Q release text or XBRL. Reach for this when get_metric_history / get_xbrl_facts have no...6 params

Retrieve IR earnings-PRESENTATION-DECK text — forward guidance, operational KPIs, and segment outlook that are ONLY in the company's investor-relations slide deck and NOT in the SEC 8-K/10-Q release text or XBRL. Reach for this when get_metric_history / get_xbrl_facts have no...

Parameters* required
cikstring
10-digit SEC CIK as an alternative to ticker (e.g., '0000797468').
fiscal_periodstring
Fiscal period: 'Q3' (with fiscal_year) or combined '2024Q3'. Omit to return the latest deck(s).
fiscal_yearinteger
Fiscal year of the deck (e.g., 2024). Narrows to one period when combined with fiscal_period.
modestring
Response mode. 'full' (default): slide TEXT for the matched deck(s) — combine with query/period to pull a figure. 'list': a cheap one-row-per-item INVENTORY of the company's served IR documents (do...one of full · list
querystring
Keyword filter over slide text — returns ONLY the deck pages whose text matches every word (whole-word AND, case-insensitive). Use this to pull a specific figure (e.g., query="production guidance",...
tickerstring
Company ticker symbol (e.g., 'OXY'). Required unless cik is provided.
get_company_eventsRetrieve a company's IR event CALENDAR — UPCOMING and PAST investor-relations events (earnings calls, annual/shareholder meetings, broker conferences, investor days) with the materials attached to each (deck, webcast, press release, transcript). Reach for this for calendar que...1 params

Retrieve a company's IR event CALENDAR — UPCOMING and PAST investor-relations events (earnings calls, annual/shareholder meetings, broker conferences, investor days) with the materials attached to each (deck, webcast, press release, transcript). Reach for this for calendar que...

Parameters* required
ticker*string
Company ticker symbol (e.g., 'AAPL'). Required.
get_earnings_reportsPer-fiscal-period earnings DOCUMENT INDEX — one row per quarter/year gathering the documents for that reporting period: the 8-K press release, the earnings-call transcript (with prepared-remarks / Q&A deep-links), the 10-Q/10-K, the IR presentation deck(s), and the webcast eve...2 params

Per-fiscal-period earnings DOCUMENT INDEX — one row per quarter/year gathering the documents for that reporting period: the 8-K press release, the earnings-call transcript (with prepared-remarks / Q&A deep-links), the 10-Q/10-K, the IR presentation deck(s), and the webcast eve...

Parameters* required
limitinteger
Most-recent fiscal periods to return (newest first). Default 12.
ticker*string
Company ticker symbol (e.g., 'MRK'). Required.
list_recent_filingsUse this when the user asks what SEC filings came out recently — "any new 10-Ks, 10-Qs or 8-Ks this week?", "which of my portfolio companies filed since Monday?", "who reported earnings today?" — across all companies or a list of tickers, in one call. Also the building block f...6 params

Use this when the user asks what SEC filings came out recently — "any new 10-Ks, 10-Qs or 8-Ks this week?", "which of my portfolio companies filed since Monday?", "who reported earnings today?" — across all companies or a list of tickers, in one call. Also the building block f...

Parameters* required
form_subtypesarray
Filter by 8-K sub-type derived from section inventory. '8-K-earnings' = earnings release; '8-K-transcript' = earnings call transcript; '8-K-event' = M&A / executive changes / debt; '8-K-other' = mi...
form_typesarray
Filter by SEC form type. Examples: ['8-K'], ['8-K', '10-Q'], ['10-K']. Omit to include all form types.
limitinteger
Max results (default 50, max 100). Sorted newest filing date first, then by company size, so a small limit still surfaces the largest issuers that filed.default: 50
sincestring
Filing date floor (inclusive): the SEC filing date, not the date MetricDuck extracted it. YYYY-MM-DD; omit for the last 30 days. A small share of filings (mostly 8-K and 6-K exhibits) are extracted...
tickerstring
Single-ticker alias of `tickers`. Both may be given (union, cap 50).
tickersarray
Optional portfolio filter. Up to 50 tickers. Omit to scan the full universe.
send_feedbackCall ONLY when the user asks to send feedback to MetricDuck. Pass the user's words in message; set source=user when the user wrote it, model when you summarised it. Sends the text to the MetricDuck team.3 params

Call ONLY when the user asks to send feedback to MetricDuck. Pass the user's words in message; set source=user when the user wrote it, model when you summarised it. Sends the text to the MetricDuck team.

Parameters* required
category*string
missing_data (a company, period or figure MetricDuck lacks), wrong_value (a figure looks wrong), missing_capability (something MetricDuck cannot do), or other.one of missing_data · wrong_value · missing_capability · other
message*string
The feedback, in the user's words where possible. At most 1000 characters.
source*string
user = the user wrote the message; model = you summarised what the user said.one of user · model

Sponsors

Details

Transport
HTTP
Registry
MCP registry, active
Tools verified
Nov 6, 2026