Skip to main content
Glama

Build a client report

build_report_link
Read-onlyIdempotent

Link to the analytics report laid out as a document — cover, executive summary and one section per page — ready to save as PDF from the browser. Pick the sections you want; sections with no data are skipped, so asking for more than exists never leaves a blank page. Sentiment only appears on Inferno, where brand listening lives. The same filters as the Analytics screen apply and are printed on the cover: one account and one network (platform). Saved competition analyses (the Competition tab history) can be appended with researchIds, up to 5; they are never included unless listed. The top-conversations table is never in the report: it names end customers.

Input Schema

NameRequiredDescriptionDefault
daysNoWindow: 7, 30, 90, 180 or 365 (default 30).
metricsNoLines drawn on the trend chart, as on the Analytics screen. Omit for the default (the first two metrics with data). Metrics with no data in the period are left out.
languageNoLanguage of the PDF, independent of the app's (e.g. ru for an agency's Russian client). Omit for the workspace's saved one, else the app's. The workspace's report brand (an agency's logo, name and colour, set in the report dialog) is applied automatically.
platformNoOne network only (e.g. instagram, tiktok, facebook). Must have a connected account in this workspace, otherwise the report ignores it. Omit for all networks.
sectionsNoSection ids, in any order. Available: kpis, trend, engagementEvolution, followers, audience, demographics, cadence, platforms, channels, gbp, stories, linkedin, topPosts, inboxKpis, inboxVolume, inboxResponse, inboxAuto, inboxAutomation, inboxDelivery, inboxAccounts, inboxPlatforms, inboxWhen, sentiment. Omit for the full report; pass an empty list for a report with only the competition analyses.
accountIdNoOne account only. Omit for all of them.
researchIdsNoIds of saved competition analyses to append, one section each (max 5). The research tools (research_account, research_niche, analyze_reel) return it as researchId; otherwise ask the human which analyses they want. One without results yet is shown with a note.
workspaceIdNoWorkspace to work on (an id from list_workspaces). Not needed when this connection is tied to one workspace, or when you pass an account: the account's workspace is used.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / language
      Added value: +{
      +  "description": "Language of the PDF, independent of the app's (e.g. ru for an agency's Russian client). Omit for the workspace's saved one, else the app's. The workspace's report brand (an agency's logo, name and colour, set in the report dialog) is applied automatically.",
      +  "enum": [
      +    "en",
      +    "es",
      +    "pt",
      +    "fr",
      +    "de",
      +    "it",
      +    "ru",
      +    "nl",
      +    "pl"
      +  ],
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, non-destructive), and the description layers substantial extra behavior on top: empty sections are dropped so the report never shows blank pages, sentiment only appears on Inferno, filters are printed on the cover, researchIds are capped at 5 and never auto-included, and the top-conversations table is deliberately excluded for privacy. This is rich disclosure well beyond the annotations.

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?

The output form is front-loaded in the first sentence and every following sentence carries a real constraint (skipped sections, Inferno-only sentiment, researchIds cap, excluded table). It is dense and slightly long, but 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 fully carries the burden: it describes the artifact produced (document link with cover and sections, saveable as PDF), the inclusion/exclusion rules, and the filter constraints. Nothing an agent needs to invoke it correctly is missing.

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 description coverage is 100%, so the baseline is 3; the description still adds cross-parameter meaning, notably that sentiment is only valid on Inferno, that researchIds are limited to 5 and excluded unless listed, and that the report uses one account and one network. It reinforces rather than merely repeats 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?

States a specific verb and resource — it returns a link to an analytics report rendered as a document with cover, executive summary and per-page sections, PDF-ready. This clearly distinguishes it from data-returning siblings like get_analytics or get_engagement_trend, which return numbers rather than a formatted report artifact.

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?

Gives strong context: pick sections, sections with no data are skipped, filters match the Analytics screen, competition analyses are appended only when explicitly listed, and sentiment is gated to Inferno. It stops short of naming an alternative sibling (e.g. 'use get_analytics if you only need raw figures'), so it is clear context without explicit exclusions.

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.

Resources