Skip to main content
Glama

Upload a finished letter (identical content, no mail merge)

create_letter

Upload and normalize a FINISHED, ready-to-mail document to PDF. Choose this when the content is final and IDENTICAL for every recipient — including when you mail the same letter to many people (just quote/pay once per recipient with the same documentId). The exact bytes you give are what gets printed. Use create_template instead only when the content must vary per recipient via {{fields}}. Returns a documentId, the stored page count, byte size, and source format. Free; no payment required.

Provide the document EXACTLY ONE way: content (inline text, for html/markdown/text), contentBase64 (base64-encoded binary, for pdf/docx/image), or url (a publicly reachable URL the server fetches). Supplying none, or more than one, is an error. Maximum upload size is 31457280 bytes (~30 MB); output page size is US Letter.

Any {{...}} text is printed LITERALLY here — it is NOT treated as a merge field. If you want personalized mail merge across recipients, use create_template instead.

Reserved address zone: a recipient address block is printed over the top ~3 inches of page 1, so the server reserves that space for you automatically. For text/html/markdown/docx, page-1 content is pushed below the block (content may therefore flow onto an additional page); for pdf and image inputs, a blank first page is prepended. As a result the returned page count — and the selected-provider cost behind the resulting quote — can be higher than your source document (e.g. a single-page PDF is stored as 2 pages). You do NOT need to leave the top of your document blank yourself. See the postagent://formats resource for per-format details.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNoPublic URL the server will fetch the document from. Provide exactly one source.
formatNoSource format. Inferred from contentType/filename/content when omitted; inline `content` with no format defaults to text.
contentNoInline text content (html, markdown, or text). Provide exactly one source.
filenameNoOptional original filename; used to help infer the source format.
contentBase64NoBase64-encoded binary content (pdf, docx, image). Provide exactly one source.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses numerous behavioral traits beyond annotations, including that {{...}} is printed literally, the reserved address zone and its impact on page count and cost, that pdf/image inputs get a blank first page prepended, and that the server fetches from URL. It also notes that content is printed exactly as provided.

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?

The description is well-structured with clear sections and front-loaded purpose. It is not excessively verbose, though it is detailed; every sentence adds value. Given the complexity, it achieves good conciseness.

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?

Despite no output schema, the description covers return values (documentId, page count, byte size, source format) and all essential aspects: input methods, format handling, address reservation, page count implications, and cost considerations. It is fully complete for the tool's complexity.

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%, but the description adds significant meaning by explaining that exactly one source must be provided (error otherwise), the maximum upload size (30 MB), and the behavior of the reserved address zone for different formats. This exceeds the baseline of 3.

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 clearly states the tool's purpose: uploading and normalizing a finished, ready-to-mail document. It explicitly distinguishes itself from the sibling tool 'create_template' by specifying that content must be identical for all recipients, not variable via mail merge.

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?

The description provides explicit guidance on when to use this tool versus 'create_template', quoting/paying once per recipient, and how to provide the document (exactly one of content, contentBase64, or url). It also mentions free usage and maximum upload size.

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.

TDQS

A4.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes: separate quote tools for campaigns, letters, and postcards; distinct payment paths; and no overlapping fundamental operations. The only slight ambiguity is between prepare_mail_payment and submit_paid_mail_job, but descriptions clarify different flows.

Naming Consistency5/5

All tool names strictly follow a verb_noun pattern in snake_case, e.g., create_letter, get_mail_job_status, pay_mail_with_shared_payment_token. The convention is uniform across all 13 tools, making them predictable and easy to navigate.

Tool Count5/5

13 tools are well-scoped for a mailing service: content creation (3), quoting (3), payment (4), status checking (2), and address verification (1). No unnecessary duplication, and the count is typical for a focused MCP server.

Completeness4/5

The core workflow (create content, get quotes, pay, track) is fully covered. Minor gaps exist: no tools for listing or deleting uploaded documents/templates, and no batch job status endpoint for individual mail jobs. However, these are not critical dead-ends for the primary use case.