Skip to main content
Glama

nevent_update_template

Destructive

Update an existing email template: change the name, MJML/HTML content, or tags. Call nevent_get_template first to inspect the current version before modifying. At least one of name, content, or tags must be provided. Note: updating a template does NOT retroactively change campaigns already sent with it. If the template changed since you read it (another editor, the image processor or an AI edit), nev-api answers 409 template_edit_conflict and nothing is written: re-read it with nevent_get_template, re-apply your change on the current content and call this tool again (it never retries by itself).

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "template_id": "<template_id>"
    },
    "name": "nevent_update_template"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoNew human-readable name for the template. Omit to leave unchanged.
tagsNoReplacement list of tags. The full tag list is replaced when provided. Omit to leave existing tags unchanged.
formatNoNew template format: "html" or "mjml". Omit to leave unchanged.
html_bodyNoNew raw HTML content for the template. Omit to leave unchanged.
mjml_bodyNoNew MJML source code for the template. Omit to leave unchanged.
template_idYesIdentifier of the template to update. Use nevent_list_templates to get valid template IDs.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the destructiveHint=true annotation by disclosing the non-obvious side-effect boundary: updating does NOT retroactively change already-sent campaigns. It also documents optimistic concurrency (409 template_edit_conflict), that nothing is written on conflict, that the server never auto-retries, and that concurrent actors include the image processor and AI edits.

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 the core action before prerequisites and the conflict scenario, and there is no filler. The 409 paragraph is dense but every clause (re-read, re-apply, no auto-retry) changes agent behavior, so it earns its length.

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 destructive mutation with no output schema, this covers the critical unknowns: preconditions, concurrency failure mode, and blast radius on sent campaigns. The residual gap is the undocumented `format` parameter and its interaction with html_body/mjml_body, plus no statement of what a successful call returns.

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%, so per-parameter meaning (including the tags full-replacement semantics and omit-to-leave-unchanged) is already documented, setting the baseline at 3. The description adds one genuine constraint not in the schema — at least one mutable field is required — but it never mentions the `format` parameter at all.

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 ("Update an existing email template") and enumerates the mutable fields (name, MJML/HTML content, tags), so the operation is unambiguous. It implicitly separates itself from read-side siblings (nevent_get_template, nevent_list_templates) but never addresses nevent_rename_template, which overlaps on the name-change path.

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 read-before-write workflow ("Call nevent_get_template first"), a hard precondition ("At least one of name, content, or tags must be provided"), and a precise recovery procedure for the 409 conflict. The only missing routing is when to prefer nevent_rename_template over this tool for a pure rename.

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.