Sendpaper
Your agent sends real postcards and letters. You approve; we print and mail.
我该使用它吗
质量与安全性
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"sendpaper": {
"url": "https://sendmypaper.com/mcp"
}
}
}远程端点
https://sendmypaper.com/mcpstreamable-http它能做什么
工具清单
工具(6)
🟢get_pricing
List mail products and prices (USD, printing + USPS First-Class postage included, US addresses only).
输入模式
{
"type": "object",
"properties": {}
}输出模式
{
"type": "object",
"properties": {
"products": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"cents": {
"type": "number"
},
"price": {
"type": "string",
"description": "Display price, e.g. $2.99"
}
},
"required": [
"id",
"name",
"cents",
"price"
],
"additionalProperties": {}
}
},
"payment": {
"type": "object",
"properties": {
"options": {
"type": "array",
"items": {
"type": "string"
}
},
"currency": {
"type": "string"
},
"stripe_network_id": {
"description": "Scope Stripe shared payment tokens to this network id",
"type": "string"
}
},
"required": [
"options",
"currency"
],
"additionalProperties": {}
},
"first_order_discount": {
"type": "object",
"properties": {
"amount_cents": {
"type": "number"
},
"description": {
"type": "string"
}
},
"required": [
"amount_cents",
"description"
],
"additionalProperties": false
},
"letter_photo": {
"type": "object",
"properties": {
"amount_cents": {
"type": "number"
},
"description": {
"type": "string"
}
},
"required": [
"amount_cents",
"description"
],
"additionalProperties": false,
"description": "Surcharge for a letter with a photo (prints in color)"
}
},
"required": [
"products",
"payment",
"first_order_discount",
"letter_photo"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟡create_postcard(size, to, from, customer_email, idempotency_key, ...)
Create a postcard order (4x6, 6x9 or 6x11) 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.
输入模式
{
"type": "object",
"properties": {
"size": {
"default": "4x6",
"description": "Postcard size: 4x6, 6x9 or 6x11 (see get_pricing for prices)",
"type": "string",
"enum": [
"4x6",
"6x9",
"6x11"
]
},
"to": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Recipient or sender full name"
},
"company": {
"description": "Company name, printed under the person's name",
"type": "string",
"maxLength": 60
},
"line1": {
"type": "string",
"minLength": 3,
"maxLength": 64,
"description": "Street address"
},
"line2": {
"description": "Apartment, suite, unit",
"type": "string",
"maxLength": 64
},
"city": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"description": "City"
},
"state": {
"description": "Two-letter US state code, e.g. NY",
"type": "string"
},
"zip": {
"type": "string",
"pattern": "^\\d{5}(-\\d{4})?$",
"description": "5-digit US ZIP code, or ZIP+4"
}
},
"required": [
"name",
"line1",
"city",
"state",
"zip"
],
"description": "Recipient's US mailing address"
},
"from": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Recipient or sender full name"
},
"company": {
"description": "Company name, printed under the person's name",
"type": "string",
"maxLength": 60
},
"line1": {
"type": "string",
"minLength": 3,
"maxLength": 64,
"description": "Street address"
},
"line2": {
"description": "Apartment, suite, unit",
"type": "string",
"maxLength": 64
},
"city": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"description": "City"
},
"state": {
"description": "Two-letter US state code, e.g. NY",
"type": "string"
},
"zip": {
"type": "string",
"pattern": "^\\d{5}(-\\d{4})?$",
"description": "5-digit US ZIP code, or ZIP+4"
}
},
"required": [
"name",
"line1",
"city",
"state",
"zip"
],
"description": "Return address; printed on the mail piece"
},
"customer_email": {
"description": "Where to send the receipt and status updates",
"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,}$"
},
"idempotency_key": {
"description": "Any unique string; retrying with the same key returns the original order instead of creating a duplicate",
"type": "string",
"maxLength": 120
},
"content": {
"type": "object",
"properties": {
"front_image_url": {
"description": "https URL of a photo or design for the front (JPG or PNG)",
"type": "string",
"maxLength": 2000
},
"front_headline": {
"description": "Big text for the front if there is no image, e.g. 'Happy birthday, Sam!'",
"type": "string",
"maxLength": 60
},
"front_theme": {
"default": "ink",
"description": "Color theme for a text-only front",
"type": "string",
"enum": [
"ink",
"sky",
"sunset",
"forest"
]
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 600,
"description": "Handwritten-style message on the back"
}
},
"required": [
"message"
],
"description": "Front (an image URL or a headline) and the message on the back"
}
},
"required": [
"to",
"from",
"content"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Order id, ord_…"
},
"object": {
"type": "string",
"enum": [
"postcard",
"letter"
]
},
"product": {
"type": "string",
"description": "Product id, e.g. postcard_4x6 or letter_certified"
},
"product_name": {
"type": "string"
},
"certified": {
"type": "string",
"description": "none, certified or certified_return_receipt"
},
"status": {
"type": "string",
"description": "awaiting_payment, paid, printing, mailed, cancelled or refunded"
},
"status_detail": {
"type": "string",
"description": "Plain-English status to show the user"
},
"price": {
"type": "object",
"properties": {
"amount_cents": {
"type": "number"
},
"currency": {
"type": "string"
},
"display": {
"type": "string"
}
},
"required": [
"amount_cents",
"currency",
"display"
],
"additionalProperties": false
},
"checkout_url": {
"description": "Where the user pays; null once paid or cancelled",
"type": [
"string",
"null"
]
},
"order_url": {
"type": "string",
"description": "Order status page"
},
"preview_url": {
"type": "string",
"description": "Exact print preview"
},
"tracking": {
"anyOf": [
{
"type": "object",
"properties": {
"number": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"number",
"url"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "USPS tracking, for Certified Mail once printed"
},
"discount": {
"anyOf": [
{
"type": "object",
"properties": {
"amount_cents": {
"type": "number"
},
"display": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"amount_cents",
"display",
"reason"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "First-order discount, already taken off price; null when none applies"
}
},
"required": [
"id",
"object",
"product",
"product_name",
"certified",
"status",
"status_detail",
"price",
"checkout_url",
"order_url",
"preview_url",
"tracking",
"discount"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟡create_letter(to, from, customer_email, idempotency_key, content, ...)
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. Set certified to "certified" ($14.99) for USPS Certified Mail with tracking and proof of delivery, or "certified_return_receipt" ($19.99) to add the recipient's signature; use these when the user needs proof (landlord notices, legal or tax replies, disputes). Regular letters are $4.99.
输入模式
{
"type": "object",
"properties": {
"to": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Recipient or sender full name"
},
"company": {
"description": "Company name, printed under the person's name",
"type": "string",
"maxLength": 60
},
"line1": {
"type": "string",
"minLength": 3,
"maxLength": 64,
"description": "Street address"
},
"line2": {
"description": "Apartment, suite, unit",
"type": "string",
"maxLength": 64
},
"city": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"description": "City"
},
"state": {
"description": "Two-letter US state code, e.g. NY",
"type": "string"
},
"zip": {
"type": "string",
"pattern": "^\\d{5}(-\\d{4})?$",
"description": "5-digit US ZIP code, or ZIP+4"
}
},
"required": [
"name",
"line1",
"city",
"state",
"zip"
],
"description": "Recipient's US mailing address"
},
"from": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 60,
"description": "Recipient or sender full name"
},
"company": {
"description": "Company name, printed under the person's name",
"type": "string",
"maxLength": 60
},
"line1": {
"type": "string",
"minLength": 3,
"maxLength": 64,
"description": "Street address"
},
"line2": {
"description": "Apartment, suite, unit",
"type": "string",
"maxLength": 64
},
"city": {
"type": "string",
"minLength": 2,
"maxLength": 40,
"description": "City"
},
"state": {
"description": "Two-letter US state code, e.g. NY",
"type": "string"
},
"zip": {
"type": "string",
"pattern": "^\\d{5}(-\\d{4})?$",
"description": "5-digit US ZIP code, or ZIP+4"
}
},
"required": [
"name",
"line1",
"city",
"state",
"zip"
],
"description": "Return address; printed on the mail piece"
},
"customer_email": {
"description": "Where to send the receipt and status updates",
"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,}$"
},
"idempotency_key": {
"description": "Any unique string; retrying with the same key returns the original order instead of creating a duplicate",
"type": "string",
"maxLength": 120
},
"content": {
"type": "object",
"properties": {
"body": {
"type": "string",
"minLength": 1,
"maxLength": 9000,
"description": "Full letter text. Plain text; blank lines separate paragraphs."
},
"font": {
"default": "serif",
"description": "Typeface for the letter body",
"type": "string",
"enum": [
"serif",
"sans"
]
},
"image_url": {
"description": "Optional photo printed at the top of the letter (https JPG or PNG). A letter with a photo prints in color, for a small surcharge (see get_pricing).",
"type": "string",
"maxLength": 2000
}
},
"required": [
"body"
],
"description": "The letter text and font"
},
"certified": {
"default": "none",
"description": "USPS Certified Mail. \"certified\" ($14.99): tracking number and proof of mailing and delivery. \"certified_return_receipt\" ($19.99): adds the recipient's signature as proof of delivery, which landlords, courts and agencies often require. \"none\" ($4.99): regular First-Class.",
"type": "string",
"enum": [
"none",
"certified",
"certified_return_receipt"
]
}
},
"required": [
"to",
"from",
"content"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Order id, ord_…"
},
"object": {
"type": "string",
"enum": [
"postcard",
"letter"
]
},
"product": {
"type": "string",
"description": "Product id, e.g. postcard_4x6 or letter_certified"
},
"product_name": {
"type": "string"
},
"certified": {
"type": "string",
"description": "none, certified or certified_return_receipt"
},
"status": {
"type": "string",
"description": "awaiting_payment, paid, printing, mailed, cancelled or refunded"
},
"status_detail": {
"type": "string",
"description": "Plain-English status to show the user"
},
"price": {
"type": "object",
"properties": {
"amount_cents": {
"type": "number"
},
"currency": {
"type": "string"
},
"display": {
"type": "string"
}
},
"required": [
"amount_cents",
"currency",
"display"
],
"additionalProperties": false
},
"checkout_url": {
"description": "Where the user pays; null once paid or cancelled",
"type": [
"string",
"null"
]
},
"order_url": {
"type": "string",
"description": "Order status page"
},
"preview_url": {
"type": "string",
"description": "Exact print preview"
},
"tracking": {
"anyOf": [
{
"type": "object",
"properties": {
"number": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"number",
"url"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "USPS tracking, for Certified Mail once printed"
},
"discount": {
"anyOf": [
{
"type": "object",
"properties": {
"amount_cents": {
"type": "number"
},
"display": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"amount_cents",
"display",
"reason"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "First-order discount, already taken off price; null when none applies"
}
},
"required": [
"id",
"object",
"product",
"product_name",
"certified",
"status",
"status_detail",
"price",
"checkout_url",
"order_url",
"preview_url",
"tracking",
"discount"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🔴pay_order(order_id, shared_payment_token)
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.
输入模式
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "Order id from create_postcard or create_letter, ord_…"
},
"shared_payment_token": {
"type": "string",
"description": "Stripe shared payment token, spt_…"
}
},
"required": [
"order_id",
"shared_payment_token"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Order id, ord_…"
},
"object": {
"type": "string",
"enum": [
"postcard",
"letter"
]
},
"product": {
"type": "string",
"description": "Product id, e.g. postcard_4x6 or letter_certified"
},
"product_name": {
"type": "string"
},
"certified": {
"type": "string",
"description": "none, certified or certified_return_receipt"
},
"status": {
"type": "string",
"description": "awaiting_payment, paid, printing, mailed, cancelled or refunded"
},
"status_detail": {
"type": "string",
"description": "Plain-English status to show the user"
},
"price": {
"type": "object",
"properties": {
"amount_cents": {
"type": "number"
},
"currency": {
"type": "string"
},
"display": {
"type": "string"
}
},
"required": [
"amount_cents",
"currency",
"display"
],
"additionalProperties": false
},
"checkout_url": {
"description": "Where the user pays; null once paid or cancelled",
"type": [
"string",
"null"
]
},
"order_url": {
"type": "string",
"description": "Order status page"
},
"preview_url": {
"type": "string",
"description": "Exact print preview"
},
"tracking": {
"anyOf": [
{
"type": "object",
"properties": {
"number": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"number",
"url"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "USPS tracking, for Certified Mail once printed"
},
"discount": {
"anyOf": [
{
"type": "object",
"properties": {
"amount_cents": {
"type": "number"
},
"display": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"amount_cents",
"display",
"reason"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "First-order discount, already taken off price; null when none applies"
}
},
"required": [
"id",
"object",
"product",
"product_name",
"certified",
"status",
"status_detail",
"price",
"checkout_url",
"order_url",
"preview_url",
"tracking",
"discount"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🟢get_order(order_id)
Get the status of a postcard or letter order by id (ord_...).
输入模式
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "Order id, ord_…"
}
},
"required": [
"order_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Order id, ord_…"
},
"object": {
"type": "string",
"enum": [
"postcard",
"letter"
]
},
"product": {
"type": "string",
"description": "Product id, e.g. postcard_4x6 or letter_certified"
},
"product_name": {
"type": "string"
},
"certified": {
"type": "string",
"description": "none, certified or certified_return_receipt"
},
"status": {
"type": "string",
"description": "awaiting_payment, paid, printing, mailed, cancelled or refunded"
},
"status_detail": {
"type": "string",
"description": "Plain-English status to show the user"
},
"price": {
"type": "object",
"properties": {
"amount_cents": {
"type": "number"
},
"currency": {
"type": "string"
},
"display": {
"type": "string"
}
},
"required": [
"amount_cents",
"currency",
"display"
],
"additionalProperties": false
},
"checkout_url": {
"description": "Where the user pays; null once paid or cancelled",
"type": [
"string",
"null"
]
},
"order_url": {
"type": "string",
"description": "Order status page"
},
"preview_url": {
"type": "string",
"description": "Exact print preview"
},
"tracking": {
"anyOf": [
{
"type": "object",
"properties": {
"number": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"number",
"url"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "USPS tracking, for Certified Mail once printed"
},
"discount": {
"anyOf": [
{
"type": "object",
"properties": {
"amount_cents": {
"type": "number"
},
"display": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"amount_cents",
"display",
"reason"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "First-order discount, already taken off price; null when none applies"
}
},
"required": [
"id",
"object",
"product",
"product_name",
"certified",
"status",
"status_detail",
"price",
"checkout_url",
"order_url",
"preview_url",
"tracking",
"discount"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}🔴cancel_order(order_id)
Cancel an order that has not been paid yet. Paid orders can be cancelled by emailing support before they are printed.
输入模式
{
"type": "object",
"properties": {
"order_id": {
"type": "string",
"description": "Order id, ord_…"
}
},
"required": [
"order_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}输出模式
{
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Order id, ord_…"
},
"object": {
"type": "string",
"enum": [
"postcard",
"letter"
]
},
"product": {
"type": "string",
"description": "Product id, e.g. postcard_4x6 or letter_certified"
},
"product_name": {
"type": "string"
},
"certified": {
"type": "string",
"description": "none, certified or certified_return_receipt"
},
"status": {
"type": "string",
"description": "awaiting_payment, paid, printing, mailed, cancelled or refunded"
},
"status_detail": {
"type": "string",
"description": "Plain-English status to show the user"
},
"price": {
"type": "object",
"properties": {
"amount_cents": {
"type": "number"
},
"currency": {
"type": "string"
},
"display": {
"type": "string"
}
},
"required": [
"amount_cents",
"currency",
"display"
],
"additionalProperties": false
},
"checkout_url": {
"description": "Where the user pays; null once paid or cancelled",
"type": [
"string",
"null"
]
},
"order_url": {
"type": "string",
"description": "Order status page"
},
"preview_url": {
"type": "string",
"description": "Exact print preview"
},
"tracking": {
"anyOf": [
{
"type": "object",
"properties": {
"number": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"number",
"url"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "USPS tracking, for Certified Mail once printed"
},
"discount": {
"anyOf": [
{
"type": "object",
"properties": {
"amount_cents": {
"type": "number"
},
"display": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"amount_cents",
"display",
"reason"
],
"additionalProperties": false
},
{
"type": "null"
}
],
"description": "First-order discount, already taken off price; null when none applies"
}
},
"required": [
"id",
"object",
"product",
"product_name",
"certified",
"status",
"status_detail",
"price",
"checkout_url",
"order_url",
"preview_url",
"tracking",
"discount"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": {}
}社区
证据