Servidor MCP

Sendpaper

io.github.ryan-tish/sendpaper
Comercio y retail Público y accesible MCP 2025-11-25

Qué hace este MCP

Creates, prices, pays for, cancels, and tracks printed postcard and letter orders mailed within the United States.

cancel_order
Cancel an unpaid order
Cancel an order that has not been paid yet. Paid orders can be cancelled by emailing support before they are printed.
Destructivo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['order_id'], 'properties': {'order_id': {'type': 'string'}}}
create_letter
Create a letter
Create a printed letter order (up to 3 pages, 8.5x11, mailed in a #10 envelope) and get a payment link. Mails only after the user pays.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['to', 'from', 'content'], 'properties': {'to': {'type': 'object', 'required': ['name', 'line1', 'city', 'state', 'zip'], 'properties': {'zip': {'type': 'string', 'pattern': '^\\d{5}(-\\d{4})?$'}, 'city': {'type': 'string', 'maxLength': 40, 'minLength': 2}, 'name': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': 'Recipient or sender full name'}, 'line1': {'type': 'string', 'maxLength': 64, 'minLength': 3, 'description': 'Street address'}, 'line2': {'type': 'string', 'maxLength': 64, 'description': 'Apartment, suite, unit'}, 'state': {'type': 'string'}, 'company': {'type': 'string', 'maxLength': 60}}}, 'from': {'type': 'object', 'required': ['name', 'line1', 'city', 'state', 'zip'], 'properties': {'zip': {'type': 'string', 'pattern': '^\\d{5}(-\\d{4})?$'}, 'city': {'type': 'string', 'maxLength': 40, 'minLength': 2}, 'name': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': 'Recipient or sender full name'}, 'line1': {'type': 'string', 'maxLength': 64, 'minLength': 3, 'description': 'Street address'}, 'line2': {'type': 'string', 'maxLength': 64, 'description': 'Apartment, suite, unit'}, 'state': {'type': 'string'}, 'company': {'type': 'string', 'maxLength': 60}}, 'description': 'Return address; printed on the mail piece'}, 'content': {'type': 'object', 'required': ['body'], 'properties': {'body': {'type': 'string', 'maxLength': 9000, 'minLength': 1, 'description': 'Full letter text. Plain text; blank lines separate paragraphs.'}, 'font': {'enum': ['serif', 'sans'], 'type': 'string', 'default': 'serif'}}}, 'customer_email': {'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Where to send the receipt and status updates'}, 'idempotency_key': {'type': 'string', 'maxLength': 120}}}
create_postcard
Create a postcard
Create a postcard order (4x6 or 6x9) and get a payment link. The front is an image URL or a big headline; the back carries the message and addresses. Mails only after the user pays.
Acceso externo
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['to', 'from', 'content'], 'properties': {'to': {'type': 'object', 'required': ['name', 'line1', 'city', 'state', 'zip'], 'properties': {'zip': {'type': 'string', 'pattern': '^\\d{5}(-\\d{4})?$'}, 'city': {'type': 'string', 'maxLength': 40, 'minLength': 2}, 'name': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': 'Recipient or sender full name'}, 'line1': {'type': 'string', 'maxLength': 64, 'minLength': 3, 'description': 'Street address'}, 'line2': {'type': 'string', 'maxLength': 64, 'description': 'Apartment, suite, unit'}, 'state': {'type': 'string'}, 'company': {'type': 'string', 'maxLength': 60}}}, 'from': {'type': 'object', 'required': ['name', 'line1', 'city', 'state', 'zip'], 'properties': {'zip': {'type': 'string', 'pattern': '^\\d{5}(-\\d{4})?$'}, 'city': {'type': 'string', 'maxLength': 40, 'minLength': 2}, 'name': {'type': 'string', 'maxLength': 60, 'minLength': 1, 'description': 'Recipient or sender full name'}, 'line1': {'type': 'string', 'maxLength': 64, 'minLength': 3, 'description': 'Street address'}, 'line2': {'type': 'string', 'maxLength': 64, 'description': 'Apartment, suite, unit'}, 'state': {'type': 'string'}, 'company': {'type': 'string', 'maxLength': 60}}, 'description': 'Return address; printed on the mail piece'}, 'size': {'enum': ['4x6', '6x9'], 'type': 'string', 'default': '4x6'}, 'content': {'type': 'object', 'required': ['message'], 'properties': {'message': {'type': 'string', 'maxLength': 600, 'minLength': 1, 'description': 'Handwritten-style message on the back'}, 'front_theme': {'enum': ['ink', 'sky', 'sunset', 'forest'], 'type': 'string', 'default': 'ink', 'description': 'Color theme for a text-only front'}, 'front_headline': {'type': 'string', 'maxLength': 60, 'description': "Big text for the front if there is no image, e.g. 'Happy birthday, Sam!'"}, 'front_image_url': {'type': 'string', 'maxLength': 2000, 'description': 'https URL of a photo or design for the front (JPG or PNG)'}}}, 'customer_email': {'type': 'string', 'format': 'email', 'pattern': "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$", 'description': 'Where to send the receipt and status updates'}, 'idempotency_key': {'type': 'string', 'maxLength': 120}}}
get_order
Check an order
Get the status of a postcard or letter order by id (ord_...).
Solo lectura
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['order_id'], 'properties': {'order_id': {'type': 'string'}}}
get_pricing
Get prices
List mail products and prices (USD, printing + USPS First-Class postage included, US addresses only).
Solo lectura
Esquema de entrada
{'type': 'object', 'properties': {}}
pay_order
Pay for an order
Pay for an unpaid order with a Stripe shared payment token (spt_…) the user approved, scoped to at least the order amount in USD. On success the order is paid and goes to print. Use only after the user approved the purchase.
Acceso externo Idempotente
Esquema de entrada
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['order_id', 'shared_payment_token'], 'properties': {'order_id': {'type': 'string'}, 'shared_payment_token': {'type': 'string', 'description': 'Stripe shared payment token, spt_…'}}}
Añadido
cancel_order
4 de October de 2026 a las 02:40
Añadido
get_order
4 de October de 2026 a las 02:40
Añadido
pay_order
4 de October de 2026 a las 02:40
Añadido
create_letter
4 de October de 2026 a las 02:40
Añadido
create_postcard
4 de October de 2026 a las 02:40
Añadido
get_pricing
4 de October de 2026 a las 02:40