Skip to main content
Glama

Premier Letters

preview_letter

Render a preview of a handwritten letter (as an SVG image) and get its price, before creating an order. Does not save anything.

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": {
      "message": "<message>"
    },
    "name": "preview_letter"
  }
}

Input Schema

NameRequiredDescriptionDefault
messageYesThe letter text to render.
recipientNoOptional recipient info, used only to personalize {{merge fields}} in the message before rendering.
product_typeNoProduct slug: letter, card, postcard, etc. Defaults to "letter".
handwriting_styleNoFont UUID from list_handwriting_styles. Defaults to the house font.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose a key behavioral trait: the tool does not save anything, which is critical for an agent to understand it is non-mutating. It also discloses the output format (SVG image) and that it returns a price. However, it does not disclose other behavioral details such as whether the preview is generated synchronously, whether it requires authentication, or what happens if the message contains invalid merge fields. The description adds some value but not rich behavioral context.

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?

The description is a single sentence that front-loads the primary action ('Render a preview'), specifies the output format, and includes the critical non-mutating behavior ('Does not save anything'). Every word earns its place, and there is no redundancy or filler.

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 preview tool with no output schema, the description covers the essential context: what it does, what it returns (SVG and price), and that it is non-mutating. The sibling tools (create_order, get_pricing) provide additional context for the agent to understand the workflow. However, it could be more complete by mentioning that the preview is for a handwritten letter specifically and that it is a prerequisite for creating an order, though this is largely implied. The lack of an output schema means the description could have explained the return structure in more detail, but the core context is sufficient.

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 100%, so the schema already documents all four parameters. The description adds a small amount of context by mentioning 'merge fields' in the recipient parameter and 'house font' for handwriting_style, but these are already partially covered in the schema descriptions. The description does not add significant meaning beyond the schema, so the baseline of 3 is appropriate.

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?

The description states a specific verb ('Render'), a specific resource ('a preview of a handwritten letter'), the output format ('as an SVG image'), and the business purpose ('get its price, before creating an order'). It also explicitly distinguishes itself from create_order by noting it 'Does not save anything.' This is a clear, specific, and well-differentiated purpose.

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?

The description clearly implies when to use this tool: before creating an order, to preview and get pricing. It also explicitly states what it does not do ('Does not save anything'), which helps an agent avoid using it when persistence is needed. However, it does not explicitly name alternatives like create_order or get_pricing, nor does it state when NOT to use it (e.g., when you need to actually place the order). The context is clear but exclusions are not fully explicit.

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