Skip to main content
Glama

Generate a branded PDF report

generate_report
Read-only

Produce a branded PDF report for a project: the full project report, or a web audit as a complete report or an issues-only list.

project_id is a ranking id from list_projects. Choose kind: full for the whole project report, audit_full for the complete web audit, or audit_issues for the issues-only list. Returns a one-time download link, or a local file path when run locally. Requires the report feature enabled on the account. (free — cached render)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindNoWhich branded PDF: full = the whole project report; audit_full = complete web audit; audit_issues = the audit issues list only.full
periodNoReport window in days (7, 30 or 90) — used by kind=full
sectionsNoSubset for kind=full; omit for all
project_idYesRanking id from list_projects

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
kindYes
filenameYes
file_pathNo
expires_atNo
size_bytesYes
download_urlNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and openWorldHint=false, so the description only needs to add operational behavior. It does: returns a one-time download link or local file path, requires the report feature, and notes the render is cached and free. These details go beyond the annotations without contradicting them.

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

Conciseness3/5

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

The description is front-loaded and logically organized, but it contains redundancy: the opening sentence already lists the full/audit_full/audit_issues variants and the third sentence restates the same mapping. The trailing parenthetical '(free — cached render)' also feels appended. It is reasonably sized but could be tightened.

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

Completeness4/5

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

Given that an output schema exists and annotations cover the safety profile, the description covers the remaining operational essentials: output delivery, local-mode behavior, feature gating, and cost/caching. Nothing critical for calling the tool correctly appears to be missing.

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 coverage is 100%, so the baseline is 3. The description largely restates what the input schema already says about project_id and kind, and adds little new meaning for period or sections. It does not compensate with additional parameter-level insight beyond the schema.

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 names the specific action ('Produce') and resource ('branded PDF report'), and enumerates the exact report variants: full, audit_full, and audit_issues. This makes it immediately distinguishable from sibling generation tools like generate_schema and generate_content_brief. The purpose is explicit and concrete.

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?

The description gives clear usage context by mapping the three kind values to concrete report types and stating the prerequisite that the report feature must be enabled on the account. It does not explicitly contrast with sibling tools or provide when-not-to-use conditions, but the context is strong enough for an agent to select this tool appropriately.

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

A3.7/5.0
Disambiguation3/5

Most tools are distinct get_* analytics, but several overlap in purpose: get_ai_visibility vs get_share_of_voice are easy to confuse, and get_project_overview/get_content_action_plan/get_audit_summary all offer prioritized fixes. Descriptions help, but an agent could easily misselect for a generic 'what should I fix?' query.

Naming Consistency5/5

All names follow a consistent snake_case verb_noun pattern (add_, get_, generate_, list_, analyze_, research_), and the get_* prefix dominates read operations. Even win_prompt is a verb_noun and fits the style.

Tool Count2/5

27 tools is past the 25+ threshold and creates a heavy selection surface for an agent. While the SEO/AI-visibility domain is broad, many tools return overlapping 'health/fix/visibility' data and the set would benefit from consolidation.

Completeness3/5

Core workflows (projects, keywords, content briefs, audits, backlinks, AI visibility) are covered, but lifecycle gaps exist: keywords and AI prompts can be added but not removed, there is no list-AI-prompts tool, and no project creation/update is exposed. These are workable but notable missing operations.

Resources