Magic Envelope MCP
An MCP server that allows AI agents to programmatically create, manage, and send personalized digital invitations and letters. It supports various styles, presets for occasions like weddings and birthdays, and features such as RSVP, maps, and QR codes, enabling agents to handle the entire invitation workflow without browser interaction.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://magic-envelope.com/api/mcpWhat its tools do
6 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Not annotated (6)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to magic-envelope.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Create and send personalized digital invitations
- Manage invitation details like date, place, and RSVP
- Retrieve and update invitation status and details
- Rate the application or service
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- com.magic-envelope/invitations 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 6 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Tools
6 advertised
get_catalog — Magic Envelope catalog
Styles, 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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}create_letter — Create a letter
Create 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". Block id is optional and generated when omitted. envelope.blocks is an object of slot → block (see catalog.envelope), not an array.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"lang": {
"enum": [
"es",
"en",
"fr",
"pt",
"it",
"de"
],
"type": "string",
"default": "en",
"description": "Language guests read the letter in"
},
"seal": {
"type": "string",
"maxLength": 16,
"description": "Wax seal mark: \"\" none, \"_\" plain, \"icon:<id>\", \"ini:ABC\", \"duo:A|J\""
},
"style": {
"enum": [
"parchment",
"midnight",
"romance",
"botanical",
"notebook",
"minimal",
"launch",
"groovy",
"deco",
"ivory",
"brutal",
"bubblegum",
"confetti",
"typewriter",
"pocket"
],
"type": "string",
"default": "parchment",
"description": "Look of the letter and envelope (see catalog.styles)"
},
"blocks": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"size": {
"enum": [
"md",
"lg",
"xl"
],
"type": "string",
"default": "xl"
},
"text": {
"type": "string",
"maxLength": 200
},
"type": {
"type": "string",
"const": "heading"
},
"italic": {
"type": "boolean",
"default": false
}
}
},
{
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"text": {
"type": "string",
"maxLength": 50000
},
"type": {
"type": "string",
"const": "text"
},
"align": {
"enum": [
"left",
"center"
],
"type": "string",
"default": "center"
},
"italic": {
"type": "boolean",
"default": false
}
}
},
{
"type": "object",
"required": [
"type",
"src"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"src": {
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "image"
},
"shape": {
"enum": [
"wide",
"square",
"round"
],
"type": "string",
"default": "wide"
}
}
},
{
"type": "object",
"required": [
"type",
"start"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"end": {
"type": "string",
"maxLength": 40
},
"type": {
"type": "string",
"const": "date"
},
"start": {
"type": "string",
"maxLength": 40
},
"title": {
"type": "string",
"maxLength": 200
},
"interactive": {
"type": "boolean",
"default": true
}
}
},
{
"type": "object",
"required": [
"type",
"name",
"address"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"name": {
"type": "string",
"maxLength": 200
},
"type": {
"type": "string",
"const": "place"
},
"address": {
"type": "string",
"maxLength": 200
},
"interactive": {
"type": "boolean",
"default": true
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"to": {
"type": "string",
"default": "",
"maxLength": 40
},
"type": {
"type": "string",
"const": "countdown"
}
}
},
{
"type": "object",
"required": [
"type",
"label",
"href"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"href": {
"type": "string",
"maxLength": 2048
},
"icon": {
"enum": [
"link",
"gift",
"music",
"video",
"map",
"camera"
],
"type": "string",
"default": "link"
},
"type": {
"type": "string",
"const": "link"
},
"label": {
"type": "string",
"maxLength": 200
},
"interactive": {
"type": "boolean",
"default": true
}
}
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"data": {
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "qr"
},
"caption": {
"type": "string",
"maxLength": 200
}
}
},
{
"type": "object",
"required": [
"type",
"channel",
"contacts"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"type": {
"type": "string",
"const": "rsvp"
},
"channel": {
"enum": [
"whatsapp",
"sms",
"email"
],
"type": "string"
},
"contacts": {
"type": "object",
"properties": {
"sms": {
"type": "string",
"default": "",
"maxLength": 200
},
"email": {
"type": "string",
"default": "",
"maxLength": 200
},
"whatsapp": {
"type": "string",
"default": "",
"maxLength": 200
}
}
},
"deadline": {
"type": "string",
"maxLength": 40
},
"interactive": {
"type": "boolean",
"default": true
}
}
},
{
"type": "object",
"required": [
"type",
"items"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"type": {
"type": "string",
"const": "agenda"
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"time",
"what"
],
"properties": {
"time": {
"type": "string",
"maxLength": 10
},
"what": {
"type": "string",
"maxLength": 200
}
}
},
"maxItems": 20
}
}
},
{
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"text": {
"type": "string",
"maxLength": 200
},
"type": {
"type": "string",
"const": "dress"
},
"board": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"type": "string",
"const": "color"
},
"value": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
}
},
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"type": "string",
"const": "emoji"
},
"value": {
"type": "string",
"maxLength": 16
}
}
},
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"type": "string",
"const": "text"
},
"value": {
"type": "string",
"maxLength": 60
}
}
},
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"type": "string",
"const": "image"
},
"value": {
"type": "string",
"maxLength": 2048
}
}
}
]
},
"default": [],
"maxItems": 12
}
}
},
{
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"href": {
"type": "string",
"maxLength": 2048
},
"iban": {
"type": "string",
"maxLength": 200
},
"text": {
"type": "string",
"maxLength": 200
},
"type": {
"type": "string",
"const": "gift"
},
"interactive": {
"type": "boolean",
"default": true
}
}
},
{
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"text": {
"type": "string",
"maxLength": 200
},
"type": {
"type": "string",
"const": "signature"
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"type": {
"type": "string",
"const": "divider"
},
"style": {
"enum": [
"flourish",
"stars",
"line"
],
"type": "string",
"default": "flourish"
}
}
},
{
"type": "object",
"required": [
"type",
"href"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"href": {
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "music"
}
}
},
{
"type": "object",
"required": [
"type",
"stamp"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"type": {
"type": "string",
"const": "stamp"
},
"stamp": {
"anyOf": [
{
"enum": [
"love",
"rose",
"dove",
"castle",
"moon",
"cake",
"sunflower",
"shell",
"butterfly",
"star",
"key",
"rocket",
"disco",
"invader"
],
"type": "string"
},
{
"type": "string",
"const": ""
}
]
}
}
}
]
},
"maxItems": 60,
"minItems": 1,
"description": "Letter blocks, top to bottom. Replaces all blocks. Use {name} in text to address each guest."
},
"custom": {
"type": "object",
"properties": {
"ink": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"body": {
"enum": [
"medieval",
"fell",
"playfair",
"kalam",
"inter",
"grotesk",
"monoton",
"righteous",
"pixel",
"vt323",
"cinzel",
"fredoka",
"courier",
"bebas"
],
"type": "string"
},
"head": {
"enum": [
"medieval",
"fell",
"playfair",
"kalam",
"inter",
"grotesk",
"monoton",
"righteous",
"pixel",
"vt323",
"cinzel",
"fredoka",
"courier",
"bebas"
],
"type": "string"
},
"frame": {
"enum": [
"none",
"rule",
"ornate"
],
"type": "string"
},
"paper": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"accent": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
},
"envelope": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
},
"description": "Overrides on top of the style: accent/paper/ink/envelope colours, head/body fonts"
},
"guests": {
"type": "array",
"items": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"maxLength": 80,
"minLength": 1
}
}
},
"default": [],
"maxItems": 1000,
"description": "Each guest gets their own addressed link"
},
"preset": {
"enum": [
"birthday",
"wedding",
"party",
"baby",
"dinner",
"graduation",
"event",
"letter"
],
"type": "string",
"description": "Start from an occasion preset (pre-filled blocks). On update it only changes the occasion."
},
"envelope": {
"type": "object",
"required": [
"blocks"
],
"properties": {
"blocks": {
"type": "object",
"propertyNames": {
"enum": [
"front-center",
"front-tl",
"front-tr",
"front-bl",
"back-center"
],
"type": "string"
},
"additionalProperties": {
"oneOf": [
{
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"size": {
"enum": [
"md",
"lg",
"xl"
],
"type": "string",
"default": "xl"
},
"text": {
"type": "string",
"maxLength": 200
},
"type": {
"type": "string",
"const": "heading"
},
"italic": {
"type": "boolean",
"default": false
}
}
},
{
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"text": {
"type": "string",
"maxLength": 50000
},
"type": {
"type": "string",
"const": "text"
},
"align": {
"enum": [
"left",
"center"
],
"type": "string",
"default": "center"
},
"italic": {
"type": "boolean",
"default": false
}
}
},
{
"type": "object",
"required": [
"type",
"src"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"src": {
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "image"
},
"shape": {
"enum": [
"wide",
"square",
"round"
],
"type": "string",
"default": "wide"
}
}
},
{
"type": "object",
"required": [
"type",
"start"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"end": {
"type": "string",
"maxLength": 40
},
"type": {
"type": "string",
"const": "date"
},
"start": {
"type": "string",
"maxLength": 40
},
"title": {
"type": "string",
"maxLength": 200
},
"interactive": {
"type": "boolean",
"default": true
}
}
},
{
"type": "object",
"required": [
"type",
"name",
"address"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"name": {
"type": "string",
"maxLength": 200
},
"type": {
"type": "string",
"const": "place"
},
"address": {
"type": "string",
"maxLength": 200
},
"interactive": {
"type": "boolean",
"default": true
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"to": {
"type": "string",
"default": "",
"maxLength": 40
},
"type": {
"type": "string",
"const": "countdown"
}
}
},
{
"type": "object",
"required": [
"type",
"label",
"href"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"href": {
"type": "string",
"maxLength": 2048
},
"icon": {
"enum": [
"link",
"gift",
"music",
"video",
"map",
"camera"
],
"type": "string",
"default": "link"
},
"type": {
"type": "string",
"const": "link"
},
"label": {
"type": "string",
"maxLength": 200
},
"interactive": {
"type": "boolean",
"default": true
}
}
},
{
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"data": {
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "qr"
},
"caption": {
"type": "string",
"maxLength": 200
}
}
},
{
"type": "object",
"required": [
"type",
"channel",
"contacts"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"type": {
"type": "string",
"const": "rsvp"
},
"channel": {
"enum": [
"whatsapp",
"sms",
"email"
],
"type": "string"
},
"contacts": {
"type": "object",
"properties": {
"sms": {
"type": "string",
"default": "",
"maxLength": 200
},
"email": {
"type": "string",
"default": "",
"maxLength": 200
},
"whatsapp": {
"type": "string",
"default": "",
"maxLength": 200
}
}
},
"deadline": {
"type": "string",
"maxLength": 40
},
"interactive": {
"type": "boolean",
"default": true
}
}
},
{
"type": "object",
"required": [
"type",
"items"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"type": {
"type": "string",
"const": "agenda"
},
"items": {
"type": "array",
"items": {
"type": "object",
"required": [
"time",
"what"
],
"properties": {
"time": {
"type": "string",
"maxLength": 10
},
"what": {
"type": "string",
"maxLength": 200
}
}
},
"maxItems": 20
}
}
},
{
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"text": {
"type": "string",
"maxLength": 200
},
"type": {
"type": "string",
"const": "dress"
},
"board": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"type": "string",
"const": "color"
},
"value": {
"type": "string",
"pattern": "^#[0-9a-f]{6}$"
}
}
},
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"type": "string",
"const": "emoji"
},
"value": {
"type": "string",
"maxLength": 16
}
}
},
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"type": "string",
"const": "text"
},
"value": {
"type": "string",
"maxLength": 60
}
}
},
{
"type": "object",
"required": [
"kind",
"value"
],
"properties": {
"kind": {
"type": "string",
"const": "image"
},
"value": {
"type": "string",
"maxLength": 2048
}
}
}
]
},
"default": [],
"maxItems": 12
}
}
},
{
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"href": {
"type": "string",
"maxLength": 2048
},
"iban": {
"type": "string",
"maxLength": 200
},
"text": {
"type": "string",
"maxLength": 200
},
"type": {
"type": "string",
"const": "gift"
},
"interactive": {
"type": "boolean",
"default": true
}
}
},
{
"type": "object",
"required": [
"type",
"text"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"text": {
"type": "string",
"maxLength": 200
},
"type": {
"type": "string",
"const": "signature"
}
}
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"type": {
"type": "string",
"const": "divider"
},
"style": {
"enum": [
"flourish",
"stars",
"line"
],
"type": "string",
"default": "flourish"
}
}
},
{
"type": "object",
"required": [
"type",
"href"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"href": {
"type": "string",
"maxLength": 2048
},
"type": {
"type": "string",
"const": "music"
}
}
},
{
"type": "object",
"required": [
"type",
"stamp"
],
"properties": {
"id": {
"type": "string",
"maxLength": 32,
"minLength": 1,
"description": "Omitted ids are generated by the server."
},
"type": {
"type": "string",
"const": "stamp"
},
"stamp": {
"anyOf": [
{
"enum": [
"love",
"rose",
"dove",
"castle",
"moon",
"cake",
"sunflower",
"shell",
"butterfly",
"star",
"key",
"rocket",
"disco",
"invader"
],
"type": "string"
},
{
"type": "string",
"const": ""
}
]
}
}
}
]
}
}
},
"description": "Envelope. blocks is an object of slot → block (front-center, front-tl, front-tr, front-bl, back-center), not an array. See catalog.envelope."
},
"sealShape": {
"enum": [
"scallop",
"round",
"flower",
"octagon"
],
"type": "string"
},
"nameFallback": {
"type": "string",
"maxLength": 60,
"description": "What {name} reads as without a guest (default: \"Dear Guest\" in the letter language)"
}
}
}get_letter — Read a letter
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",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id",
"editKey"
],
"properties": {
"id": {
"type": "string"
},
"editKey": {
"type": "string"
}
}
}update_letter — Update a letter
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",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id",
"editKey"
],
"properties": {
"id": {
"type": "string"
},
"editKey": {
"type": "string"
}
},
"additionalProperties": {}
}delete_letter — Delete a letter
Delete a letter for good (needs its editKey): its links stop working, and guest names, RSVP answers, images and its app rating are erased.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id",
"editKey"
],
"properties": {
"id": {
"type": "string"
},
"editKey": {
"type": "string"
}
}
}rate_app — Rate Magic Envelope
Only 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.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id",
"editKey",
"stars"
],
"properties": {
"id": {
"type": "string"
},
"stars": {
"type": "integer",
"maximum": 5,
"minimum": 1
},
"editKey": {
"type": "string"
}
}
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 441 ms
- 95th percentile latency
- 441 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 441 ms · metadata changed · 6 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http magic-envelope-mcp https://magic-envelope.com/api/mcpCodex
codex mcp add magic-envelope-mcp --url https://magic-envelope.com/api/mcpCursor
{
"mcpServers": {
"magic-envelope-mcp": {
"url": "https://magic-envelope.com/api/mcp"
}
}
}Cline
{
"mcpServers": {
"magic-envelope-mcp": {
"type": "streamableHttp",
"url": "https://magic-envelope.com/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"magic-envelope-mcp": {
"type": "http",
"url": "https://magic-envelope.com/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http magic-envelope-mcp https://magic-envelope.com/api/mcpClaude Desktop
https://magic-envelope.com/api/mcpWindsurf
{
"mcpServers": {
"magic-envelope-mcp": {
"serverUrl": "https://magic-envelope.com/api/mcp"
}
}
}Let your agent find its tools
Find servers like Magic Envelope MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other productivity and knowledge servers
Do you run Magic Envelope MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.