Handwrytten MCP Server

An MCP server that lets AI assistants like Claude send real handwritten notes through Handwrytten — robots with real pens writing your messages on physical cards, mailed to your recipients.

https://mcp.handwrytten.com/mcp

What can it do?

What can't it do! Once connected, your AI assistant can:

Send handwritten notes — single or bulk, with per-recipient customization
"Send a thank-you note to everyone who attended our event last week"
Browse cards and fonts — discover available stationery templates and handwriting styles
"Show me your holiday cards and what handwriting styles are available"
Manage addresses — save, update, and delete recipient and sender addresses
"Save these 50 client addresses to my address book from this spreadsheet"
Create custom cards — upload images, add logos and text, design your own cards
"Design a card with our company logo on the front and our tagline on the back"
Include gift cards and inserts — attach gift cards or marketing inserts to orders
"Add a $25 Starbucks gift card to each thank-you note for our top clients"
Manage QR codes — create and attach QR codes to custom cards
"Create a QR code linking to our website and put it on the back of the card"
Track orders — check order status, view history, get tracking info
"What's the status of the cards I sent last Tuesday?"

Quick Start

Option A: Remote Server (OAuth — recommended)

The Handwrytten MCP server supports OAuth 2.0 authentication. Connect directly from Claude.ai, Claude Desktop, or Claude Code — no API key needed. You'll sign in with your Handwrytten account when prompted.

Claude.ai — Easiest Setup!

  1. Step 1: Click here → Add Custom Connector
  2. Step 2: Enter these values:
    Name: Handwrytten
    Server URL: https://mcp.handwrytten.com/mcp

That's it — no installation, no config files, no API key needed!

Note: This works for personal Claude accounts. If you're part of a work organization, your admin will need to add Handwrytten to your organization's available connectors before you can use it.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "handwrytten": {
      "url": "https://mcp.handwrytten.com/mcp"
    }
  }
}

Config file locations: macOS ~/Library/Application Support/Claude/claude_desktop_config.json · Windows %APPDATA%\Claude\claude_desktop_config.json

Claude Code

claude mcp add handwrytten --transport http https://mcp.handwrytten.com/mcp

Option B: Local Server (API Key)

For development or self-hosted setups, you can run the server locally with an API key.

  1. Sign up at handwrytten.com and get your API key from the API settings page.
  2. Install: npm install -g @handwrytten/mcp-server

Claude Desktop (local)

{
  "mcpServers": {
    "handwrytten": {
      "command": "handwrytten-mcp",
      "env": {
        "HANDWRYTTEN_API_KEY": "your_api_key_here"
      }
    }
  }
}

Claude Code (local)

claude mcp add handwrytten -- env HANDWRYTTEN_API_KEY=your_api_key_here handwrytten-mcp

Start Using It

Just ask your AI assistant naturally:

"Send a thank-you card to Jane Doe at 123 Main St, Phoenix, AZ 85001"
"What cards do you have available for birthdays?"
"Send handwritten notes to everyone in this CSV file"

Available Tools

Orders (Core)

ToolDescription
send_orderSend a handwritten note — the primary tool. Supports single and bulk sends.
get_orderGet order details including status and tracking
list_ordersList orders with pagination

Cards & Fonts

ToolDescription
list_cardsBrowse all available card/stationery templates
get_cardGet details of a specific card
list_card_categoriesGet card categories (Thank You, Birthday, etc.)
list_fontsBrowse handwriting styles for orders
list_customizer_fontsBrowse printed fonts for custom card text zones

Address Book

ToolDescription
list_recipientsList saved recipient addresses
add_recipientSave a new recipient address
update_recipientUpdate an existing recipient
delete_recipientDelete recipient address(es)
list_sendersList saved sender (return) addresses
add_senderSave a new sender address
delete_senderDelete sender address(es)
list_countriesGet supported countries
list_statesGet states/provinces for a country

Gift Cards & Inserts

ToolDescription
list_gift_cardsBrowse gift card products with denominations
list_insertsBrowse card inserts (business cards, flyers)

Custom Cards

ToolDescription
list_custom_card_dimensionsGet available card dimensions
upload_custom_imageUpload a cover or logo image
check_custom_imageCheck image quality requirements
list_custom_imagesList uploaded images
delete_custom_imageDelete an uploaded image
create_custom_cardCreate a custom card design
get_custom_cardGet custom card details
delete_custom_cardDelete a custom card

QR Codes

ToolDescription
list_qr_codesList account QR codes
create_qr_codeCreate a new QR code
delete_qr_codeDelete a QR code
list_qr_code_framesBrowse decorative QR code frames

Basket (Advanced)

ToolDescription
basket_add_orderAdd an order to the basket
basket_sendSubmit the basket for processing
basket_listList items in the basket
basket_countCount basket items
basket_removeRemove a basket item
basket_clearClear the basket
list_past_basketsList previously submitted baskets

Account

ToolDescription
get_userGet account profile and credits balance
list_signaturesList saved handwriting signatures

Interactive Apps

ToolDescription
Preview-CardsVisual card browser with 3D flip previews
View-BasketInteractive basket summary with pricing
Preview-WritingLive handwriting message preview

Example Conversations

Simple send
You: "Send a thank-you note to John Smith at 456 Oak Ave, Tempe AZ 85281 from our company"

Claude calls list_cardslist_fontssend_order

Bulk send
You: "Send birthday cards to all these people: [list/CSV]"

Claude calls list_cardslist_fontssend_order with array of recipients

Custom card
You: "Create a custom card with our company logo and send it to our top 5 clients"

Claude calls upload_custom_imagecreate_custom_cardlist_recipientssend_order

Important Notes

  • Always browse before sending. Use list_cards and list_fonts to discover available options before placing an order.
  • Confirm before ordering. Sending a card costs money and triggers physical mail. Your AI assistant will confirm details before placing any order.
  • Address requirements. Recipient addresses need firstName, lastName, street1, city, state, zip. Country defaults to US.
  • Bulk sends. Pass an array of recipients to send_order. Each recipient can have per-recipient message and wishes overrides.
  • Scheduling. Use the dateSend parameter (YYYY-MM-DD) to schedule a future send.
  • Account balance. Call get_user to check your credits balance.

Development

git clone https://github.com/handwrytten/mcp-server
cd mcp-server
npm install
npm run build

Test locally in stdio mode (API key auth):

HANDWRYTTEN_API_KEY=your_key node dist/index.js

Built On

Privacy & Support