Premier Letters
REMOTE · WWW.PREMIERLETTERS.COM
Send real pen-written letters, cards and postcards: quote, preview, order and track by mail.
Available components
Last scanned (21 hours ago)
Scores higher than 69% of remote servers
Reachable. Last reached 4 Nov 2026.
Category Communication
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. How we score → Why this is hard to score →
Endpoint Security63
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- 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. See how to fix → View diagnostics → Unverified
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability67
- AI-judged instruction clarity (excellent).Pass
- 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. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
- Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage98
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 95% of tool parameters carry a description.Partial
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 13 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Nov 26 −1
- Tool “get_pricing” rewrote its description, which is the text the model reads security
- Schema quality: 2021 → 2233 ▼ functional
- Stability: pass → 0.97 functional
- New tool “list_extras” functional
- “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” cosmetic
- 22 Oct 26 0
- Tool “create_order” rewrote its description, which is the text the model reads security
- “create_order” reworded the description of “no_return_address_ack” cosmetic
- “create_order” reworded the description of “return_address” cosmetic
- 21 Oct 26 +1
- Stability: 0.97 → pass security
- “create_order” added an optional parameter “return_address_partial_ok” cosmetic
- “create_order” reworded the description of “return_address” cosmetic
- 20 Oct 26 −1
- 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 security
- 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” functional
- “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” cosmetic
- 18 Oct 26 +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.
- 16 Oct 26 +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.
- 14 Oct 26 +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.
- 12 Oct 26 +1
- 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 security
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 4 Nov 2026 · Probed https://www.premierletters.com/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=*.premierletters.com | CN=YR1,O=Let's Encrypt,C=US | 12 Oct 2026 | 10 Jan 2027 | RSA 2048 | SHA256-RSA | 5885281d286261f717e67d931a14d837e9e |
| SANs: *.premierletters.com | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of www.premierletters.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| premierletters.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=63072000 |
| content-security-policy | default-src 'self'; script-src 'self' 'unsafe-eval' 'unsafe-inline' https://js.stripe.com https://maps.googleapis.com https://cdnjs.cloudflare.com; worker-src 'self' blob: https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.supabase.co https://*.stripe.com; font-src 'self' https://fonts.gstatic.com; connect-src 'self' https://*.supabase.co wss://*.supabase.co https://api.stripe.com https://maps.googleapis.com; frame-src https://js.stripe.com https://hooks.stripe.com; object-src 'none'; base-uri 'self' |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://www.premierletters.com/api/mcp | Verified | 200 | |
| http (plaintext) | http://www.premierletters.com/api/mcp | HTTPS enforced | 308 | https://www.premierletters.com/api/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
check_connection ~74
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.
| Name | Type | Req | Description |
|---|---|---|---|
| poll_secret | string | yes | poll_secret from connect_account. |
| request_id | string | yes | request_id from connect_account. |
No output schema declared.
No examples provided.
connect_account ~185
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agent_name | string | yes | Your name as the user will see it, 1-80 characters: letters, digits, spaces and . , ' & ( ) - _ only (no links), e.g. "Claude". |
| string | yes | The account owner's email address. The approval link is sent here. | |
| mode | string | – | Key mode. Defaults to "live". |
No output schema declared.
No examples provided.
create_order ~636
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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 | yes | 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. |
No output schema declared.
No examples provided.
create_topup_link ~101
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount_cents | integer | yes | Amount to add, in cents (e.g. 5000 for $50.00). |
No output schema declared.
No examples provided.
get_balance ~62
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_order_status ~42
Get an order's status, delivery/tracking summary, and per-recipient mail status.
| Name | Type | Req | Description |
|---|---|---|---|
| order_id | string | yes | The order UUID returned by create_order. |
No output schema declared.
No examples provided.
get_pricing ~334
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.
| Name | Type | Req | Description |
|---|---|---|---|
| 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. |
No output schema declared.
No examples provided.
list_extras ~107
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_handwriting_styles ~44
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_orders ~62
List the authenticated user's recent orders.
| Name | Type | Req | Description |
|---|---|---|---|
| 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). |
No output schema declared.
No examples provided.
list_templates ~57
List the authenticated user's saved letter templates.
| Name | Type | Req | Description |
|---|---|---|---|
| favorites_only | boolean | – | Only return favorited templates. |
| search | string | – | Filter templates by name or content substring. |
| sort | string | – | Sort order. Defaults to "recent". |
No output schema declared.
No examples provided.
preview_letter ~116
Render a preview of a handwritten letter (as an SVG image) and get its price, before creating an order. Does not save anything.
| Name | Type | Req | Description |
|---|---|---|---|
| handwriting_style | string | – | Font UUID from list_handwriting_styles. Defaults to the house font. |
| message | string | yes | 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. |
No output schema declared.
No examples provided.
verify_address ~96
Verify and standardize a US mailing address via USPS. Use before create_order to catch typos and get the USPS-standardized form.
| Name | Type | Req | Description |
|---|---|---|---|
| address_line1 | string | yes | Street address |
| address_line2 | string | – | Apt/suite/unit (optional) |
| city | string | yes | – |
| state | string | yes | Two-letter US state code |
| zip | string | yes | 5-digit or ZIP+4 postal code |
No output schema declared.
No examples provided.
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.
remote · www.premierletters.com
claude mcp add --transport http com-premierletters-mcp 'https://www.premierletters.com/api/mcp'
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 77 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 4 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.