Skip to main content
Glama

Print and Mail Company

Create letter draft

create_letter

Use this when the user has an uploaded PDF (document_id, or upload_id from create_upload_link) and a recipient address and wants it posted by ordinary or registered mail; registered mail is international registered mail with tracking and signature on delivery; "certified" letters, Einschreiben, lettre recommandée and carta certificada mean this here (not a US certified-mail product). Creates a draft with the exact total in the user's currency. Nothing is sent or charged; call send_letter only after the user confirms. Every envelope carries our company return address, so the user's own address belongs in the document. Needs the user's account.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
colorNobw
duplexNo
envelopeNo
recipientYes
upload_idNoFrom create_upload_link, once the user has uploaded
registeredNoRegistered mail (tracking + signature on delivery)
document_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare non-readOnly, non-destructive, non-idempotent, but the description adds substantive behavior: nothing is sent or charged, a draft is created with a total in the user's currency, the account is required, and every envelope carries the company return address so the user's own address goes in the document. It does not cover draft persistence/expiry or duplicate-call behavior, keeping it short of a 5.

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?

A single dense paragraph that is front-loaded with the use case and disambiguation, and every sentence carries information. It runs long and packs several distinct ideas (synonyms, pricing, return address, auth) into one block, which slightly harms scanability.

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 draft-creating mutation with no output schema and a nested required recipient object, the description covers the workflow, pricing, non-charging, auth need, and the hand-off to send_letter. Minor gaps remain around optional print parameters (envelope, color, duplex) and draft lifetime.

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 low (29%), so the description must compensate. It adds real meaning for document_id/upload_id (source and create_upload_link origin) and for 'registered' (international registered with tracking and signature). However color, duplex, and envelope are never explained, leaving several parameters to the schema alone.

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 ('Creates a draft with the exact total in the user's currency') and immediately distinguishes itself from send_letter. The registered/einschreiben/recommandée synonym mapping makes the intended scope unmistakable.

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 names the trigger condition (uploaded PDF plus recipient address, wanting mail posted) and routes the agent: 'call send_letter only after the user confirms.' This is exactly the when-to-use / when-to-call-the-sibling guidance the dimension asks for.

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.