Skip to main content
Glama

generate_report

Create a shareable HTML dot plot report from CSV product analytics to show user activity and aha moments for team or investor review.

Instructions

Write the HTML dot plot report — readable in three seconds, made to share with a team or an investor.

analyze calls this for you. Use it directly when you need to control the marks, the window, or a language that isn't built in.

Marks on other actions:

  • default: the top aha events are picked automatically (behaviour change of 30 points or more, at most two, so the report stays quiet no matter how many event types exist)

  • your own: mark_events={"create_playlist": "P"}, described by mark_labels

  • none at all: mark_events={}

Language: match the conversation. lang="en"|"ko"|"ja" are built in; for any other language translate get_report_strings() and pass it as custom_strings with lang="custom". Never translate the {brace} placeholders.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
langNoen
weeksNo
csv_pathYes
max_usersNo
mark_eventsNo
mark_labelsNo
output_pathNodotplot_report.html
value_eventYes
custom_stringsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.4

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does substantial work: it discloses the automatic mark-selection heuristic (>=30-point behaviour change, capped at two), how to override with mark_events/mark_labels or disable entirely with mark_events={}, and the language/custom_strings workflow including the {brace} placeholder caveat. It stops short of stating that it writes/overwrites a file at output_path or any permission/performance behavior.

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 outcome ('readable in three seconds, made to share'), then a scannable bullet list for mark behavior and a compact language section. It is longer than minimal but nearly every line, including the default-heuristic details, earns its place.

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

Completeness3/5

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

An output schema exists, so return values need no explanation. But for a 9-parameter tool with zero annotations and zero schema descriptions, the description omits meaning for csv_path, value_event, weeks, max_users, and output_path, leaving too many required/behavioral inputs to inference.

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

Parameters3/5

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

Schema description coverage is 0% across 9 parameters, so the description must compensate and only partially does: it explains mark_events, mark_labels, lang, and custom_strings in detail. It says nothing about csv_path, value_event, weeks, max_users, or output_path beyond the vague phrase 'the window', leaving roughly half the parameters undocumented anywhere.

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

Purpose4/5

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

The description opens with a specific verb and artifact: 'Write the HTML dot plot report,' which tells an agent exactly what is produced. It also implicitly separates itself from the 'analyze' sibling. However, it never distinguishes itself from the sibling tool 'dot_plot', whose name/domain overlaps, so an agent can't fully disambiguate those two from this text alone.

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?

It explicitly names the delegating alternative ('analyze calls this for you') and states the condition under which to call this tool directly: when you need to control marks, the window, or a non-built-in language. That is a clear when-to-use-this-vs-alternative routing statement.

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