Magic Envelope
Create and send invitations and letters in a sealed envelope, one personal link per guest.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"invitations": {
"url": "https://magic-envelope.com/api/mcp"
}
}
}Puntos de conexión remotos
https://magic-envelope.com/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (5)
🟢get_catalog
Styles, occasion presets, block types (with examples), envelope slots, stamps and seal options. Call this first to compose a letter.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴create_letter(lang, style, preset, blocks, custom, ...)
Create and publish an invitation or letter. 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). Use {name} in texts to address each guest. Dates are local: "2026-11-14" (whole day) or "2026-11-14T18:00".
Esquema de entrada
{
"type": "object",
"properties": {
"lang": {
"default": "en",
"type": "string",
"enum": [
"es",
"en",
"fr",
"pt",
"it",
"de"
],
"description": "Language guests read the letter in"
},
"style": {
"default": "parchment",
"type": "string",
"enum": [
"parchment",
"midnight",
"romance",
"botanical",
"notebook",
"minimal",
"launch",
"groovy",
"deco",
"ivory",
"brutal",
"bubblegum",
"confetti",
"typewriter",
"pocket"
],
"description": "Look of the letter and envelope (see catalog.styles)"
},
"preset": {
"type": "string",
"enum": [
"birthday",
"wedding",
"party",
"baby",
"dinner",
"graduation",
"event",
"letter"
],
"description": "Start from an occasion preset (pre-filled blocks). On update it only changes the occasion."
},
"blocks": {
"minItems": 1,
"maxItems": 60,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "heading"
},
"text": {
"type": "string",
"maxLength": 200
},
"size": {
"default": "xl",
"type": "string",
"enum": [
"md",
"lg",
"xl"
]
},
"italic": {
"default": false,
"type": "boolean"
}
},
"required": [
"id",
"type",
"text"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "text"
},
"text": {
"type": "string",
"maxLength": 50000
},
"align": {
"default": "center",
"type": "string",
"enum": [
"left",
"center"
]
},
"italic": {
"default": false,
"type": "boolean"
}
},
"required": [
"id",
"type",
"text"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "image"
},
"src": {
"type": "string",
"maxLength": 2048
},
"shape": {
"default": "wide",
"type": "string",
"enum": [
"wide",
"square",
"round"
]
}
},
"required": [
"id",
"type",
"src"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "date"
},
"start": {
"type": "string",
"maxLength": 40
},
"end": {
"type": "string",
"maxLength": 40
},
"title": {
"type": "string",
"maxLength": 200
},
"interactive": {
"default": true,
"type": "boolean"
}
},
"required": [
"id",
"type",
"start"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "place"
},
"name": {
"type": "string",
"maxLength": 200
},
"address": {
"type": "string",
"maxLength": 200
},
"interactive": {
"default": true,
"type": "boolean"
}
},
"required": [
"id",
"type",
"name",
"address"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "countdown"
},
"to": {
"default": "",
"type": "string",
"maxLength": 40
}
},
"required": [
"id",
"type"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "link"
},
"label": {
"type": "string",
"maxLength": 200
},
"href": {
"type": "string",
"maxLength": 2048
},
"icon": {
"default": "link",
"type": "string",
"enum": [
"link",
"gift",
"music",
"video",
"map",
"camera"
]
},
"interactive": {
"default": true,
"type": "boolean"
}
},
"required": [
"id",
"type",
"label",
"href"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "qr"
},
"data": {
"type": "string",
"maxLength": 2048
},
"caption": {
"type": "string",
"maxLength": 200
}
},
"required": [
"id",
"type",
"data"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "rsvp"
},
"channel": {
"type": "string",
"enum": [
"whatsapp",
"sms",
"email"
]
},
"contacts": {
"type": "object",
"properties": {
"whatsapp": {
"default": "",
"type": "string",
"maxLength": 200
},
"sms": {
"default": "",
"type": "string",
"maxLength": 200
},
"email": {
"default": "",
"type": "string",
"maxLength": 200
}
}
},
"deadline": {
"type": "string",
"maxLength": 40
},
"interactive": {
"default": true,
"type": "boolean"
}
},
"required": [
"id",
"type",
"channel",
"contacts"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "agenda"
},
"items": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"time": {
"type": "string",
"maxLength": 10
},
"what": {
"type": "string",
"maxLength": 200
}
},
"required": [
"time",
"what"
]
}
}
},
"required": [
"id",
"type",
"items"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "dress"
},
"text": {
"type": "string",
"maxLength": 200
},
"board": {
"default": [],
"maxItems": 12,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "color"
},
"value": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "emoji"
},
"value": {
"type": "string",
"maxLength": 16
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "text"
},
"value": {
"type": "string",
"maxLength": 60
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "image"
},
"value": {
"type": "string",
"maxLength": 2048
}
},
"required": [
"kind",
"value"
]
}
]
}
}
},
"required": [
"id",
"type",
"text"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "gift"
},
"text": {
"type": "string",
"maxLength": 200
},
"iban": {
"type": "string",
"maxLength": 200
},
"href": {
"type": "string",
"maxLength": 2048
},
"interactive": {
"default": true,
"type": "boolean"
}
},
"required": [
"id",
"type",
"text"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "signature"
},
"text": {
"type": "string",
"maxLength": 200
}
},
"required": [
"id",
"type",
"text"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "divider"
},
"style": {
"default": "flourish",
"type": "string",
"enum": [
"flourish",
"stars",
"line"
]
}
},
"required": [
"id",
"type"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "music"
},
"href": {
"type": "string",
"maxLength": 2048
}
},
"required": [
"id",
"type",
"href"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "stamp"
},
"stamp": {
"anyOf": [
{
"type": "string",
"enum": [
"love",
"rose",
"dove",
"castle",
"moon",
"cake",
"sunflower",
"shell",
"butterfly",
"star",
"key",
"rocket",
"disco",
"invader"
]
},
{
"type": "string",
"const": ""
}
]
}
},
"required": [
"id",
"type",
"stamp"
]
}
]
},
"description": "Letter blocks, top to bottom. Replaces all blocks. Use {name} in text to address each guest."
},
"custom": {
"type": "object",
"properties": {
"accent": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"paper": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"ink": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"envelope": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"head": {
"type": "string",
"enum": [
"medieval",
"fell",
"playfair",
"kalam",
"inter",
"grotesk",
"monoton",
"righteous",
"pixel",
"vt323",
"cinzel",
"fredoka",
"courier",
"bebas"
]
},
"body": {
"type": "string",
"enum": [
"medieval",
"fell",
"playfair",
"kalam",
"inter",
"grotesk",
"monoton",
"righteous",
"pixel",
"vt323",
"cinzel",
"fredoka",
"courier",
"bebas"
]
},
"frame": {
"type": "string",
"enum": [
"none",
"rule",
"ornate"
]
}
},
"description": "Overrides on top of the style: accent/paper/ink/envelope colours, head/body fonts"
},
"seal": {
"type": "string",
"maxLength": 16,
"description": "Wax seal mark: \"\" none, \"_\" plain, \"icon:<id>\", \"ini:ABC\", \"duo:A|J\""
},
"sealShape": {
"type": "string",
"enum": [
"scallop",
"round",
"flower",
"octagon"
]
},
"envelope": {
"type": "object",
"properties": {
"blocks": {
"type": "object",
"propertyNames": {
"type": "string",
"enum": [
"front-center",
"front-tl",
"front-tr",
"front-bl",
"back-center"
]
},
"additionalProperties": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "heading"
},
"text": {
"type": "string",
"maxLength": 200
},
"size": {
"default": "xl",
"type": "string",
"enum": [
"md",
"lg",
"xl"
]
},
"italic": {
"default": false,
"type": "boolean"
}
},
"required": [
"id",
"type",
"text"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "text"
},
"text": {
"type": "string",
"maxLength": 50000
},
"align": {
"default": "center",
"type": "string",
"enum": [
"left",
"center"
]
},
"italic": {
"default": false,
"type": "boolean"
}
},
"required": [
"id",
"type",
"text"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "image"
},
"src": {
"type": "string",
"maxLength": 2048
},
"shape": {
"default": "wide",
"type": "string",
"enum": [
"wide",
"square",
"round"
]
}
},
"required": [
"id",
"type",
"src"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "date"
},
"start": {
"type": "string",
"maxLength": 40
},
"end": {
"type": "string",
"maxLength": 40
},
"title": {
"type": "string",
"maxLength": 200
},
"interactive": {
"default": true,
"type": "boolean"
}
},
"required": [
"id",
"type",
"start"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "place"
},
"name": {
"type": "string",
"maxLength": 200
},
"address": {
"type": "string",
"maxLength": 200
},
"interactive": {
"default": true,
"type": "boolean"
}
},
"required": [
"id",
"type",
"name",
"address"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "countdown"
},
"to": {
"default": "",
"type": "string",
"maxLength": 40
}
},
"required": [
"id",
"type"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "link"
},
"label": {
"type": "string",
"maxLength": 200
},
"href": {
"type": "string",
"maxLength": 2048
},
"icon": {
"default": "link",
"type": "string",
"enum": [
"link",
"gift",
"music",
"video",
"map",
"camera"
]
},
"interactive": {
"default": true,
"type": "boolean"
}
},
"required": [
"id",
"type",
"label",
"href"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "qr"
},
"data": {
"type": "string",
"maxLength": 2048
},
"caption": {
"type": "string",
"maxLength": 200
}
},
"required": [
"id",
"type",
"data"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "rsvp"
},
"channel": {
"type": "string",
"enum": [
"whatsapp",
"sms",
"email"
]
},
"contacts": {
"type": "object",
"properties": {
"whatsapp": {
"default": "",
"type": "string",
"maxLength": 200
},
"sms": {
"default": "",
"type": "string",
"maxLength": 200
},
"email": {
"default": "",
"type": "string",
"maxLength": 200
}
}
},
"deadline": {
"type": "string",
"maxLength": 40
},
"interactive": {
"default": true,
"type": "boolean"
}
},
"required": [
"id",
"type",
"channel",
"contacts"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "agenda"
},
"items": {
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"time": {
"type": "string",
"maxLength": 10
},
"what": {
"type": "string",
"maxLength": 200
}
},
"required": [
"time",
"what"
]
}
}
},
"required": [
"id",
"type",
"items"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "dress"
},
"text": {
"type": "string",
"maxLength": 200
},
"board": {
"default": [],
"maxItems": 12,
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "color"
},
"value": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "emoji"
},
"value": {
"type": "string",
"maxLength": 16
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "text"
},
"value": {
"type": "string",
"maxLength": 60
}
},
"required": [
"kind",
"value"
]
},
{
"type": "object",
"properties": {
"kind": {
"type": "string",
"const": "image"
},
"value": {
"type": "string",
"maxLength": 2048
}
},
"required": [
"kind",
"value"
]
}
]
}
}
},
"required": [
"id",
"type",
"text"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "gift"
},
"text": {
"type": "string",
"maxLength": 200
},
"iban": {
"type": "string",
"maxLength": 200
},
"href": {
"type": "string",
"maxLength": 2048
},
"interactive": {
"default": true,
"type": "boolean"
}
},
"required": [
"id",
"type",
"text"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "signature"
},
"text": {
"type": "string",
"maxLength": 200
}
},
"required": [
"id",
"type",
"text"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "divider"
},
"style": {
"default": "flourish",
"type": "string",
"enum": [
"flourish",
"stars",
"line"
]
}
},
"required": [
"id",
"type"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "music"
},
"href": {
"type": "string",
"maxLength": 2048
}
},
"required": [
"id",
"type",
"href"
]
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 32
},
"type": {
"type": "string",
"const": "stamp"
},
"stamp": {
"anyOf": [
{
"type": "string",
"enum": [
"love",
"rose",
"dove",
"castle",
"moon",
"cake",
"sunflower",
"shell",
"butterfly",
"star",
"key",
"rocket",
"disco",
"invader"
]
},
{
"type": "string",
"const": ""
}
]
}
},
"required": [
"id",
"type",
"stamp"
]
}
]
}
}
},
"required": [
"blocks"
],
"description": "Envelope slot blocks, partial like letter blocks (see catalog.envelope for each slot's block type)"
},
"nameFallback": {
"type": "string",
"maxLength": 60,
"description": "What {name} reads as without a guest (default: \"Dear Guest\" in the letter language)"
},
"guests": {
"default": [],
"description": "Each guest gets their own addressed link",
"maxItems": 1000,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"required": [
"name"
]
}
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_letter(id, editKey)
Read a letter you created (needs its editKey): its content, links, images, and the guests' RSVP answers (yes / maybe / no, plus who hasn't answered).
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"editKey": {
"type": "string"
}
},
"required": [
"id",
"editKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟡update_letter(id, editKey)
Change 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.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"editKey": {
"type": "string"
}
},
"required": [
"id",
"editKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🔴delete_letter(id, editKey)
Delete a letter for good (needs its editKey): its links stop working, and guest names, RSVP answers and images are erased.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"editKey": {
"type": "string"
}
},
"required": [
"id",
"editKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Comunidad
Evidencia