# Card Mailer (remote · cards.onmax.me)

Print and mail 5x7 holiday and thank-you photo cards to a US address list. $2.49/card incl. postage.

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

## Components

- remote · `cards.onmax.me`: 63/100 (this document), [markdown](https://verifymcp.io/servers/me-onmax-card-mailer/mcp-claude.md), [page](https://verifymcp.io/servers/me-onmax-card-mailer/mcp-claude)

## Channel facts

- Endpoint: `https://cards.onmax.me/mcp/claude`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.2`

## 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**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (fix_address).
  - HTTPS enforcement could not be verified: the plaintext port answered with HTTP 405, which proves neither a plaintext path nor enforcement.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - 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**: 76/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1441 tokens (~160/item across 9 items; 6 tools + 3 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 30/100
  - Stability check failed: schema churn in the 12 days we've observed: 0 tool removals, 1 breaking changes, 0 auth/transport breaks, 0 additions.
- **Tool Coverage**: 88/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 57% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 6 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).
  - Supports UI / widget rendering.

## Install

### How do I install the Card Mailer MCP server?

Card Mailer is a hosted endpoint at https://cards.onmax.me/mcp/claude, 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 me-onmax-card-mailer 'https://cards.onmax.me/mcp/claude'
```

### Cursor

```json
{
  "mcpServers": {
    "me-onmax-card-mailer": {
      "url": "https://cards.onmax.me/mcp/claude"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "me-onmax-card-mailer": {
      "type": "http",
      "url": "https://cards.onmax.me/mcp/claude"
    }
  }
}
```

### Codex

```toml
[mcp_servers.me-onmax-card-mailer]
url = "https://cards.onmax.me/mcp/claude"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "me-onmax-card-mailer": {
      "type": "remote",
      "url": "https://cards.onmax.me/mcp/claude",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add me-onmax-card-mailer --url 'https://cards.onmax.me/mcp/claude' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  me-onmax-card-mailer:
    url: "https://cards.onmax.me/mcp/claude"
```

### Netclaw

```json
{
  "McpServers": {
    "me-onmax-card-mailer": {
      "Transport": "http",
      "Url": "https://cards.onmax.me/mcp/claude"
    }
  }
}
```

### Vellum

```bash
assistant mcp add me-onmax-card-mailer -t streamable-http -u 'https://cards.onmax.me/mcp/claude'
```

### Other

```json
{
  "mcpServers": {
    "me-onmax-card-mailer": {
      "type": "http",
      "url": "https://cards.onmax.me/mcp/claude"
    }
  }
}
```

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 63, 0)

- [security] Resource “Card Mailer widget legacy” now points somewhere else: ui://widget/card-mailer-06e86234e1033466.html → ui://widget/card-mailer-v1.html

### 2026-11-04 (score 63, +1)

- [security] Resource “Card Mailer widget legacy” now points somewhere else: ui://widget/card-mailer-06e86234e1033466.html → ui://widget/card-mailer-v1.html

### 2026-11-02 (score 62, +1)

- [security] Resource “Card Mailer widget current” now points somewhere else: ui://widget/card-mailer-06e86234e1033466.html → ui://widget/card-mailer-51779a33fd005602.html

### 2026-10-31 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13.

### 2026-10-30 (score 60, 0)

- [security] Tool “fix_address” rewrote its description, which is the text the model reads
- [security] Tool “import_address_list” rewrote its description, which is the text the model reads

### 2026-10-29 (score 60, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 6.

### 2026-10-26 (score 59, 0)

- [security regression] Stability: 0.03 → fail
- [security regression] A breaking change shipped without a version bump: still 1.0.0
- [security] The server rewrote its instructions, which are the text every model session reads
- [security] Tool “quote_mailing” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 1173 → 1364
- [functional regression] “quote_mailing” added a required parameter “design_id”, so existing callers break
- [functional regression] Resource “Card Mailer widget” was removed
- [functional] New resource “Card Mailer widget legacy”
- [functional] New resource “Card Mailer widget current”

### 2026-10-25 (score 59, 0)

- [functional improvement] Stability: unverified → 0.03

## MCP tools (6)

