Skip to main content
Glama

Vorlage speichern

template_save

Vorlage speichern, Vorlagenversion speichern, Vorlagenentwurf anlegen, Template sichern: Verfasst eine Vorlage als ENTWURF. Setze documentKind auf letter oder form. Briefkopf und Marke bleiben eine externe Schicht und werden erst bei Vorschau oder Versand aufgelöst und bleiben außerhalb der Vorlage. designId bleibt nur als veralteter Hinweis zur Ableitung der Dokumentart kompatibel; explizites documentKind gewinnt. Ein Formular darf eigenständig gespeichert werden. coverTemplateId kann eine Anschreibenversion für ein Paket pinnen. Lässt du templateId weg, entsteht eine neue Vorlage; mit templateId eine neue Entwurfsversion. Der Entwurf ist erst nach der Freigabe nutzbar; die Antwort enthält den Prüflink. Falls das Tool fehlt, suche exakt nach dem technischen Namen template_save. Der Vorlageninhalt ist entweder contentTemplate (Fließtext) ODER blocksTemplate (strukturiert: Tabellen, Überschriften, Summenzeilen), genau eines von beiden. Merge-Felder sind typisiert (text, date, number, currency, rows); ein Tabellenblock bindet eine rows-Liste über rowsFrom. Kopiere am schnellsten eine Standardvorlage mit template_get und passe sie an. Vor dem Speichern: mit letter_preview rendern und Seite für Seite vergleichen. Speichere erst, wenn Seitenzahl und wesentliche Geometrie beim Nachbau zum Original passen. Eigenständige Formulare zuerst mit einem design im documentMode "form" prüfen. EN: Save template, save template version, create template draft: writes a template as a DRAFT. Set documentKind to letter or form. Letterhead and brand remain an external layer resolved at preview or send time and stay outside the template. designId remains only as a deprecated hint for inferring document kind; explicit documentKind wins. A form may be saved independently. coverTemplateId may pin a cover-template version for a package. Leave templateId out and a new template is created; with templateId a new draft version is created. The draft is usable only after release; the response includes the review link. If the tool is missing, search for the exact technical name template_save. The template body is either contentTemplate (plain text) OR blocksTemplate (structured: tables, headings, totals lines), exactly one of the two. Merge fields are typed (text, date, number, currency, rows); a table block binds a rows list via rowsFrom. The fastest start is copying a standard template with template_get and modifying it. Before saving: render with letter_preview and compare page by page. Save once page count and major geometry match the original. Preview standalone forms with a design using documentMode "form" first.

Input Schema

