Skip to main content
Glama

Send Templated Message

senderkit_send
Destructive

Send a transactional email, SMS, push, or web-push notification to a recipient using a saved template. This connection is bound to one mode: in test mode messages are recorded but not delivered; in live mode they are really sent. The result's mode field reports which one was used, and senderkit_context reports it before sending. Test mode can send draft (unpublished) templates for trial runs; live mode only sends templates with a published version.

Input Schema

NameRequiredDescriptionDefault
ccNoEmail-only. Cc recipients as a JSON array of addresses (max 50).
toYesRecipient address for the template's channel: an email address, an E.164 phone number (sms), a device token (push), or the JSON-encoded browser PushSubscription (web-push).
bccNoEmail-only. Bcc recipients as a JSON array of addresses (max 50).
fromNoEmail-only. Optional From address override (bare address — put the display name in fromName). Defaults to the connection's From address.
varsNoTemplate variables as a JSON object.
channelNoForce a channel (defaults to the template's primary).
contextYesExplain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): "Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization."
replyToNoEmail-only. Reply-To address.
versionNoPin a specific template version.
fromNameNoEmail-only. Optional From display name, rendered as `Name <address>`. Max 128 chars; no control characters or angle brackets.
metadataNoFree-form metadata as a JSON object of scalar values.
templateYesTemplate slug (lowercase), e.g. "welcome".
attachmentsNoEmail-only. JSON array; up to 10 MB total across all attachments.
scheduledAtNoISO 8601 timestamp for scheduled delivery (e.g. 2026-06-01T09:00:00Z). Must be in the FUTURE and at most 30 days ahead — check the current date before computing it. Omit to send immediately.
idempotencyKeyNoIdempotency key. Repeat values return the original send instead of duplicating.

Output Schema

NameRequiredDescriptionDefault
idYesPublic message id (e.g. "msg_…"). Pass it to senderkit_messages_get to track delivery, or to senderkit_cancel_message while it is still pending.
modeYesThe connection's send mode: live messages are really delivered; test messages are recorded but not delivered.
statusYes"scheduled" when scheduledAt was in the future; otherwise "queued".
livemodeYesWhether the message was created in live mode.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare destructiveHint=true and openWorldHint=true but not what that means in practice; the description adds real value by explaining the test-vs-live delivery distinction, that the result's `mode` field reports which was used, and the draft-vs-published template rule. It stops short of covering irreversibility/rate limits or pointing at senderkit_cancel_message for undoing a live send.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences with no filler: purpose first, then mode binding, then mode reporting, then the draft/published constraint. Every sentence carries information an agent needs before invoking.

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 an output schema present the description needn't explain return values, and it covers the non-obvious behavioral rules of a 15-param mutation tool. Minor gaps remain around cancellation, idempotency behavior and side-effect limits, though idempotencyKey and scheduling are at least documented in the schema.

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 schema already documents all 15 parameters including channel, version, scheduledAt and attachments. The description adds no parameter-level syntax or format detail, which is the expected baseline when the schema does the heavy lifting.

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 (send) plus resource (transactional email/SMS/push/web-push notification) and constrains it to 'using a saved template', which implicitly separates it from senderkit_send_raw. An agent can tell what this tool does and how it differs from raw sending without opening the 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 clear operating context: test mode records without delivering, live mode actually sends, and draft templates are only usable in test mode. It does not, however, name alternatives (e.g. senderkit_send_raw for untemplated content) or state exclusions, so routing is implicit rather than spelled out.

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.

Directories

Listed in ChatGPT · SenderKit

Last observed