Skip to main content
Glama

Volanea

volanea_create_template

Idempotent

Create a reusable email template with {{variable}} placeholders. Idempotent by name: an existing template with the same name is updated instead (content changes snapshot a new version, old versions are retained). You have the user's codebase — match their product name, tone, and brand colors rather than writing generic copy. The reply is a summary — id, version, and the detectedVariables a send must supply — not the body you just sent; read the stored HTML back with volanea_get_template if you need it.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYesHTML body. Supports {{variable}} placeholders.
nameYesTemplate name, e.g. 'Welcome email'. Acts as the idempotency key.
typeNoDecides who can receive it, so getting this wrong is a compliance problem rather than a cosmetic one. `transactional` reaches a recipient even when their contact is unsubscribed (password resets, receipts, verification codes). `marketing` is skipped for unsubscribed contacts and must carry an unsubscribe link. Default to `marketing` for anything promotional; use `transactional` only when the message is a direct response to something the user did.
subjectYesSubject line. Supports {{variable}} placeholders.
fromNameNoHuman-readable sender name.
fromEmailYesSender address — must be on a verified domain to deliver in live mode.
previewTextNoInbox preview line (~100 chars visible).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
codeNoMachine-readable failure code to branch on. Present only when success is false.
dataNoPresent when success is true.
errorNoHuman-readable failure reason. Present only when success is false.
successYesFalse when the call failed; read `error` and `code` in that case.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Goes well beyond the idempotentHint annotation by disclosing versioning behavior (content changes snapshot a new version, old versions retained) and the exact shape of the reply (id, version, detectedVariables, not the body). That is precisely the information an agent needs to avoid assuming the response echoes the submitted HTML.

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 sentences, each carrying distinct load: what it creates, idempotency/versioning, copy guidance, and return shape. The idempotency behavior is front-loaded right after the purpose, and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter mutation tool with an output schema, this covers the mutation semantics, the versioning side effect, the placeholder contract, and the return shape. Nothing an agent needs to call it correctly is missing.

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 100% and the schema already explains name-as-idempotency-key, the transactional/marketing compliance split, and the verified-domain requirement for fromEmail. The description restates the idempotency key and placeholder syntax but adds no new per-parameter meaning, so the baseline 3 applies.

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 ('Create a reusable email template') and immediately qualifies the scope with the {{variable}} placeholder support and the create-or-update idempotency semantics. An agent can distinguish it from volanea_get_template and volanea_render_template 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 clear operational context: name is the idempotency key, existing names get updated, and it names volanea_get_template as the follow-up when the stored HTML is needed. It does not explicitly contrast itself with create_campaign_draft or render_template, so the when-not-to-use side is left implicit.

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