Zovo Envelope Printer MCP
Prints addresses on envelopes at home by generating PDFs at real envelope sizes. Supports pasted lists, CSV/Excel uploads, and international formatting rules for various envelope types.
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://envelope-printer.zovo.one/mcpWhat its tools do
2 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Read-only (2)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Print addresses on envelopes from a list or spreadsheet
- Generate PDFs for specific envelope sizes like #10 or A7
- Format international addresses according to country rules
Source and maintenance
Protocol and capabilities
- Server
- envelope-printer 1.0.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 2 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
2 advertised
generate_envelope_pdf — Print addresses on envelopes
Use this when the user wants to print addresses on envelopes ("print envelopes with addresses", "print envelopes from excel", "#10 envelope template", "a7 envelope template", "address wedding invitation envelopes", "print address on envelope"). First convert any pasted text or image of addresses into recipients objects (name, address1, address2, city, state, zip, country). Makes a PDF with one page per envelope at the real envelope size (#10 default, #9, #6 3/4, Monarch, A2, A6, A7, A9, 6x9, 9x12, 10x13, DL, C6, C5, C4 or custom), the return address in the top-left corner and the delivery address inside the USPS read area, in the destination country's line order. Each address gets an envelope; problems (missing ZIP, unknown state, wrapped lines) are listed. Also a CSV. Does not buy postage, print stamps or barcodes, verify addresses, or print label sheets.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"feed": {
"anyOf": [
{
"type": "string",
"maxLength": 20
},
{
"type": "null"
}
],
"description": "With paper letter or a4: where the envelope sits in the tray, center (default), left or right."
},
"file": {
"type": "object",
"required": [
"download_url",
"file_id"
],
"properties": {
"file_id": {
"type": "string",
"description": "ChatGPT file id, e.g. file_abc123."
},
"file_name": {
"type": "string",
"description": "Original file name if known, e.g. statement.pdf."
},
"mime_type": {
"type": "string",
"description": "Media type if known, e.g. application/pdf."
},
"download_url": {
"type": "string",
"description": "Temporary download link for the file, supplied by ChatGPT."
}
},
"description": "Optional uploaded address list: CSV, TSV or Excel .xlsx with a header row (Name, Address, City, State, ZIP, Country), e.g. wedding guests.xlsx. Google Contacts, Outlook, Etsy and Shopify exports work."
},
"sort": {
"anyOf": [
{
"type": "string",
"maxLength": 20
},
{
"type": "null"
}
],
"description": "Order of the envelopes: none (list order, default), zip, name or country."
},
"paper": {
"anyOf": [
{
"type": "string",
"maxLength": 30
},
{
"type": "null"
}
],
"description": "envelope (default: each PDF page is the envelope size) or letter / a4 (the envelope is drawn turned on a full sheet, for printers that cannot take a custom size)."
},
"sheet": {
"anyOf": [
{
"type": "string",
"maxLength": 60
},
{
"type": "null"
}
],
"description": "Excel sheet to read, e.g. Guests. Default: the first sheet with data."
},
"width": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 20
}
]
},
{
"type": "null"
}
],
"description": "Custom envelope width with height, e.g. 9.5 or \"229 mm\". Numbers are inches unless above 30 (then mm)."
},
"height": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 20
}
]
},
{
"type": "null"
}
],
"description": "Custom envelope height with width, e.g. 4.125 or \"162 mm\"."
},
"columns": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "Column mapping when headings are unusual, field to heading, e.g. {\"name\":\"Guest\",\"address1\":\"Mailing Street\",\"zip\":\"Postcode\"}."
},
"outline": {
"anyOf": [
{
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 10
}
]
},
{
"type": "null"
}
],
"description": "Draw the envelope edge on every page (for checking on plain paper). Default false."
},
"addresses": {
"anyOf": [
{
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"zip": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"maxLength": 20
},
{
"type": "number"
}
]
},
{
"type": "null"
}
],
"description": "ZIP or postal code, e.g. 62704, M5V 2T6 or 10115."
},
"city": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "City or town, e.g. Springfield."
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Recipient name, e.g. Jane Smith or Mr. and Mrs. Garcia."
},
"lines": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 10
},
{
"type": "null"
}
],
"description": "The address as printed lines instead of fields, e.g. [\"Jane Smith\", \"123 Main St\", \"Springfield, IL 62704\"]."
},
"state": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "State, province or region, e.g. IL, Ontario or Bavaria."
},
"company": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Company or organization line, e.g. Acme Corp."
},
"country": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Country, e.g. Canada or DE. Leave empty for addresses in your own country."
},
"address1": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Street address, e.g. 123 Main St. A whole one-line US address is split automatically."
},
"address2": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Apartment, suite or unit, e.g. Apt 4B."
}
},
"additionalProperties": {}
},
{
"type": "string",
"maxLength": 1200
}
]
},
"maxItems": 5000
},
{
"type": "string",
"maxLength": 200000
}
]
},
{
"type": "null"
}
],
"description": "Same as recipients (either name works)."
},
"bold_name": {
"anyOf": [
{
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 10
}
]
},
{
"type": "null"
}
],
"description": "Print the recipient's name in bold, e.g. true. Default false."
},
"font_size": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 10
}
]
},
{
"type": "null"
}
],
"description": "Address text size in points, 8 to 24, e.g. 12. Default 12 (11 on narrow envelopes). Long lines shrink to fit and wrap; nothing is cut off."
},
"test_page": {
"anyOf": [
{
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 10
}
]
},
{
"type": "null"
}
],
"description": "Add a first page with the envelope outline and sample text, to print on plain paper and hold against an envelope. Default true."
},
"uppercase": {
"anyOf": [
{
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 10
}
]
},
{
"type": "null"
}
],
"description": "USPS style: all capitals without periods or commas, e.g. true. Default false."
},
"recipients": {
"anyOf": [
{
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"zip": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"maxLength": 20
},
{
"type": "number"
}
]
},
{
"type": "null"
}
],
"description": "ZIP or postal code, e.g. 62704, M5V 2T6 or 10115."
},
"city": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "City or town, e.g. Springfield."
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Recipient name, e.g. Jane Smith or Mr. and Mrs. Garcia."
},
"lines": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 10
},
{
"type": "null"
}
],
"description": "The address as printed lines instead of fields, e.g. [\"Jane Smith\", \"123 Main St\", \"Springfield, IL 62704\"]."
},
"state": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "State, province or region, e.g. IL, Ontario or Bavaria."
},
"company": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Company or organization line, e.g. Acme Corp."
},
"country": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Country, e.g. Canada or DE. Leave empty for addresses in your own country."
},
"address1": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Street address, e.g. 123 Main St. A whole one-line US address is split automatically."
},
"address2": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Apartment, suite or unit, e.g. Apt 4B."
}
},
"additionalProperties": {}
},
{
"type": "string",
"maxLength": 1200
},
{
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 10
}
]
},
"maxItems": 5000
},
{
"type": "object",
"properties": {
"zip": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"maxLength": 20
},
{
"type": "number"
}
]
},
{
"type": "null"
}
],
"description": "ZIP or postal code, e.g. 62704, M5V 2T6 or 10115."
},
"city": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "City or town, e.g. Springfield."
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Recipient name, e.g. Jane Smith or Mr. and Mrs. Garcia."
},
"lines": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 10
},
{
"type": "null"
}
],
"description": "The address as printed lines instead of fields, e.g. [\"Jane Smith\", \"123 Main St\", \"Springfield, IL 62704\"]."
},
"state": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "State, province or region, e.g. IL, Ontario or Bavaria."
},
"company": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Company or organization line, e.g. Acme Corp."
},
"country": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Country, e.g. Canada or DE. Leave empty for addresses in your own country."
},
"address1": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Street address, e.g. 123 Main St. A whole one-line US address is split automatically."
},
"address2": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Apartment, suite or unit, e.g. Apt 4B."
}
},
"additionalProperties": {}
},
{
"type": "string",
"maxLength": 200000
}
]
},
{
"type": "null"
}
],
"description": "The addresses, one envelope each. Convert what the user pasted or showed in an image into objects first, e.g. [{\"name\":\"Jane Smith\",\"address1\":\"123 Main St\",\"address2\":\"Apt 4B\",\"city\":\"Springfield\",\"state\":\"IL\",\"zip\":\"62704\"}, {\"name\":\"Hans Müller\",\"address1\":\"Hauptstr. 5\",\"zip\":\"10115\",\"city\":\"Berlin\",\"country\":\"Germany\"}]. Text also works: one string per address with lines separated by \\n, or the whole pasted list as one string with a blank line between addresses, or pasted CSV with a header row."
},
"home_country": {
"anyOf": [
{
"type": "string",
"maxLength": 60
},
{
"type": "null"
}
],
"description": "Country you mail from; the country line is printed only for other countries, e.g. \"UK\". Default: the return address's country, else United States."
},
"envelope_size": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"maxLength": 40
},
{
"type": "number"
}
]
},
{
"type": "null"
}
],
"description": "Envelope size: 10, 9, 6-3/4, monarch, a2, a6, a7, a9, 6x9, 9x12, 10x13, dl, c6, c5, c4 or a custom size like \"5.5 x 8.5 in\" or \"114 x 229 mm\". Synonyms work: \"business\" = 10, \"5x7\" or \"invitation\" = a7, \"rsvp\" = a2. Default 10."
},
"return_address": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 8
},
{
"type": "object",
"properties": {
"zip": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"maxLength": 20
},
{
"type": "number"
}
]
},
{
"type": "null"
}
],
"description": "ZIP or postal code, e.g. 62704, M5V 2T6 or 10115."
},
"city": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "City or town, e.g. Springfield."
},
"name": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Recipient name, e.g. Jane Smith or Mr. and Mrs. Garcia."
},
"lines": {
"anyOf": [
{
"type": "array",
"items": {
"type": "string",
"maxLength": 200
},
"maxItems": 10
},
{
"type": "null"
}
],
"description": "The address as printed lines instead of fields, e.g. [\"Jane Smith\", \"123 Main St\", \"Springfield, IL 62704\"]."
},
"state": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "State, province or region, e.g. IL, Ontario or Bavaria."
},
"company": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Company or organization line, e.g. Acme Corp."
},
"country": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Country, e.g. Canada or DE. Leave empty for addresses in your own country."
},
"address1": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Street address, e.g. 123 Main St. A whole one-line US address is split automatically."
},
"address2": {
"anyOf": [
{
"type": "string",
"maxLength": 600
},
{
"type": "null"
}
],
"description": "Apartment, suite or unit, e.g. Apt 4B."
}
},
"additionalProperties": {}
}
]
},
{
"type": "null"
}
],
"description": "Sender address for the top-left corner, as text with \\n or commas between lines, a list of lines, or an object, e.g. \"The Garcia Family\\n42 Oak Lane\\nPortland, OR 97205\". Leave out for no return address."
},
"include_home_country": {
"anyOf": [
{
"anyOf": [
{
"type": "boolean"
},
{
"type": "string",
"maxLength": 10
}
]
},
{
"type": "null"
}
],
"description": "Also print the country line for addresses in your own country when a country is given. Default false."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"envelope",
"paper",
"feed",
"envelopes",
"pdf_pages",
"test_page",
"return_address",
"home_country",
"font_size_pt",
"smallest_font_pt",
"countries",
"issues_count",
"envelopes_with_issues",
"printed_as_given",
"duplicates",
"issues",
"notes",
"assumed",
"usps_note",
"print_instructions",
"file_name",
"preview",
"downloads",
"links_expire_minutes"
],
"properties": {
"feed": {
"type": [
"string",
"null"
]
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
},
"paper": {
"type": "string"
},
"issues": {
"type": "array",
"items": {
"type": "string"
}
},
"assumed": {
"type": "array",
"items": {
"type": "string"
}
},
"preview": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"envelope": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"countries": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"downloads": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"envelopes": {
"type": "number"
},
"file_name": {
"type": [
"string",
"null"
]
},
"pdf_pages": {
"type": "number"
},
"test_page": {
"type": "boolean"
},
"usps_note": {
"type": "string"
},
"duplicates": {
"type": "number"
},
"font_size_pt": {
"type": "number"
},
"home_country": {
"type": "string"
},
"issues_count": {
"type": "number"
},
"preview_count": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"return_address": {
"type": "array",
"items": {
"type": "string"
}
},
"printed_as_given": {
"type": "number"
},
"smallest_font_pt": {
"type": "number"
},
"print_instructions": {
"type": "string"
},
"links_expire_minutes": {
"type": "number"
},
"envelopes_with_issues": {
"type": "number"
}
},
"additionalProperties": false
}{
"title": "Print addresses on envelopes",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}find_envelope_size — Find envelope size
Use this when the user asks what size envelope to use or how big an envelope is ("what size envelope for a 5x7 card", "#10 envelope size", "a7 envelope size", "envelope for a letter folded in thirds", "dl envelope size in inches"). Give a card, photo or folded sheet size and it lists the envelopes it fits with at least 1/8 in to spare, smallest first; give an envelope name and it returns its size in inches and mm, what it is used for and its USPS mail shape (letter, nonmachinable or large envelope). Does not print anything (use generate_envelope_pdf) and does not give postage prices.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"query": {
"anyOf": [
{
"anyOf": [
{
"type": "string",
"maxLength": 80
},
{
"type": "number"
}
]
},
{
"type": "null"
}
],
"description": "A card or sheet size, an envelope name, or a use, e.g. \"5x7 card\", \"letter folded in thirds\", \"A4 folded in half\", \"#10\", \"A7\" or \"wedding invitation\"."
},
"width": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 20
}
]
},
{
"type": "null"
}
],
"description": "Width of the card or insert, e.g. 5 or \"127 mm\"."
},
"height": {
"anyOf": [
{
"anyOf": [
{
"type": "number"
},
{
"type": "string",
"maxLength": 20
}
]
},
{
"type": "null"
}
],
"description": "Height of the card or insert, e.g. 7."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"query",
"insert",
"matches",
"count"
],
"properties": {
"count": {
"type": "number"
},
"query": {
"type": "string"
},
"insert": {
"type": [
"string",
"null"
]
},
"matches": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"additionalProperties": false
}{
"title": "Find envelope size",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
envelope-printer-widget — Zovo Envelope Printer view
Interactive view for Zovo Envelope Printer.
ui://widget/envelope-printer-v1-1.0.0-5b7526195970d68f08934f98487e00d3e847852431189ceb679e37054c1d3b9c.htmlenvelope-printer-widget-legacy — Zovo Envelope Printer view (previous versions)
ui://widget/envelope-printer-{version}.html30-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
- 810 ms
- 95th percentile latency
- 810 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 810 ms · metadata changed · 2 tool(s), 1 resource(s), 1 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http zovo-envelope-printer-mcp https://envelope-printer.zovo.one/mcpCodex
codex mcp add zovo-envelope-printer-mcp --url https://envelope-printer.zovo.one/mcpCursor
{
"mcpServers": {
"zovo-envelope-printer-mcp": {
"url": "https://envelope-printer.zovo.one/mcp"
}
}
}Cline
{
"mcpServers": {
"zovo-envelope-printer-mcp": {
"type": "streamableHttp",
"url": "https://envelope-printer.zovo.one/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"zovo-envelope-printer-mcp": {
"type": "http",
"url": "https://envelope-printer.zovo.one/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http zovo-envelope-printer-mcp https://envelope-printer.zovo.one/mcpClaude Desktop
https://envelope-printer.zovo.one/mcpWindsurf
{
"mcpServers": {
"zovo-envelope-printer-mcp": {
"serverUrl": "https://envelope-printer.zovo.one/mcp"
}
}
}Let your agent find its tools
Find servers like Zovo Envelope Printer MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.