Skip to main content
Glama

Update Email Template

update_email_template
Idempotent

Update an email template's subject and body. Cannot update a template linked to an active reminder/promotion mailer. Two update modes: - is_custom=false (recommended): provide 'content' as valid MJML markup. MJML is validated and compiled to HTML server-side; source is stored in content_template. - is_custom=true: provide 'body' as raw rendered HTML. Use this when you want full control and don't need MJML's responsive primitives. Template variables — use ||Variable Name|| in subject or body; they are substituted per-recipient at send time. Event: ||Start Date||, ||Start Time||, ||End Date||, ||End Time||, ||Venue Name||, ||Venue Link||, ||Venue Address||, ||App Name||, ||iOS App Link||, ||Android App Link||, ||Web App Link||, ||Web Site Link|| Recipient (user): ||First Name||, ||Last Name||, ||Full Name||, ||User Name||, ||Email||, ||Phone||, ||Designation||, ||Company||, ||User QR Code|| (renders as QR image URL), ||External Id||, ||Attendee Id||, ||Ticket Id||, ||Ticket Type||, ||Ticket Type Description||, ||Certificate Link|| Also supported: any additional user field defined on the event — reference it by the field's display name, e.g. ||Company Size||.

Input Schema

NameRequiredDescriptionDefault
bodyNoFull rendered HTML body (required when is_custom=true).
contentNoMJML markup (required when is_custom=false).
subjectYesEmail subject template. May include ||*Variable*|| placeholders.
event_idYesEvent UUID returned by search_events.
is_customNofalse means provide MJML in 'content'; true means provide raw HTML in 'body'.
template_idYesEmail template UUID.

Output Schema

NameRequiredDescriptionDefault
hintYes
messageYes
templateYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations only say non-read-only, idempotent, non-destructive; the description adds real behavior: updates fail for templates tied to active mailers, MJML is validated and compiled server-side, source is persisted in content_template, and variables are substituted per-recipient at send time. It does not cover validation-failure behavior or permission requirements.

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, the hard constraint, and the two modes before the reference material. The long enumerated variable list is useful but bulky and reads more like reference documentation than selection guidance, slightly diluting the opening.

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?

An output schema exists so return values need no explanation, and the description covers modes, constraints, and templating syntax. Remaining gaps are minor: no note on whether omitted fields are left unchanged, and no hint about which sibling provides template_id.

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?

Schema coverage is 100%, so the baseline is 3, but the description goes well beyond it: it explains the is_custom/content/body coupling, what the content field stores, and the exact ||*Variable*|| placeholder syntax with a full list of event, recipient, and custom user-field variables supported in subject and body.

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 ('Update an email template's subject and body') and immediately bounds scope with the constraint about active reminder/promotion mailers. No sibling tool (read_email_templates, update_mailer, create_mailer) could be confused with it, and the two update modes are spelled out.

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?

Explicitly recommends is_custom=false and explains exactly when to choose is_custom=true ('when you want full control and don't need MJML's responsive primitives'). It also gives a clear precondition (cannot update a template linked to an active mailer). It stops short of routing to related tools such as read_email_templates for obtaining template_id.

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