Skip to main content
Glama

3LT Letter Mail

Server Details

Give AI assistants hands: send real USPS letters via MCP.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
3LGroupTechnology/3lt-letter-mail
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 3 tools

Disambiguation5/5

Each tool targets a distinct stage of the mail lifecycle: drafting/quoting, requesting send, and checking status. There is no meaningful overlap between them, and the descriptions make the boundaries explicit (draft never mails, request_send creates pending/auto-send, send_status only reads).

Naming Consistency4/5

All names are snake_case and action-first (draft_letter, request_send, send_status), which is easy to parse. Minor deviation: draft_letter is verb_noun while request_send/send_status are verb_verb/verb_noun blends, so the pattern isn't perfectly uniform.

Tool Count4/5

Three tools map cleanly onto the draft→send→status workflow and each earns its place. It is slightly thin (no listing/retrieval or cancellation), but appropriate for a narrowly-scoped letter-mailing service.

Completeness4/5

The core lifecycle (draft with quote, request send with approval, check status/billing) is fully covered with no dead ends. Minor gaps exist: no way to cancel/revoke a pending request, list drafts, or fetch a specific draft by id.

Available Tools

3 tools
draft_letterDraft LetterAInspect

Create a letter DRAFT: verifies the recipient address with PostGrid, screens content, and returns a price quote. This NEVER mails anything.

Pass EITHER html (letter body as an HTML string) OR pdf_path (path to a PDF file on the server). PDF text is extracted for screening; if extraction fails the draft is kept but flagged needs_review.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesrecipient address dict with name, address_line1, address_city, address_state, address_zip (US).
htmlNoletter body as an HTML string (use this OR pdf_path).
colorNoTrue for color printing, False for black & white.
api_keyYesyour 3L-Group Technology API key (lms_...).
pdf_pathNoserver-local path to a PDF to mail instead of html.
quantityNonumber of identical letters (10+ gets the bulk rate).
certifiedNoOPT-IN ONLY — True for USPS Certified Mail with Electronic Receipt (tracked, signature on delivery). Defaults to False, which sends standard First Class mail. Only set True when the customer explicitly asked for certified mail: it costs significantly more (PostGrid's certified rate + the flat $1.00 service fee, roughly $11 per letter). Never default this to True.
descriptionNooptional label for your own records.
from_addressYessender address dict, same shape as `to`.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses PostGrid address verification, content screening, price-quote return, the never-mails guarantee, and the needs_review fallback when PDF text extraction fails. It omits auth/permission requirements and any rate or cost caveats beyond what the schema's certified description covers.

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?

Two short paragraphs, front-loaded with the core behavior and the critical never-mails constraint. No filler, though the PDF extraction sentence is a slight tangent from the main draft-purpose statement.

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?

An output schema exists so return values need not be explained, and the description covers the draft workflow, screening, and failure flagging well. It could be fuller on what the draft object/quote contains or the lifecycle toward request_send, but it is largely complete for a 9-parameter tool.

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 all nine parameters are already documented in the schema, including the html-OR-pdf_path exclusivity. The description restates that mutual exclusivity and adds the PDF-extraction screening consequence, but mostly reinforces schema content rather than adding new parameter meaning.

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+resource ('Create a letter DRAFT') and immediately names the side effects it performs (address verification, content screening, price quote). The emphatic 'This NEVER mails anything' distinguishes it from the send-oriented siblings request_send and send_status without needing to name them.

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?

Clearly explains the html-vs-pdf_path choice and the never-mails scope, which implies this is the pre-send step. It stops short of explicitly naming request_send as the follow-up action, so the routing to alternatives is implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

request_sendRequest SendAInspect

Request that a draft be mailed.

approval-tier keys: creates a PENDING request and returns a one-tap Allow/Deny approval_url for the human. Nothing is mailed until Allow. on_command keys: may auto-send inside guardrails (spend caps, content screening, anomaly detection); anything outside them stays PENDING.

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyYesyour 3L-Group Technology API key (lms_...).
draft_idYesthe draft_id returned by draft_letter.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full behavioral burden and does so well: it discloses the PENDING state, the returned one-tap approval_url, that nothing is mailed until Allow, and that on_command keys may auto-send within guardrails. It leaves out edge behavior such as denials, expiry, or repeated calls on the same draft.

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 core action is front-loaded in one sentence, followed by a compact tier-keyed breakdown. Every clause carries information; only the formatting is slightly unusual for a tool description.

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?

An output schema exists, so the approval_url and status fields need not be re-explained, and the remaining non-obvious behavior (pending vs auto-send) is fully covered. Only failure/retry semantics are absent, which is a minor gap for a two-parameter submission tool.

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% (api_key format lms_..., draft_id origin from draft_letter), so the schema already documents both parameters. The description adds no format, constraint, or example beyond what the schema provides, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: requesting that a draft be mailed, scoped to a draft_id. It implicitly separates itself from send_status (this initiates, that reports), but never names its siblings, so the differentiation must be inferred.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

The description explains what happens under two key tiers, which is behavioral rather than selection guidance. It gives no explicit when-to-use-this-vs-draft_letter/send_status rule or prerequisite ordering, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_statusSend StatusAInspect

Check a send request: status (PENDING/SENT/REJECTED/FAILED), the key's trust tier and tier decision, approval state (+approval_url while pending), and billing state (Stripe charge id when billed).

ParametersJSON Schema
NameRequiredDescriptionDefault
api_keyYesyour 3L-Group Technology API key (lms_...).
request_idYesthe request_id returned by request_send.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses the state machine (PENDING/SENT/REJECTED/FAILED), that tier and tier decision are surfaced, that approval_url appears only while pending, and that a Stripe charge id appears only when billed. It does not mention auth requirements beyond the schema's api_key, rate limits, or read-only/irreversibility guarantees, so it is not 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 sentence, front-loaded with the verb and the primary status facet, with the secondary facets trailing. Every clause earns its place, though the nested parentheticals make it slightly heavy to parse.

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?

An output schema exists, so the enumerated return fields are partly redundant, but they usefully aid tool selection. The remaining gap is the absence of usage guidance for a polling tool and any note on auth or error behavior; for a 2-required-param read tool this is nearly complete.

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 both parameters are already documented, giving a baseline of 3. The description adds modest context by framing api_key as 'the key's trust tier' and confirming request_id is the send request being queried, but no syntax or format detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Check') and resource ('a send request') and enumerates the exact facets returned: status enum, trust tier decision, approval state, and billing state. The purpose is unambiguous, though it never names the siblings (request_send, draft_letter) or explains how it relates to them, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

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

There is no explicit when-to-use statement, but enumerating PENDING/SENT/REJECTED/FAILED plus an approval_url 'while pending' strongly implies the polling-after-request_send workflow. Usage is inferable rather than stated, which fits a 3.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 3 tool updates
    • First observeddraft_letter
    • First observedrequest_send
    • First observedsend_status

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    An open-source MCP server for sending physical mail (letters, postcards, certified mail) directly from AI agents, with per-piece payment and no account signup needed.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables any MCP-compatible AI agent to send physical handwritten postcards via USPS with a single tool call, handling image upload, card creation, robotic handwriting, and mailing.
    2
    52 npm
    2
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.