Skip to main content
Glama

Send Transactional Email (preview, then confirm)

send_transactional_email
Destructive

Send a transactional email via MailerCloud Email API. Supports HTML, AMP HTML, attachments, CC/BCC. Use version 1.0 for HTML only, 2.0 for AMP content. Two steps: call first WITHOUT confirm (or confirm: false) to get a preview (recipient count, from, subject) — nothing is sent. Show the preview to the user and get an explicit yes, then call again with confirm: true to send. dry_run: true returns the preview without sending even when confirm is true.

Input Schema

NameRequiredDescriptionDefault
ccNoCC recipients
toYesTo recipients (array of name and email)
bccNoBCC recipients
fromYesSender email address
htmlNoHTML content
textNoPlain text content
confirmNoMust be true to actually send. Leave false first to get a preview of recipients, sender and subject
dry_runNoValidate and show the send preview without sending, even when confirm is true
subjectYesEmail subject
versionNoAPI version - 1.0 for HTML or 2.0 for AMP
amp_htmlNoAMP HTML content
reply_toNoReply-to addresses
from_nameNoSender display name
attachmentsNoAttachments (array of name and url)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already flag destructiveHint, openWorldHint, non-idempotent and non-readOnly, but the description adds the crucial non-obvious behavior: a preview phase that sends nothing, and that dry_run wins even when confirm is true. It does not cover error behavior, whether preview accounts for suppressions, or that a sent email is unrecoverable.

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-loaded with purpose, then capabilities, then the two-step protocol in imperative form — easy to scan and act on. The version sentence partially duplicates the schema, but overall there is little 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?

For a 14-parameter destructive tool with no output schema, the description covers the highest-risk gap: how to avoid an unintended send, including what the preview returns. Remaining gaps (error handling, suppression/preview fidelity, unrecoverability of a confirmed send) are modest for its complexity.

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 description coverage is 100%, so the baseline is 3. The description reinforces the version 1.0/2.0 and confirm/dry_run interplay, but these meanings are already in the schema property descriptions, so it adds little new semantic detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Send a transactional email via MailerCloud Email API') and enumerates the content types supported. It never names the closely related siblings send_personalized_email or send_test_email, so an agent must infer the boundary itself.

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 an explicit operating procedure: call without confirm first, show the preview, obtain an explicit yes, then re-call with confirm: true, plus the dry_run override. What's missing is routing guidance against sibling send tools (personalized vs test vs campaign sends).

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.