Skip to main content
Glama

ticker-scout

10-K and 10-Q narrative

get_narrative
Read-onlyIdempotent

Qualitative synthesis of a company's latest annual and quarterly reports, condensed from the filings themselves rather than from news: business description, risk factors with changes since the prior filing flagged, annual MD&A, the current quarter, legal proceedings and subsequent events. Called without section it returns an INDEX: every section with its size, first sentence and subsection headings, because the full document is large. Then pass section as a heading or subsection heading from the index, or as a topic (business, risk factors, md&a, current quarter, subsequent events, legal), which finds the matching sections whatever this company calls them ('legal' also pulls legal items from the 8-K digest), or 'all' for everything. Pass record for the narrative as of an earlier record. To find a keyword anywhere, use search_text.

Input Schema

NameRequiredDescriptionDefault
recordNoAn earlier published record, by tag ('FY27Q1') or by the period its filing reports ('Q1 FY2027'). Omit for the latest. list_periods lists every record.
tickerYesTicker symbol, case-insensitive. Examples: NVDA, brk-b, BRK.B.
sectionNoA heading or subsection heading (case-insensitive; a unique prefix is enough), a topic (business, risk factors, md&a, current quarter, subsequent events, legal), or 'all'. Omit for the index.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / section / description
      Previous value: -"Section name, matched case-insensitively on a prefix, for example 'risk'. Use 'all' for the complete document. Omit for the section index."New value: +"A heading or subsection heading (case-insensitive; a unique prefix is enough), a topic (business, risk factors, md&a, current quarter, subsequent events, legal), or 'all'. Omit for the index."
  2. Changed2 schema fields changed
    • addedInput schema / properties / record
      Added value: +{
      +  "description": "An earlier published record, by tag ('FY27Q1') or by the period its filing reports ('Q1 FY2027'). Omit for the latest. list_periods lists every record.",
      +  "type": "string"
      +}
    • changedInput schema / properties / ticker / description
      Previous value: -"Ticker symbol, case-insensitive. Examples: NVDA, brk-b."New value: +"Ticker symbol, case-insensitive. Examples: NVDA, brk-b, BRK.B."
  3. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the safety profile is covered. The description adds real behavioral context beyond them: the default no-`section` call returns an index because 'the full document is large,' topic matching is fuzzy ('whatever this company calls them'), and 'legal' also pulls legal items from the 8-K digest. It does not discuss size limits or truncation of the 'all' response, which is the one remaining gap.

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?

It is a single dense paragraph rather than a scannable list, which slightly buries the index-first instruction, but every clause carries information: source disambiguation, index behavior, section/topic values, record, and the search_text hand-off. No sentence is filler.

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 carries the return-shape burden and does so: the index is described as 'every section with its size, first sentence and subsection headings.' Combined with the retrieval workflow and historical-record support, an agent has enough to invoke and interpret correctly.

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 coverage is already 100%, so the baseline is 3; the description goes further by explaining the semantics the schema only gestures at: prefix matching on headings, topic aliases mapping onto company-specific heading names, and 'all' as a catch-all. The `record` parameter's interaction with list_periods is also clarified, though no format examples are added beyond what the schema shows.

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?

Opens with a specific verb and resource: 'Qualitative synthesis of a company's latest annual and quarterly reports,' enumerates the covered sections, and explicitly states the source is the filings 'rather than from news.' It also names the adjacent sibling ('To find a keyword anywhere, use search_text'), so an agent can distinguish it from search_text and get_filings without opening a schema.

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 an explicit two-step workflow (call without `section` to get the index, then pass a heading/topic/'all'), documents the `record` escape hatch for historical narratives, and routes keyword lookup to search_text. When-to-use and when-to-use-something-else are both spelled out.

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.