NameRequiredDescriptionDefault
nameYesName der Vorlage. EN: Name of the template.
designIdNoVeralteter Autor-Hinweis zur Ableitung von documentKind. Das Design wird nicht in der Vorlage gespeichert. Explizites documentKind gewinnt. EN: Deprecated authoring hint used to infer documentKind. The design is not stored on the template. Explicit documentKind wins.
kategorieNoFachliche Kategorie, z.B. kuendigung (der Wert ist ein Schlüssel und bleibt so geschrieben). EN: Subject category, e.g. kuendigung (termination).
reasoningNo
styleDefsNoBenannte Stile der Blockvorlage. Nur zusammen mit blocksTemplate. EN: Named styles of the block template. Only together with blocksTemplate. Benannte Stile für das ganze Dokument (max. 24). Blöcke referenzieren sie über style. EN: named document styles (max 24); blocks reference them via style. Vollstaendige Stilfelder: frankki://blocks-guide. EN: complete style fields: frankki://blocks-guide.
templateIdNoBestehende Vorlage: es entsteht eine NEUE Entwurfsversion. Ohne Angabe wird eine neue Vorlage angelegt. EN: Existing template: a NEW draft version is created. If omitted, a new template is created.
clearDesignNoVeralteter kompatibler Autor-Hinweis. Es gibt keine Design-Bindung an neuen Vorlagenversionen. EN: Deprecated compatibility authoring hint. New template versions have no design binding.
mergeFieldsNoDie Platzhalter der Vorlage. EN: The placeholders of the template.
documentKindNoUnveränderliche Dokumentart der Vorlagenversion. letter ist direkt adressierbar, form benötigt ein Anschreiben. EN: Immutable document kind of the template version. letter is directly addressable; form requires a cover letter.
blocksTemplateNoStrukturierte Inhaltsvorlage (Tabellen, Überschriften, Summenzeilen). Textfelder dürfen {{platzhalter}} enthalten; ein Tabellenblock kann mit rowsFrom: "<schlüssel>" ein Merge-Feld vom Typ rows binden und bekommt dessen Zeilen beim Anwenden. Entweder contentTemplate ODER blocksTemplate. Volle Referenz: MCP-Ressource frankki://blocks-guide. EN: Structured content template (tables, headings, totals lines). Text fields may contain {{placeholders}}; a table block can bind a rows merge field via rowsFrom: "<key>" and receives its rows on apply. Either contentTemplate OR blocksTemplate. Full reference: MCP resource frankki://blocks-guide. Strukturierter Briefinhalt als typisierte Blöcke (Alternative zu content, nie beides). Limits: 200 Blöcke, 100 Zeilen/Tabelle, 20 Spalten, 2000 Zeichen/Zelle, 10 Bilder, 262144 Bytes. EN: structured letter content as typed blocks (alternative to content, never both). Jeder Block braucht type; erlaubte Typen: paragraph, heading, keyValue, checkboxRow, fillLine, table, totals, columns, box, image, spacer, pageBreak. Die vollstaendige Feldreferenz liegt in der MCP-Ressource frankki://blocks-guide. EN: every block needs type; read frankki://blocks-guide for the complete field reference.
contentTemplateNoInhaltsvorlage als Fließtext, darf {{platzhalter}} enthalten. Entweder contentTemplate ODER blocksTemplate. EN: Content template as plain text, may contain {{placeholders}}. Either contentTemplate OR blocksTemplate.
coverTemplateIdNoDeckvorlage für ein Formular ohne Empfängerblock. Beim Speichern wird exakt ihre aktuelle freigegebene Version gepinnt. EN: Cover template for a form without a recipient block. Saving pins its exact current released version.
subjectTemplateYesBetreffvorlage, darf {{platzhalter}} enthalten. EN: Subject template, may contain {{placeholders}}.
clearCoverTemplateNoEntfernt die geerbte Deckvorlagen-Bindung. Ohne coverTemplateId und ohne clearCoverTemplate erbt eine neue Version die bisherige Bindung. EN: Removes the inherited cover-template pin. Without coverTemplateId and clearCoverTemplate, a new version inherits the previous pin.
approvalModeRecommendedNoEmpfohlener Freigabemodus für Briefe aus dieser Vorlage. EN: Recommended approval mode for letters from this template.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • changedInput schema / properties / approvalModeRecommended / description
      Previous value: -"Empfohlener Freigabemodus fuer Briefe aus dieser Vorlage. EN: Recommended approval mode for letters from this template."New value: +"Empfohlener Freigabemodus für Briefe aus dieser Vorlage. EN: Recommended approval mode for letters from this template."
    • changedInput schema / properties / blocksTemplate / description
      Previous value: -"Strukturierte Inhaltsvorlage (Tabellen, Ueberschriften, Summenzeilen). Textfelder duerfen {{platzhalter}} enthalten; ein Tabellenblock kann mit rowsFrom: \"<schluessel>\" ein Merge-Feld vom Typ rows binden und bekommt dessen Zeilen beim Anwenden. Entweder contentTemplate ODER blocksTemplate. Volle Referenz: MCP-Ressource frankki://blocks-guide. EN: Structured content template (tables, headings, totals lines). Text fields may contain {{placeholders}}; a table block can bind a rows merge field via rowsFrom: \"<key>\" and receives its rows on apply. Either contentTemplate OR blocksTemplate. Full reference: MCP resource frankki://blocks-guide. Strukturierter Briefinhalt als typisierte Bloecke (Alternative zu content, nie beides). Limits: 200 Bloecke, 100 Zeilen/Tabelle, 20 Spalten, 2000 Zeichen/Zelle, 10 Bilder, 262144 Bytes. EN: structured letter content as typed blocks (alternative to content, never both). Jeder Block braucht type; erlaubte Typen: paragraph, heading, keyValue, checkboxRow, fillLine, table, totals, columns, box, image, spacer, pageBreak. Die vollstaendige Feldreferenz liegt in der MCP-Ressource frankki://blocks-guide. EN: every block needs type; read frankki://blocks-guide for the complete field reference."New value: +"Strukturierte Inhaltsvorlage (Tabellen, Überschriften, Summenzeilen). Textfelder dürfen {{platzhalter}} enthalten; ein Tabellenblock kann mit rowsFrom: \"<schlüssel>\" ein Merge-Feld vom Typ rows binden und bekommt dessen Zeilen beim Anwenden. Entweder contentTemplate ODER blocksTemplate. Volle Referenz: MCP-Ressource frankki://blocks-guide. EN: Structured content template (tables, headings, totals lines). Text fields may contain {{placeholders}}; a table block can bind a rows merge field via rowsFrom: \"<key>\" and receives its rows on apply. Either contentTemplate OR blocksTemplate. Full reference: MCP resource frankki://blocks-guide. Strukturierter Briefinhalt als typisierte Blöcke (Alternative zu content, nie beides). Limits: 200 Blöcke, 100 Zeilen/Tabelle, 20 Spalten, 2000 Zeichen/Zelle, 10 Bilder, 262144 Bytes. EN: structured letter content as typed blocks (alternative to content, never both). Jeder Block braucht type; erlaubte Typen: paragraph, heading, keyValue, checkboxRow, fillLine, table, totals, columns, box, image, spacer, pageBreak. Die vollstaendige Feldreferenz liegt in der MCP-Ressource frankki://blocks-guide. EN: every block needs type; read frankki://blocks-guide for the complete field reference."
    • changedInput schema / properties / contentTemplate / description
      Previous value: -"Inhaltsvorlage als Fliesstext, darf {{platzhalter}} enthalten. Entweder contentTemplate ODER blocksTemplate. EN: Content template as plain text, may contain {{placeholders}}. Either contentTemplate OR blocksTemplate."New value: +"Inhaltsvorlage als Fließtext, darf {{platzhalter}} enthalten. Entweder contentTemplate ODER blocksTemplate. EN: Content template as plain text, may contain {{placeholders}}. Either contentTemplate OR blocksTemplate."
    • changedInput schema / properties / coverTemplateId / description
      Previous value: -"Deckvorlage fuer ein Formular ohne Empfaengerblock. Beim Speichern wird exakt ihre aktuelle freigegebene Version gepinnt. EN: Cover template for a form without a recipient block. Saving pins its exact current released version."New value: +"Deckvorlage für ein Formular ohne Empfängerblock. Beim Speichern wird exakt ihre aktuelle freigegebene Version gepinnt. EN: Cover template for a form without a recipient block. Saving pins its exact current released version."
    • changedInput schema / properties / kategorie / description
      Previous value: -"Fachliche Kategorie, z.B. kuendigung. EN: Subject category, e.g. kuendigung (termination)."New value: +"Fachliche Kategorie, z.B. kuendigung (der Wert ist ein Schlüssel und bleibt so geschrieben). EN: Subject category, e.g. kuendigung (termination)."
    • changedInput schema / properties / mergeFields / items / properties / key / description
      Previous value: -"Der {{token}}-Schluessel, nur Buchstaben, Ziffern und Unterstrich. EN: The {{token}} key, letters, digits and underscore only."New value: +"Der {{token}}-Schlüssel, nur Buchstaben, Ziffern und Unterstrich. EN: The {{token}} key, letters, digits and underscore only."
    • changedInput schema / properties / mergeFields / items / properties / type / description
      Previous value: -"text (Standard), date (ISO JJJJ-MM-TT), number, currency (ganzzahlige Cent) oder rows (Zeilenliste fuer einen Tabellenblock mit rowsFrom). Der Typ wird beim Anwenden geprueft und sprachrichtig formatiert. EN: text (default), date (ISO YYYY-MM-DD), number, currency (integer cents) or rows (row list for a table block with rowsFrom). The type is validated on apply and formatted per language."New value: +"text (Standard), date (ISO JJJJ-MM-TT), number, currency (ganzzahlige Cent) oder rows (Zeilenliste für einen Tabellenblock mit rowsFrom). Der Typ wird beim Anwenden geprüft und sprachrichtig formatiert. EN: text (default), date (ISO YYYY-MM-DD), number, currency (integer cents) or rows (row list for a table block with rowsFrom). The type is validated on apply and formatted per language."
    • changedInput schema / properties / styleDefs / description
      Previous value: -"Benannte Stile der Blockvorlage. Nur zusammen mit blocksTemplate. EN: Named styles of the block template. Only together with blocksTemplate. Benannte Stile fuer das ganze Dokument (max. 24). Bloecke referenzieren sie ueber style. EN: named document styles (max 24); blocks reference them via style. Vollstaendige Stilfelder: frankki://blocks-guide. EN: complete style fields: frankki://blocks-guide."New value: +"Benannte Stile der Blockvorlage. Nur zusammen mit blocksTemplate. EN: Named styles of the block template. Only together with blocksTemplate. Benannte Stile für das ganze Dokument (max. 24). Blöcke referenzieren sie über style. EN: named document styles (max 24); blocks reference them via style. Vollstaendige Stilfelder: frankki://blocks-guide. EN: complete style fields: frankki://blocks-guide."
  2. First observed

