Skip to main content
Glama

Edit letter template

spur_update_letter_template
Idempotent

Edit one of the user's letter templates and show the updated preview. For text tweaks pass replacements (exact find → replace); to redesign, pass full html. letter_type switches between top_first_page and insert_blank_page. Spur default and gallery templates can't be edited: copy them first with spur_create_letter_template base_template_id.

HTML guidance (see spur://letter-design-guide): one US Letter page (8.5"×11"), full HTML document with inline , "@page { size: 8.5in 11in; margin: 0; }", no scripts. One root 8.5in wide; px/in units only (no vh/vw); no box-shadow, transforms or manual page breaks. top_first_page: leave the first 3.15in blank (an empty ), body ≈ 3–4 short paragraphs. insert_blank_page: no address zone; letterhead up to 1.8in, body up to ~400 words. Images as absolute https URLs. The user's own images (logo, headshot, property photos): spur_list_images gives their URLs; if they want to use an image they have, call spur_upload_image (or spur_save_image for a link) and use the saved URL. Use merge fields such as {{owner_first_name}}, {{property_address}}, {{your_name}}, {{your_phone}}, {{company_name}} (see spur://merge-variables).

Input Schema

NameRequiredDescriptionDefault
htmlNoFull replacement HTML
nameNoNew template name
categoryNoCategory label, e.g. "Seller Outreach"
descriptionNoInternal note about the template; never printed
letter_typeNo"top_first_page": the address prints in the top 3.15in of page 1 (shows through a #10 window envelope), so keep that band empty. "insert_blank_page": Spur adds a separate address page in front, so the letter can use the whole page (one extra page is billed).
template_idYesTemplate id (UUID from a Spur list/search tool)
replacementsNoSmall edits applied in order instead of resending the full content

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only say it is a non-destructive, idempotent mutation; the description adds real behavioral context: previewing after the edit, the immutable default/gallery templates, the exact envelope-window constraint of top_first_page versus the extra billed page for insert_blank_page, and rendering restrictions (no scripts, no vh/vw, no box-shadow/transforms/page breaks).

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 and the replacement-vs-html decision, then grouped into design rules and reference links. It is long and the HTML guidance is dense, but nearly every clause (page size, address-zone height, image URLs, merge fields) prevents a specific failure mode rather than padding.

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 complex mutation with no output schema, the description covers the editing modes, the immutable-template exception, the layout-specific constraints, the image workflow, and the merge-field vocabulary, with pointers to spur://letter-design-guide and spur://merge-variables. 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.

Parameters4/5

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

Schema coverage is 100%, so the schema already documents each field. The description still adds usage-level meaning: replacements are exact find→replace tweaks applied instead of resending full HTML, and letter_type 'switches' layouts rather than merely naming enum values. It does not add much for name, category, or description params.

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 ('Edit one of the user's letter templates') plus an observable effect ('show the updated preview'). It is clearly distinguishable from sibling verbs like spur_get_letter_template, spur_delete_letter_template, and spur_create_letter_template.

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?

Explicitly routes between modes: 'For text tweaks pass replacements' and 'to redesign, pass full html', and states a hard constraint with an alternative ('Spur default and gallery templates can't be edited: copy them first with spur_create_letter_template base_template_id'). Also routes image needs to spur_list_images/spur_upload_image/spur_save_image.

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