Skip to main content
Glama

update_template

Edit Odoo PDF and HTML email templates by replacing the layout or updating in place: add/replace slots, delete slots, and set layout keys such as master refs or translations.

Instructions

Change a template. Either send a whole new layout, or edit in place: upsert_slots adds slots or replaces those with the same id, delete_slots removes top-level slots by id, layout_set sets top-level keys such as master_refs or translations (null removes).

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": "update_template"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNo
layoutNo
mappingNo
layout_setNo
descriptionNo
template_idYes
delete_slotsNo
upsert_slotsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.4.0

TDQS

A3.6/5.0
Behavior3/5

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

No annotations exist, so the description carries full burden. It does disclose non-obvious mutation semantics: upsert_slots replaces entries with the same id, delete_slots only removes top-level slots, and null in layout_set removes a key. It omits everything else that matters for a mutation with no readOnly/destructive hints — permission requirements, whether untouched fields are preserved, and reversibility.

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 overall action, then the mode choice, then per-parameter semantics — a sensible information order. Dense with almost no filler; the only slack is that `template_id`, the sole required parameter, is never mentioned.

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 an 8-parameter mutation with no annotations and no output schema, the description covers the hard part (partial-edit semantics) well. The remaining gaps — the undocumented name/mapping/description fields and the absence of any safety or failure-mode note — are real but secondary.

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 0%, so the description must compensate and it only partly does: it explains layout, upsert_slots, delete_slots, and layout_set thoroughly. It says nothing about `mapping`, `name`, or `description`, which are three of the eight parameters and remain completely undefined anywhere.

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 ("Change a template") and immediately decomposes the two ways to change it (full `layout` replacement vs. in-place edits). It is clearly distinguishable from create_template/delete_template by name, but it never explicitly names or rules out siblings such as duplicate_template or update_part, so it stops short of a 5.

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 real selection guidance between the two mutually exclusive modes: send a whole new `layout` OR edit in place via upsert_slots/delete_slots/layout_set. That resolves the main ambiguity an agent faces. It does not say when to prefer update_template over duplicate_template, or that validate_layout should be run first, so no sibling-level exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.