Skip to main content
Glama

get_report_markdown

Get one scan's full report as AI-ready markdown: the findings ranked by severity, why each matters, and how to fix it. Pass a scanId from list_recent_scans.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
scanIdYesThe scan id (UUID) to fetch.

TDQS

A4.5/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It describes the output format (markdown) and content (ranked findings, why each matters, how to fix it), which is useful. It does not mention side effects, but this is a read-only reporting tool with no obvious destructive behavior.

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

Conciseness5/5

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

Two sentences, no fluff. The first sentence immediately conveys the tool's purpose and output maturity; the second sentence gives a key prerequisite. Perfectly front-loaded and efficiently structured.

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?

For a single-parameter tool with no output schema and no annotations, the description sufficiently explains the tool's behavior, input source, and output content. It is complete enough for an agent to select and invoke it 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?

The schema already fully describes scanId as 'The scan id (UUID) to fetch' (100% coverage), so baseline is 3. The description adds value by sourcing the scanId from list_recent_scans, which clarifies where to obtain this value and reinforces tool flow.

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?

The description states a specific verb ('Get') and resource ('one scan's full report as AI-ready markdown'), and explicitly differentiates from siblings by mentioning the scanId comes from list_recent_scans. It distinguishes itself clearly from other tools.

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

Usage Guidelines4/5

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

It provides clear context for when to use the tool ('Get one scan's full report') and instructs to pass a scanId from list_recent_scans, which implicitly guides the user to use list_recent_scans first. No explicit exclusions or alternatives, but the usage context is clear.

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.

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct role: canary_scan initiates a new scan, get_report_markdown retrieves a specific report, and list_recent_scans lists past scans. No overlap or ambiguity exists between them.

Naming Consistency4/5

Two tools follow the verb_noun pattern (get_report_markdown, list_recent_scans), but canary_scan uses a noun_noun structure that doesn't explicitly indicate the action. The snake_case style is consistent, so the deviation is minor.

Tool Count5/5

With only 3 tools, the server is tightly scoped to the core scan workflow: create, retrieve, and list. Every tool is necessary and sufficient for the service's purpose.

Completeness5/5

The tools cover the full lifecycle of a scan: initiate, fetch the report via scanId, and list historical scans. The workflow around asynchronous scan completion is fully supported with polling via get_report_markdown.