### `import_address_list` (~226 tokens)

Import address list

Use this when the user wants to mail printed cards to people at US postal addresses and gives the addresses as pasted text, a CSV, or an .xlsx spreadsheet. Reads names and addresses, checks required fields and US address format, and saves them as a recipient list. USPS verification runs only when it is configured; usps_checked in the result says whether it ran. Format checks alone do not confirm that an address is deliverable. Returns a list_id, how many rows are ready, and the problem for each row that needs fixing. Up to 300 recipients; pass list_id to append rows to an existing list. US addresses only. Not for e-cards or email, addresses outside the US, or advertising mail to purchased or rented lists.

Input parameters:

- `address_file` (object): A CSV or XLSX file the user attached.
- `addresses_text` (string): Addresses as pasted text or CSV. One recipient per line ("Name, Street, City, ST ZIP") or a CSV with a header row.
- `list_id` (string): Existing list to append to.

Output parameters:

- `corrected_by_usps` (number)
- `kind` (string)
- `list_id` (string)
- `needs_fixing` (number)
- `problems` (array)
- `ready` (number)
- `skipped_over_limit` (number)
- `total` (number)
- `usps_checked` (boolean)

### `fix_address` (~202 tokens)

Fix or remove a recipient

Use this to correct or remove one recipient in a list from import_address_list, by row number. Given fields replace the stored values and omitted fields keep theirs; if the row's problem says it could not be read, pass name, line1, city, state and zip together. Re-runs the required-field and US address format checks, plus USPS verification when it is configured. Format checks alone do not confirm that an address is deliverable. remove: true takes the recipient out of the mailing. Rows in a list that belongs to a paid order cannot be changed.

Input parameters:

- `city` (string)
- `line1` (string): Street address
- `line2` (string): Apartment, suite, unit
- `list_id` (string, required)
- `name` (string)
- `remove` (boolean): Remove this recipient from the mailing.
- `row` (integer, required)
- `state` (string)
- `zip` (string)

Output parameters:

- `corrected_by_usps` (number)
- `kind` (string)
- `list_id` (string)
- `needs_fixing` (number)
- `problems` (array)
- `ready` (number)
- `skipped_over_limit` (number)
- `total` (number)
- `usps_checked` (boolean)

### `design_card` (~273 tokens)

Design card

Use this to create or edit the printed 5x7 postcard: a greeting on the front over or under the photo, and a message and sign-off on the back. Pass the photo the user attached as photo, or a public https image URL as photo_url; the image is downloaded and stored on cards.onmax.me. Without a photo the front is the greeting on a solid color. Pass design_id to edit a design: given fields replace the old values and omitted fields keep them. Use the message the user wrote or approved, up to 500 characters. Places the user's photo and text in a print template; does not generate images.

Input parameters:

- `design_id` (string)
- `greeting` (string): Front headline, e.g. "Happy Holidays", "Merry Christmas", "Thank You".
- `message` (string): Message printed on the back.
- `photo` (object): Photo the user attached for the front.
- `photo_url` (string): Public https URL of the front photo.
- `remove_photo` (boolean)
- `sign_off` (string): Signature on the back, e.g. "Love, The Garcias".
- `style` (string): classic (red), evergreen (green), winter (blue), minimal (white), thanks (warm, for thank-you cards).

Output parameters:

- `design_id` (string)
- `greeting` (string)
- `has_photo` (boolean)
- `kind` (string)
- `message` (string)
- `photo_warning` (string|null)
- `sign_off` (string)
- `style` (string)

### `quote_mailing` (~273 tokens)

Quote mailing

Use this when the user asks what mailing a card to an imported list costs or when it will arrive. Returns the price per card (First-Class postage included), the total for the ready recipients, the send date and the expected arrival window. For a card preview with the price, first create or edit it with design_card, then pass that exact design_id here. This shows the current saved front and back above the quote. design_id is required: use null only when the user requested a price-only quote without a design. Never claim a preview is shown when preview_included is false. If the cards must arrive by a date, pass arrive_by; the result gives the latest safe send date and whether that date can be met. Does not create an order or charge anything.

Input parameters:

