Magic Envelope
Create and send invitations and letters in a sealed envelope, one personal link per guest.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"invitations": {
"url": "https://magic-envelope.com/api/mcp"
}
}
}リモートエンドポイント
https://magic-envelope.com/api/mcpstreamable-httpできること
ツール一覧
ツール(5)
🟢get_catalog
Styles, occasion presets, block types (with examples), envelope slots, stamps and seal options. Call this first to compose a letter.
入力スキーマ
{
"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".
入力スキーマ
{
"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).
入力スキーマ
{
"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.
入力スキーマ
{
"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.
入力スキーマ
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"editKey": {
"type": "string"
}
},
"required": [
"id",
"editKey"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}コミュニティ
エビデンス