Skip to main content
Glama

Schedule or send campaign

schedule_campaign
Destructive

Schedule (or send immediately) an existing draft campaign to an audience/segment/topic. Before calling, confirm with the user: show them the recipients (or the recipient count), the sender and the subject, and wait for a clear yes. Send16 can refuse a send. 429 SEND_RAMP_LIMIT: new and free workspaces have hourly and daily sending limits while they build reputation; the error details give the window, the limit and how many remain. Tell the user how many can go now and that the rest can go once the window resets (or after upgrading), and do not split the send or retry in a loop to get around it. 403 SENDING_PAUSED: sending from the workspace is paused while the Send16 team reviews it. Nothing was sent. Tell the user to check the workspace owner's email or contact support, and do not retry. 422 MESSAGE_NEEDS_REVIEW: the content looked like it might be impersonating a government agency, bank, toll operator or delivery company, so it was held and not sent. Tell the user it is held for review and they can contact support if it is legitimate. Do not reword it and try again; repeated flags pause the workspace.

Input Schema

NameRequiredDescriptionDefault
apiKeyNoSend16 API key (overrides SEND16_API_KEY env var)
topicIdNo
segmentIdNo
audienceIdNo
campaignIdYesCampaign ID
scheduleAtNoISO-8601 future datetime; omit to send immediately

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

Far exceeds the annotations, which only carry destructive/readOnly/idempotent flags. The description discloses that the server can refuse a send, and details three concrete failure modes (429 SEND_RAMP_LIMIT with hourly/daily windows, 403 SENDING_PAUSED, 422 MESSAGE_NEEDS_REVIEW), what state the workspace ends up in, and the correct operator response. That is exactly the behavioral context an agent cannot get from structured fields.

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-loads the action and the confirmation rule in the first two sentences, then adds a structured error taxonomy. The error text is dense but every clause is actionable (what happened, whether anything was sent, what to tell the user, whether to retry), so little of it is waste.

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?

With no output schema and no annotations covering failure behavior, the description does the heavy lifting on error semantics. It still omits the success shape (e.g. whether the response confirms a scheduled time or a sent count) and any statement about reversibility, which would matter for a destructive, non-idempotent tool.

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 50%: apiKey, campaignId and scheduleAt are documented in the schema, while topicId, segmentId and audienceId are bare. The description mentions 'audience/segment/topic' but only restates the parameter names and never explains precedence or mutual exclusivity among the three targeting options, which is the key ambiguity here.

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 with scope: schedule or send immediately an *existing draft* campaign, targeted at an audience/segment/topic. This cleanly separates it from create_campaign (makes the campaign) and send_broadcast (not campaign-bound), so an agent can identify it 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a strong, explicit precondition: confirm recipients/sender/subject with the user and wait for a clear yes before calling. It also tells the agent not to retry, not to split the send, and not to reword flagged content. It stops short of naming sibling alternatives (preview_campaign_recipients, send_campaign_test, send_broadcast) as routing options, so usage is clear but not fully comparative.

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.