- `arrive_by` (string): Date the cards should arrive by, YYYY-MM-DD.
- `design_id` (string|null, required): Required preview choice. Use the exact design_id returned by design_card for a preview with price. Use null only for a price-only request without a design. Do not omit.
- `list_id` (string, required)
- `send_date` (string): Date to print and mail, YYYY-MM-DD. Default: the latest safe date for arrive_by, otherwise the earliest business day (today if it is one).

Output parameters:

- `arrives_between` (array)
- `design_id` (string)
- `kind` (string)
- `latest_send_date` (string)
- `needs_fixing` (number)
- `notes` (array)
- `on_time` (boolean)
- `preview_included` (boolean)
- `quantity` (number)
- `send_date` (string)
- `total` (string)
- `total_cents` (number)
- `unit_price` (string)

### `create_mailing` (~163 tokens)

Create order and payment link

Use this when the user has seen the card and the quote and says they want to order. Creates an unpaid order for the ready recipients in list_id with design_id and returns a link to cards.onmax.me, where the user reviews the recipients and pays. Nothing is printed, mailed or charged until the user pays on that page. Recipients that still need fixing are left out. Each call creates a separate order link, so call it once per order. Optional sender is printed as the US return address.

Input parameters:

- `arrive_by` (string)
- `design_id` (string, required)
- `list_id` (string, required)
- `send_date` (string): Date to print and mail, YYYY-MM-DD.
- `sender` (object): Return address (US).

Output parameters:

- `arrives_between` (array)
- `checkout_url` (string)
- `design_id` (string)
- `kind` (string)
- `latest_send_date` (string)
- `list_id` (string)
- `mailing_id` (string)
- `needs_fixing` (number)
- `notes` (array)
- `on_time` (boolean)
- `quantity` (number)
- `send_date` (string)
- `total` (string)
- `total_cents` (number)
- `unit_price` (string)

### `get_mailing_status` (~84 tokens)

Mailing status

Use this when the user asks whether a Card Mailer order was paid, printed, mailed or delivered. Takes the mailing_id returned by create_mailing (also the last part of the order link). Returns the status, send date, expected arrival and per-recipient counts. Does not change the order or track other USPS mail.

Input parameters:

- `mailing_id` (string, required)

Output parameters:

- `addresses_deleted` (boolean)
- `arrives_between` (array)
- `checkout_url` (string)
- `counts` (object)
- `kind` (string)
- `mailing_id` (string)
- `quantity` (number)
- `send_date` (string)
- `status` (string)
- `total` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/me-onmax-card-mailer/mcp-claude#diagnostics

## Score history

- 2026-11-05: 63
- 2026-11-04: 63
- 2026-11-03: 62
- 2026-11-02: 62
- 2026-11-01: 61
- 2026-10-31: 61
- 2026-10-30: 60
- 2026-10-29: 60
- 2026-10-28: 59
- 2026-10-27: 59
- 2026-10-26: 59
- 2026-10-25: 59
- 2026-10-24: 59

## Common questions

### What is the Card Mailer MCP server?

Card Mailer is an MCP server listed in the public MCP registry as me.onmax/card-mailer. Print and mail 5x7 holiday and thank-you photo cards to a US address list. $2.49/card incl. postage. This page covers its hosted endpoint (https://cards.onmax.me/mcp/claude).

### Is the Card Mailer MCP server safe to use?

Card Mailer scores 63 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 Card Mailer MCP server expose?

Card Mailer exposes 6 tools: import_address_list, fix_address, design_card, quote_mailing, create_mailing, get_mailing_status. Their descriptions and schemas cost roughly 1,221 tokens of context every time the server is loaded.

### Does the Card Mailer MCP server require authentication?

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

### Is the Card Mailer MCP server still maintained?

Card Mailer 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://cards.onmax.me/mcp/claude
- Website: https://cards.onmax.me/
- Changelog RSS feed: https://verifymcp.io/servers/me-onmax-card-mailer/mcp-claude.xml
- Changelog JSON feed: https://verifymcp.io/servers/me-onmax-card-mailer/mcp-claude.json
- HTML version of this page: https://verifymcp.io/servers/me-onmax-card-mailer/mcp-claude
