# Premier Letters (remote · www.premierletters.com)

Send real pen-written letters, cards and postcards: quote, preview, order and track by mail.

- Trust score: 78/100 (medium)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-11-05

## Components

- remote · `www.premierletters.com`: 78/100 (this document), [markdown](https://verifymcp.io/servers/com-premierletters-mcp/api-mcp.md), [page](https://verifymcp.io/servers/com-premierletters-mcp/api-mcp)

## Channel facts

- Endpoint: `https://www.premierletters.com/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-11-05.

- **Endpoint Security**: 63/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 13 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 67/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 2233 tokens (~171/item across 13 items; 13 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 98/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 95% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the Premier Letters MCP server?

Premier Letters is a hosted endpoint at https://www.premierletters.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http com-premierletters-mcp 'https://www.premierletters.com/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "com-premierletters-mcp": {
      "url": "https://www.premierletters.com/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "com-premierletters-mcp": {
      "type": "http",
      "url": "https://www.premierletters.com/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.com-premierletters-mcp]
url = "https://www.premierletters.com/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-premierletters-mcp": {
      "type": "remote",
      "url": "https://www.premierletters.com/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-premierletters-mcp --url 'https://www.premierletters.com/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-premierletters-mcp:
    url: "https://www.premierletters.com/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "com-premierletters-mcp": {
      "Transport": "http",
      "Url": "https://www.premierletters.com/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add com-premierletters-mcp -t streamable-http -u 'https://www.premierletters.com/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "com-premierletters-mcp": {
      "type": "http",
      "url": "https://www.premierletters.com/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-11-05 (score 78, +1)

- [security] Stability: 0.97 → pass

### 2026-11-04 (score 77, −1)

- [security] Tool “get_pricing” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 2021 → 2233
- [functional] Stability: pass → 0.97
- [functional] New tool “list_extras”
- [cosmetic] “create_order” added an optional parameter “extras”
- [cosmetic] “create_order” reworded the description of “options”
- [cosmetic] “get_pricing” reworded the description of “envelope_output_mode”
- [cosmetic] “get_pricing” reworded the description of “output_mode”

### 2026-10-22 (score 78, 0)

- [security] Tool “create_order” rewrote its description, which is the text the model reads
- [cosmetic] “create_order” reworded the description of “no_return_address_ack”
- [cosmetic] “create_order” reworded the description of “return_address”

### 2026-10-21 (score 78, +1)

- [security] Stability: 0.97 → pass
- [cosmetic] “create_order” added an optional parameter “return_address_partial_ok”
- [cosmetic] “create_order” reworded the description of “return_address”

### 2026-10-20 (score 77, −1)

- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “create_order” rewrote its description, which is the text the model reads
- [security] Tool “get_pricing” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 125 → 158
- [functional] New tool “check_connection”
- [functional] New tool “connect_account”
- [functional] New tool “create_topup_link”
- [functional] New tool “get_balance”
- [cosmetic] “create_order” added an optional parameter “no_return_address_ack”
- [cosmetic] “create_order” added an optional parameter “return_address”
- [cosmetic] “get_pricing” added an optional parameter “envelope_output_mode”
- [cosmetic] “get_pricing” added an optional parameter “output_mode”
- [cosmetic] “create_order” reworded the description of “idempotency_key”
- [cosmetic] “create_order” reworded the description of “options”

### 2026-10-18 (score 78, +1)

No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-16 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-14 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (13)

### `connect_account` (~185 tokens)

Get a Premier Letters API key without the user copying one by hand. Pass the user's email and your name; we email them a link to approve (they can sign up from it if they have no account). Then call check_connection with the returned request_id and poll_secret every 10-30 seconds until it returns the api_key (returned once). Show the returned user_code to the user so they can match it on the approval page. No account or key needed to call this.

Input parameters:

- `agent_name` (string, required): Your name as the user will see it, 1-80 characters: letters, digits, spaces and . , ' & ( ) - _ only (no links), e.g. "Claude".
- `email` (string, required): The account owner's email address. The approval link is sent here.
- `mode` (string): Key mode. Defaults to "live".

### `check_connection` (~74 tokens)

Check whether the user approved a connect_account request. Returns status pending, denied, expired or claimed, or, exactly once, status approved with the api_key. Poll every 10-30 seconds.

Input parameters:

- `poll_secret` (string, required): poll_secret from connect_account.
- `request_id` (string, required): request_id from connect_account.

### `get_pricing` (~334 tokens)

Get a live price quote for a Premier Letters order. Pass char_count (or letter_count for a rough estimate) plus optional mailing_option and paper_type to get a per-piece and total price, in cents. No account needed. Orders under 5 pieces carry a $0.99 per-piece handling fee (included in total_cents), waived when paid from a prepaid balance. Pass output_mode (printed_bw / printed_color, or facsimile for the handwriting printed on a laser printer) to quote a printed letter body instead of a pen-written one, and envelope_output_mode to quote a printed envelope.

Input parameters:

- `char_count` (number): Length of the letter message in characters. Longer letters cost more (character meter).
- `envelope_output_mode` (string): Omit (or null) for a hand-addressed envelope, the default. facsimile prints the handwritten addressing; printed_bw / printed_color print typed addressing.
- `letter_count` (number): Number of recipients / pieces. Defaults to 1.
- `mailing_option` (string): Delivery option. Defaults to "we_mail" (we write, stamp, and mail it for you).
- `output_mode` (string): Defaults to "handwritten". facsimile prints the handwriting layout on a laser printer; printed_bw / printed_color print typed text. The envelope stays hand-addressed unless envelope_output_mode is se…
- `paper_type` (string): Paper quality. Defaults to "standard".
- `product_type` (string): Product type (letter, card, postcard, etc). Informational only — does not change pricing components beyond envelope inclusion.

### `list_handwriting_styles` (~44 tokens)

List available handwriting styles (fonts) for a letter order. Use the returned "id" as options.handwriting_style / handwriting_style when creating an order or previewing.

### `list_templates` (~57 tokens)

List the authenticated user's saved letter templates.

Input parameters:

- `favorites_only` (boolean): Only return favorited templates.
- `search` (string): Filter templates by name or content substring.
- `sort` (string): Sort order. Defaults to "recent".

### `verify_address` (~96 tokens)

Verify and standardize a US mailing address via USPS. Use before create_order to catch typos and get the USPS-standardized form.

Input parameters:

- `address_line1` (string, required): Street address
- `address_line2` (string): Apt/suite/unit (optional)
- `city` (string, required)
- `state` (string, required): Two-letter US state code
- `zip` (string, required): 5-digit or ZIP+4 postal code

### `preview_letter` (~116 tokens)

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

Input parameters:

- `handwriting_style` (string): Font UUID from list_handwriting_styles. Defaults to the house font.
- `message` (string, required): The letter text to render.
- `product_type` (string): Product slug: letter, card, postcard, etc. Defaults to "letter".
- `recipient` (object): Optional recipient info, used only to personalize {{merge fields}} in the message before rendering.

### `list_extras` (~107 tokens)

List the extra pieces that can go in each envelope with a Premier Letters order: printed inserts, printed letters, your own inserts, flyers, postcards, business cards. Each has options, a per-unit price in cents, a lead time and a purchase mode: "instant" pieces are charged with the order, "request" pieces are priced by staff after the order is placed. Pass them as `extras` on create_order. With an API key, the account's own prices apply.

### `create_order` (~636 tokens)

Create and pay for a Premier Letters order — a real, handwritten letter mailed via USPS. Requires a Premier Letters API key. Use get_pricing or preview_letter first to confirm the price. For payment, "card_on_file" charges the caller's saved card immediately, "balance" pays from the prepaid account balance (no small-order handling fee; fails with insufficient_balance when short), or "checkout_session" returns a checkout_url for the human to complete payment in a browser. Envelope return address: an explicit no_return_address_ack: true always wins; otherwise a supplied return_address, else the account default. With neither address, set no_return_address_ack: true to send without one.

Input parameters:

- `extras` (array): Optional extra pieces for each envelope (printed insert, printed letter, your own insert, flyer, business card…). Call list_extras for pieces, options and prices. "instant" pieces are charged with th…
- `idempotency_key` (string): Client-supplied key (1–255 chars). Repeating a call with the same key returns the original order instead of creating a second one. Always set this when you might retry.
- `message` (string, required): The letter text. Supports {{first_name}}, {{last_name}}, {{greeting}} merge fields per-recipient.
- `no_return_address_ack` (boolean): Send with no return address at all. An explicit no_return_address_ack: true always wins; otherwise a supplied return_address, else the account default. Undeliverable mail is then destroyed.
- `options` (object): handwriting_style, paper_type, product_type, mailing_option, authenticity_preset, include_letter, include_envelope, copies, output_mode ("handwritten" default; "facsimile" prints the handwriting on a…
- `payment` (object)
- `recipients` (array): One or more recipients. At least one is required unless options.product_type is a letter/card with no envelope.
- `return_address` (object): Return address written on the envelope. Omit to use the account's default return address. Required unless the account has a default or no_return_address_ack is true. An explicit no_return_address_ack…
- `return_address_partial_ok` (boolean): Send return_address exactly as written although it is incomplete: at least one of name, company, address_line1, city, state, zip. Only the filled lines print (a name alone is fine). Without it an inc…
- `skip_invalid` (boolean): When true, invalid recipients are skipped instead of failing the whole order.

### `get_order_status` (~42 tokens)

Get an order's status, delivery/tracking summary, and per-recipient mail status.

Input parameters:

- `order_id` (string, required): The order UUID returned by create_order.

### `list_orders` (~62 tokens)

List the authenticated user's recent orders.

Input parameters:

- `limit` (number): Max orders to return (1-100). Defaults to 20.
- `status` (string): Optional status filter (pending_payment, paid, in_production, mailed, delivered, cancelled, refunded).

### `get_balance` (~62 tokens)

Get the authenticated account's prepaid balance (balance_cents) and the top-up rules: minimum and maximum top-up, bonus tiers and suggested amounts. Orders paid with payment.method "balance" skip the small-order handling fee. Use create_topup_link to add funds.

### `create_topup_link` (~101 tokens)

Create a Stripe Checkout link that adds prepaid credit (plus any bonus tier) to the authenticated account. Give checkout_url to the human to pay in a browser; the balance updates once they pay (check with get_balance). amount_cents must be a whole number between min_cents and max_cents from get_balance.

Input parameters:

- `amount_cents` (integer, required): Amount to add, in cents (e.g. 5000 for $50.00).

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-premierletters-mcp/api-mcp#diagnostics

## Score history

- 2026-11-05: 78
- 2026-11-04: 77
- 2026-11-03: 78
- 2026-11-02: 78
- 2026-11-01: 78
- 2026-10-31: 78
- 2026-10-30: 78
- 2026-10-29: 78
- 2026-10-28: 78
- 2026-10-27: 78
- 2026-10-26: 78
- 2026-10-25: 78
- 2026-10-24: 78
- 2026-10-23: 78
- 2026-10-22: 78
- 2026-10-21: 78
- 2026-10-20: 77
- 2026-10-19: 78
- 2026-10-18: 78
- 2026-10-17: 77
- 2026-10-16: 77
- 2026-10-15: 76
- 2026-10-14: 76
- 2026-10-13: 75
- 2026-10-12: 75
- 2026-10-10: 74
- 2026-10-08: 73
- 2026-10-04: 71
- 2026-10-03: 71
- 2026-10-02: 70

## Common questions

### What is the Premier Letters MCP server?

Premier Letters is an MCP server listed in the public MCP registry as com.premierletters/mcp. Send real pen-written letters, cards and postcards: quote, preview, order and track by mail. This page covers its hosted endpoint (https://www.premierletters.com/api/mcp).

### Is the Premier Letters MCP server safe to use?

Premier Letters scores 78 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Premier Letters MCP server expose?

Premier Letters exposes 13 tools: connect_account, check_connection, get_pricing, list_handwriting_styles, list_templates, and 8 more. Their descriptions and schemas cost roughly 1,916 tokens of context every time the server is loaded.

### Does the Premier Letters MCP server require authentication?

No. We connected to Premier Letters without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the Premier Letters MCP server still maintained?

Premier Letters is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://www.premierletters.com/api/mcp
- Website: https://www.premierletters.com/developers
- Changelog RSS feed: https://verifymcp.io/servers/com-premierletters-mcp/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-premierletters-mcp/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/com-premierletters-mcp/api-mcp