TDQS

A4.7/5.0
Behavior5/5

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

Annotations only declare the generic safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=false). The description adds non-obvious behaviour the agent could not infer: the draft must be released before use, the response carries a review link, letterhead/brand stay external until preview/send, designId is a deprecated hint that documentKind overrides, and content must be exactly one of contentTemplate/blocksTemplate.

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

Conciseness3/5

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

Purpose and constraints are front-loaded, but the text is roughly doubled by full German/English duplication and an opening synonym list ('Vorlage speichern, Vorlagenversion speichern, Vorlagenentwurf anlegen, Template sichern'). Many of the later sentences (merge-field typing, block limits) repeat what the schema properties already state, so a meaningful share of the length does not earn its place.

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?

With 15 parameters, nested objects, two enums and no output schema, this is a high-complexity tool and the description covers the essentials: draft lifecycle, the required contentTemplate/blocksTemplate choice, merge-field typing and rowsFrom binding, version semantics, and a pre-save validation workflow via letter_preview.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 93%, so the baseline is 3, but the description adds real semantics the schema does not enforce: the mutual exclusion of contentTemplate vs blocksTemplate ('genau eines von beiden'), the inheritance rule for coverTemplateId/clearCoverTemplate, and the templateId-absent-vs-present behaviour for creating a new template versus a new draft version. It slightly restates a few schema fields, so not a full 5.

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 — 'Verfasst eine Vorlage als ENTWURF' / 'writes a template as a DRAFT' — and immediately scopes it to the draft state, distinguishing it from siblings like template_release, template_preview and template_apply_with_merge_fields. It also names the technical name template_save explicitly, so an agent can confirm identity 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 Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete when/when-not and alternatives: copy a standard template via template_get first, render with letter_preview and compare page by page before saving, and preview standalone forms with a design in documentMode 'form'. It also states that a draft is only usable after release, effectively routing the agent to template_release.

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.