3LT Letter Mail

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

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
98%
Naming quality
87%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~753Tokens (tool definitions)
~2.2 KBTypical response size
Moderate attention impact (0.59% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "3lt-letter-mail": {
      "url": "https://3lgrouptechnology.com/mcp"
    }
  }
}

Remote endpoints

https://3lgrouptechnology.com/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡draft_letter(api_key, to, from_address, html, pdf_path, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "api_key": {
      "type": "string",
      "description": "your 3L-Group Technology API key (lms_...)."
    },
    "to": {
      "additionalProperties": true,
      "type": "object",
      "description": "recipient address dict with name, address_line1, address_city,\naddress_state, address_zip (US)."
    },
    "from_address": {
      "additionalProperties": true,
      "type": "object",
      "description": "sender address dict, same shape as `to`."
    },
    "html": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "letter body as an HTML string (use this OR pdf_path)."
    },
    "pdf_path": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "server-local path to a PDF to mail instead of html."
    },
    "color": {
      "default": false,
      "type": "boolean",
      "description": "True for color printing, False for black & white."
    },
    "quantity": {
      "default": 1,
      "type": "integer",
      "description": "number of identical letters (10+ gets the bulk rate)."
    },
    "description": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "optional label for your own records."
    },
    "certified": {
      "default": false,
      "type": "boolean",
      "description": "OPT-IN ONLY — True for USPS Certified Mail with Electronic\nReceipt (tracked, signature on delivery). Defaults to False, which\nsends standard First Class mail. Only set True when the customer\nexplicitly asked for certified mail: it costs significantly more\n(PostGrid's certified rate + the flat $1.00 service fee, roughly\n$11 per letter). Never default this to True."
    }
  },
  "required": [
    "api_key",
    "to",
    "from_address"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟡request_send(api_key, draft_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "api_key": {
      "type": "string",
      "description": "your 3L-Group Technology API key (lms_...)."
    },
    "draft_id": {
      "type": "integer",
      "description": "the draft_id returned by draft_letter."
    }
  },
  "required": [
    "api_key",
    "draft_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟡send_status(api_key, request_id)

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).

Input Schema

{
  "type": "object",
  "properties": {
    "api_key": {
      "type": "string",
      "description": "your 3L-Group Technology API key (lms_...)."
    },
    "request_id": {
      "type": "integer",
      "description": "the request_id returned by request_send."
    }
  },
  "required": [
    "api_key",
    "request_id"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools