Skip to main content
Glama

Read a report

get_report
Read-onlyIdempotent

Read a competitive-intelligence report as Markdown, returning the full report or a chosen section, competitor, or page so you can focus on the intelligence you need.

Instructions

Read one competitive-intelligence report as Markdown: TL;DR, biggest threat, your blind spots, a section per competitor, and cited battlecards where the report has them.

A figure the report's fabrication check could not match to a source is kept with "(not confirmed in the pages read)" after it, and a name or citation it found to belong to another entity is taken out, exactly as in the report itself. Do not try to fill them in.

Args:

  • report_id (string, required): the report id (or its job id) from list_reports

  • section (string, optional): only this named section, plus the report title, date and depth, and a line naming the report's other sections. A whole report is several thousand to over a hundred thousand characters and a section is typically a sixth of it, so ask for the section your question needs. Sections: tldr, biggest-threat, blind-spots, actions (what your product should do), battlecards, competitors (every competitor's section in full); per competitor, gathered from every competitor's section: pricing, momentum, app-store, strengths, weaknesses, key-findings, creators, ads, tech-stack. A report has only the sections it has data for. A name that is not one of this report's sections is an error that lists the sections it does have; retry with one of them. Case, spaces and underscores are ignored ("Key findings" = key-findings).

  • competitor (string, optional): only the sections whose heading names this competitor (its section and its battlecard), plus the report title and date. Case-insensitive. With section, only that competitor's part of the section (e.g. section "pricing" + competitor "Notion").

  • page (number, optional): 1-based page. A report over 25,000 characters is split into pages at section boundaries; every page starts with "Page N of M", the characters that remain, the exact call for the next page, and the sections on later pages. A report that fits is returned whole, unchanged.

Without section, returns the whole report exactly as before. Returns Markdown. 404 if the report is not in your account or is not available.

Use when: "summarise my latest report" (no section, or tldr), "what do competitors charge?" (section "pricing"), "what did the report say about ?" (use competitor).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "report_id": "<report_id>"
    },
    "name": "get_report"
  }
}

Input Schema

NameRequiredDescriptionDefault
pageNo1-based page of a long Markdown document; every page is under 25,000 characters
sectionNoReturn only this named section of the report: tldr, biggest-threat, blind-spots, competitors, battlecards, actions, pricing, momentum, app-store, strengths, weaknesses, key-findings, creators, ads, tech-stack
report_idYesReport id (or its job id) from list_reports
competitorNoReturn only the sections whose heading names this competitor

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.2

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, open-world, so the bar is low, yet the description adds a lot: the exact fabrication-check annotation format "(not confirmed in the pages read)", that names/citations belonging to other entities are stripped, the 404 condition, and the 25,000-character pagination boundary with "Page N of M" and next-page instructions.

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 return shape and organized into Args/Use when, with every clause carrying operational weight. It loses a point for re-listing the full section taxonomy that the input schema already enumerates, plus a slightly self-indulgent sizing aside ("a section is typically a sixth of it").

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?

There is no output schema, but the description fully compensates: it describes the Markdown return, section composition, pagination markers, and the 404 failure mode. An agent has everything needed to choose parameters and interpret the response without guessing.

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

Parameters5/5

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

Schema coverage is 100%, so baseline would be 3, but the description goes well beyond it: it documents the section/competitor composition ("section 'pricing' + competitor 'Notion'"), the case/space/underscore normalization rule, that `competitor` also pulls that competitor's battlecard, and that page only applies above 25,000 characters.

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 ("Read one competitive-intelligence report as Markdown") and immediately enumerates the internal structure (TL;DR, biggest threat, blind spots, per-competitor sections, battlecards). That structure is what distinguishes it from siblings like get_battlecard or get_competitive_landscape, which return slices of the same material.

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?

Ends with an explicit "Use when" block mapping three concrete user phrasings to parameter choices (no section for a summary, section "pricing" for pricing questions, competitor for entity questions). It also states an exclusion — "Do not try to fill them in" about unconfirmed figures — and defines recovery behavior when a section name is invalid.

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