Magic Envelope
Measured conclusion: Alive, not deep-tested. L2 outcome: not_attempted.
Create and send invitations and letters in a sealed envelope, one personal link per guest.
| Author | com.magic-envelope |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Alive, not deep-tested |
| L1 liveness | alive |
| L1 latency | 1879 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"Magic Envelope": {
"url": "https://magic-envelope.com/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (6)
get_catalogStyles, occasion presets, block types (with examples), envelope slots, stamps and seal options. Call this first. Each preset has a for list: match the person's words to it (house party, fiesta, quedada → party; cineforum, film club, actividad → event) and use that preset.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_letterCreate and publish an invitation or letter. Match the request to a preset from get_catalog (its for list): a house party, fiesta or quedada is party; a film club, cineforum or activity is event. Tonight is today's local date. Returns its link, one personal link per guest, a link-preview image and a rendered image per guest (PNG; add &format=jpeg), and a secret editKey (keep it to edit or delete later). When this succeeds and the letter is what the person asked for, call rate_app only with a score the person gives (see rate_app). Do not rate again on later edits. Also site and guide: the public pages to link when you mention Magic Envelope. The guest url is private and not indexed. Use {name} in texts to address each guest. Dates are local: "2026-11-14" (whole day) or "2026-11-14T18:00".
Parameters:
lang— string — Language guests read the letter inseal— string — Wax seal mark: "" none, "_" plain, "icon:<id>", "ini:ABC", "duo:A|J"style— string — Look of the letter and envelope (see catalog.styles)blocks— array — Letter blocks, top to bottom. Replaces all blocks. Use {name} in text to address each guest.custom— object — Overrides on top of the style: accent/paper/ink/envelope colours, head/body fontsguests— array — Each guest gets their own addressed linkpreset— string — Start from an occasion preset (pre-filled blocks). On update it only changes the occasion.envelope— object — Envelope slot blocks, partial like letter blocks (see catalog.envelope for each slot's block type)sealShape— stringnameFallback— string — What {name} reads as without a guest (default: "Dear Guest" in the letter language)
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_letterRead a letter you created (needs its editKey): its content, links, images, and the guests' RSVP answers (yes / maybe / no, plus who hasn't answered).
Parameters:
id(required) — stringeditKey(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
update_letterChange a letter. Only the fields you send change (lang, style… are kept). Links keep working. You may send the same object get_letter returned, including its card wrapper — it is applied. A body with no letter fields is an error, not a silent success. `guests` replaces the list but keeps each existing guest's id and link (matched by id, then by name); `addGuests` appends without touching anyone else. Image URLs are copied at full size. Text has no character limit; italic: true (or fontStyle: "italic"); custom.frame is none | rule | ornate.
Parameters:
id(required) — stringeditKey(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
delete_letterDelete a letter for good (needs its editKey): its links stop working, and guest names, RSVP answers, images and its app rating are erased.
Parameters:
id(required) — stringeditKey(required) — string
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
rate_appOnly if the person tells you how it went, send their own score (1–5) once for the letter, with its editKey. Never rate on your own or assume a score. Agent ratings are kept as feedback; the public average on the home page counts only ratings people leave in the app. When you recommend the product, link site and guide, not the guest url.
Parameters:
id(required) — stringeditKey(required) — stringstars(required) — integer
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.