Skip to main content
Glama

Schedule report

schedule_report
DestructiveIdempotent

Schedule one saved analysis to be emailed as a digest (CSV attached) to workspace members (a dashboard cannot be scheduled; choose or save one panel as an analysis first) on a daily / weekly / monthly cadence (UTC). One schedule per report — calling again updates it (every field is replaced, so re-pass conditions/recipients to keep them). day_of_week (0=Sun) applies to weekly; day_of_month (1-28) to monthly. Recipients default to you. Returns the schedule. CONDITIONS (email only when it's worth it): pass conditions to hold the digest unless the data warrants sending — an array (≤5) of { target, op, value }. target is "row_count" (the number of rows) or one of the report's aggregation aliases; op is one of gt|gte|lt|lte|eq|neq; value is a number. The digest sends when ANY condition is met, evaluated against that run's result (mode "any"); otherwise it's silently skipped that occurrence. E.g. email a "tasks overdue" report only when there are any: [{ target:"row_count", op:"gt", value:0 }]; or an aggregated report only when a measure alias "overdue_count" clears a threshold: [{ target:"overdue_count", op:"gte", value:5 }]. Omit conditions (or pass none) to always send — today's behavior.

When to use: Deliver one saved analysis on a schedule — 'email me this every Monday'. For a dashboard, choose or save one panel as an analysis first. Recipients are workspace members.

Example: Email the pipeline report to the sales team every Monday at 8am.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
hourNoHour of day to send, 0–23 in UTC (default 8).
enabledNoWhether the schedule is active (default true); pass false to keep the schedule but stop sending.
frequencyYesCadence of the digest: daily, weekly (with day_of_week) or monthly (with day_of_month); every run fires at `hour` UTC.
report_idYesThe saved analysis to schedule, by id (uuid); one schedule per report, so calling again replaces it. Dashboards and segments are refused.
conditionsNoUp to 5 {target, op, value} send conditions — target is "row_count" or an aggregation alias, op is gt|gte|lt|lte|eq|neq, value a number; omit to always send.
recipientsNoWorkspace member user ids (uuids) to email; defaults to just you, and any id that is not a member is refused.
day_of_weekNoWeekly only: day to send, 0=Sunday … 6=Saturday; defaults to Monday when omitted. Ignored for daily and monthly.
day_of_monthNoMonthly only: day to send, 1–28 (so every month has it); defaults to the 1st when omitted. Ignored for daily and weekly.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
scheduleNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses the upsert/full-replacement semantics ('calling again updates it — every field is replaced, so re-pass conditions/recipients'), silent-skip behavior when conditions are unmet, refusal of non-member ids, all times in UTC, and that recipients default to the caller. This is exactly the context needed given destructiveHint=true plus idempotentHint=true.

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?

Purpose is front-loaded and every block earns its place, but the conditions logic is explained at length in prose and then restated in the schema, and the parenthetical asides accumulate. Slightly heavy, still navigable.

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 an 8-parameter scheduling mutation with an output schema present, the description covers cadence/UTC behavior, replacement semantics, recipient restrictions, condition evaluation, and defaults. Return values need not be described since the output schema exists ('Returns the schedule' suffices).

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?

Despite 100% schema coverage, the description adds meaning the schema cannot: ANY-of-N condition semantics ('mode any'), that conditions are evaluated against that run's result, that target may be 'row_count' or a report aggregation alias, that day_of_week is 0=Sun and weekly-only, and worked examples for both condition forms.

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 + resource (schedule one saved analysis for emailed digest) and immediately scopes it against the sibling notion of reports: dashboards cannot be scheduled, segments are refused. One schedule per report and the CSV-attachment behavior let an agent distinguish this from run_report/export_report without opening a schema.

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 'When to use' block gives a clear trigger ('email me this every Monday'), an explicit exclusion (dashboards; choose or save a panel as an analysis first), and a constraint (recipients must be workspace members). It does not name the sibling tools an agent might otherwise reach for (run_report, export_report), so it stops short of full alternative routing.

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