Skip to main content
Glama

MetricDuck — Financial Analysis

Recent Filings Feed

list_recent_filings
Read-only

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 for alerts and daily portfolio checks.

Returns: a flat list of {ticker, accession, filed_at, form_type, form_subtype}, newest filing date first and largest companies first within a date — so limit=15 during earnings week surfaces the banks and mega-caps that filed, not alphabetically-first micro-caps. form_subtype classifies 8-Ks (values under form_subtypes); null for other forms.

Portfolio filter: tickers (an array); ticker="TSM" is accepted as an alias. Both given = union, cap 50. One call covers the portfolio — no per-ticker list_filings fan-out.

Read a row's filing with get_filing_section(ticker, accession_number=...) — omit section_id for its section outline. For every filing of ONE company, use list_filings.

Not point-in-time: the live feed as of today (one company as of a past date: list_filings with vantage_date).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax 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.
sinceYesFiling date floor (inclusive): the SEC filing date, not the date MetricDuck extracted it. YYYY-MM-DD. Required. A small share of filings (mostly 8-K and 6-K exhibits) are extracted days or weeks after their filing date, so a poll from your last poll's date misses them: look back up to a month and dedupe by accession.
tickerNoSingle-ticker alias of `tickers`. Both may be given (union, cap 50).
tickersNoOptional portfolio filter. Up to 50 tickers. Omit to scan the full universe.
form_typesNoFilter by SEC form type. Examples: ['8-K'], ['8-K', '10-Q'], ['10-K']. Omit to include all form types.
form_subtypesNoFilter 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' = misc. Implies 8-K filings only. Omit to include all subtypes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/openWorldHint/destructiveHint=false, so safety is covered; the description adds substantial non-schema behavior: the exact sort tiebreak (company size within a date), why limit=15 during earnings week behaves as it does, the polling look-back/dedupe caveat for late-extracted filings, and the stated return field set. That is well beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the triggering scenario, then Returns / Portfolio filter / related-tool routing, so an agent can stop reading early. It is dense but nearly every sentence carries routing or behavior information; the bold headers add structure at the cost of some length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by naming the returned fields and ordering, defining form_subtype values, and covering the mutation-adjacent pitfalls (late extraction, dedupe). Nothing an agent needs to call this correctly appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3; the description nevertheless adds meaning the schema only partially carries — the ticker/tickers union-with-cap-50 semantics, the alias equivalence, and the funnel from the 'since' floor plus the look-back dedupe advice. It stops short of documenting limit behavior beyond what the schema already says.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('list recent SEC filings') and anchors it with concrete user phrasings ('any new 10-Ks this week?', 'who reported earnings today?'), which removes ambiguity about scope. It explicitly distinguishes itself from list_filings (one company, all history) and get_filing_section (read a row's content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use triggers via sample utterances, names the alternatives for adjacent needs (list_filings for a single company, get_filing_section to drill into a filing), and states the portfolio-union semantics and 50-ticker cap so an agent knows one call covers the whole portfolio. Also flags the non-point-in-time constraint and the past-date alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources