Skip to main content
Glama
useballast

Ballast - Cold Email

Official

get_campaign_stats

Retrieve daily email metrics for a campaign or all campaigns to plot charts and track sent, replied, opened, bounced, and positive trends over time.

Instructions

Daily time-series email metrics for a campaign or all campaigns. Returns daily time-series counts (day-by-day sent, replied, opened, bounced, positive) for a specific campaign (pass campaignId) or all campaigns combined over the last N days. USE THIS to plot charts or view daily performance trends over time. DO NOT use for high-level workspace summary totals (use get_overview instead) or for multi-dimensional breakdowns by ESP provider, mailbox, or step (use get_campaign_analytics instead).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
daysNo7, 30 or 90 days
campaignIdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.5/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 disclosure burden, and it does well: it names the five returned metrics (sent, replied, opened, bounced, positive), the day-by-day granularity, and the scope (specific campaign vs. all combined over the last N days). It stops short of stating the read-only nature explicitly, pagination/row limits, or auth requirements, which is why it isn't a 5.

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?

Three sentences, front-loaded with the core purpose before the USE/DO NOT routing rules, and each sentence carries information. The opening pair ('Daily time-series email metrics...' followed by 'Returns daily time-series counts...') is mildly redundant but not wasteful enough to hurt usability.

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?

For a 2-parameter read tool with no annotations and no output schema, the description supplies the return structure, the aggregation semantics, and sibling routing — enough to call it correctly. Missing only edge details like default-window behavior confirmation and response envelope shape, which are minor here.

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 coverage is only 50% (campaignId has no schema description), so the description must compensate — and it does, explaining that passing campaignId scopes to one campaign while omitting it aggregates all campaigns, and that days bounds the window. It adds real semantics beyond the schema, though it doesn't restate or clarify the allowed days values (7/30/90) or what happens with a nonexistent campaignId.

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 and resource ('daily time-series email metrics for a campaign or all campaigns') and explicitly distinguishes itself from both get_overview and get_campaign_analytics, including the shape of what it returns. An agent can identify this tool without opening any schema.

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 gives an explicit positive trigger ('USE THIS to plot charts or view daily performance trends over time') plus two named exclusions with the alternative tool for each case (get_overview for summary totals, get_campaign_analytics for multi-dimensional breakdowns). Nothing about tool selection is left to inference.

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