What can it do?
What can't it do! Once connected, your AI assistant can:
"Send a thank-you note to everyone who attended our event last week"
"Show me your holiday cards and what handwriting styles are available"
"Save these 50 client addresses to my address book from this spreadsheet"
"Design a card with our company logo on the front and our tagline on the back"
"Add a $25 Starbucks gift card to each thank-you note for our top clients"
"Create a QR code linking to our website and put it on the back of the card"
"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!
- Step 1: Click here → Add Custom Connector
- Step 2: Enter these values:
Name:
HandwryttenServer 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.
- Sign up at handwrytten.com and get your API key from the API settings page.
- 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)
| Tool | Description |
|---|---|
send_order | Send a handwritten note — the primary tool. Supports single and bulk sends. |
get_order | Get order details including status and tracking |
list_orders | List orders with pagination |
Cards & Fonts
| Tool | Description |
|---|---|
list_cards | Browse all available card/stationery templates |
get_card | Get details of a specific card |
list_card_categories | Get card categories (Thank You, Birthday, etc.) |
list_fonts | Browse handwriting styles for orders |
list_customizer_fonts | Browse printed fonts for custom card text zones |
Address Book
| Tool | Description |
|---|---|
list_recipients | List saved recipient addresses |
add_recipient | Save a new recipient address |
update_recipient | Update an existing recipient |
delete_recipient | Delete recipient address(es) |
list_senders | List saved sender (return) addresses |
add_sender | Save a new sender address |
delete_sender | Delete sender address(es) |
list_countries | Get supported countries |
list_states | Get states/provinces for a country |
Gift Cards & Inserts
| Tool | Description |
|---|---|
list_gift_cards | Browse gift card products with denominations |
list_inserts | Browse card inserts (business cards, flyers) |
Custom Cards
| Tool | Description |
|---|---|
list_custom_card_dimensions | Get available card dimensions |
upload_custom_image | Upload a cover or logo image |
check_custom_image | Check image quality requirements |
list_custom_images | List uploaded images |
delete_custom_image | Delete an uploaded image |
create_custom_card | Create a custom card design |
get_custom_card | Get custom card details |
delete_custom_card | Delete a custom card |
QR Codes
| Tool | Description |
|---|---|
list_qr_codes | List account QR codes |
create_qr_code | Create a new QR code |
delete_qr_code | Delete a QR code |
list_qr_code_frames | Browse decorative QR code frames |
Basket (Advanced)
| Tool | Description |
|---|---|
basket_add_order | Add an order to the basket |
basket_send | Submit the basket for processing |
basket_list | List items in the basket |
basket_count | Count basket items |
basket_remove | Remove a basket item |
basket_clear | Clear the basket |
list_past_baskets | List previously submitted baskets |
Account
| Tool | Description |
|---|---|
get_user | Get account profile and credits balance |
list_signatures | List saved handwriting signatures |
Interactive Apps
| Tool | Description |
|---|---|
Preview-Cards | Visual card browser with 3D flip previews |
View-Basket | Interactive basket summary with pricing |
Preview-Writing | Live handwriting message preview |
Example Conversations
You: "Send a thank-you note to John Smith at 456 Oak Ave, Tempe AZ 85281 from our company"
Claude calls list_cards → list_fonts → send_order
You: "Send birthday cards to all these people: [list/CSV]"
Claude calls list_cards → list_fonts → send_order with array of recipients
You: "Create a custom card with our company logo and send it to our top 5 clients"
Claude calls upload_custom_image → create_custom_card → list_recipients → send_order
Important Notes
- Always browse before sending. Use
list_cardsandlist_fontsto 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
dateSendparameter (YYYY-MM-DD) to schedule a future send. - Account balance. Call
get_userto 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
- Handwrytten TypeScript SDK — the official SDK this server wraps
- Model Context Protocol SDK — the MCP framework
Privacy & Support
- Privacy Policy: handwrytten.com/privacy-policy
- Support: handwrytten.com/contact or email mcp@handwrytten.com