SolMail MCP

SolMail MCP

Enables AI agents to send physical letters and postcards to over 200 countries using Solana cryptocurrency for payment. It provides tools for generating mail quotes, managing wallet balances, and automating physical correspondence directly through the Model Context Protocol.

Category
Visit Server

README

SolMail MCP Server

Send real physical mail using Solana cryptocurrency from your AI agent.

SolMail MCP is a Model Context Protocol (MCP) server that enables AI agents like Claude to send physical letters and postcards to real addresses worldwide, paid for with Solana (SOL) cryptocurrency. Perfect for agents that need to interact with the physical world.

πŸ† Built for Colosseum Agent Hackathon βœ… Production-Ready - Switch from test mode to production with simple config changes πŸ§ͺ Demo Mode - Test with devnet SOL and Lob test API (no real charges) πŸš€ Production Mode - Real mail delivery with mainnet SOL

Features

  • πŸ“¬ Send Real Mail: Physical letters printed and mailed to any address
  • πŸ’° Crypto Payments: Pay with SOL on Solana (devnet or mainnet)
  • 🌍 Worldwide Delivery: Send to 200+ countries
  • πŸ€– AI-Native: Built specifically for AI agent integration
  • ⚑ Fast & Cheap: Solana's sub-second finality and ~$0.00025 transaction fees
  • πŸ”’ Non-Custodial: Direct wallet control, no intermediaries

Use Cases

  • Autonomous Customer Service: AI agents sending thank-you notes or receipts
  • AI-Driven Marketing: Personalized postcards generated and sent by AI
  • Smart Contracts: Trigger physical mail based on on-chain events
  • AI Personal Assistant: "Claude, send a birthday card to my mom"
  • Automated Reminders: Physical notifications for important events

Installation

# Clone or create the project
git clone <repository-url>
cd solmail-mcp

# Install dependencies
npm install

# Build the TypeScript code
npm run build

Configuration

Create a .env file based on .env.example:

# SolMail API Configuration
SOLMAIL_API_URL=https://solmail.online/api

# Solana Wallet (your agent's wallet private key)
# IMPORTANT: Use a dedicated wallet with limited funds for AI agents
SOLANA_PRIVATE_KEY=your_base58_private_key_here

# Solana Network
SOLANA_NETWORK=devnet
# Options: devnet (for testing), mainnet-beta (for production)

# Optional: Merchant wallet (where payments go)
# If not set, uses SolMail's default merchant wallet
MERCHANT_WALLET=<merchant_solana_address>

Getting a Solana Wallet

To use this MCP server, your AI agent needs its own Solana wallet:

# Install Solana CLI (if not already installed)
sh -c "$(curl -sSfL https://release.solana.com/stable/install)"

# Generate a new keypair
solana-keygen new --outfile ~/.config/solana/agent-wallet.json

# Get the private key in base58 format
solana-keygen pubkey ~/.config/solana/agent-wallet.json  # This is your public address

# To get the private key as base58 (for .env file):
# The keypair JSON file contains the private key bytes

Important: For AI agents, create a dedicated wallet and only fund it with the amount needed for mail sending. Never use your primary wallet.

Funding Your Wallet

For Devnet (Testing):

# Airdrop free devnet SOL
solana airdrop 2 <your-wallet-address> --url devnet

For Mainnet (Production): Transfer SOL to your agent's wallet address. Each letter costs approximately:

  • Domestic (US): $1.50 = ~0.015 SOL (at $100/SOL)
  • International: $2.50 = ~0.025 SOL (at $100/SOL)
  • Plus Solana transaction fee: ~$0.00025

Usage with Claude Desktop

Add to your Claude Desktop MCP settings file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "solmail": {
      "command": "node",
      "args": ["/absolute/path/to/solmail-mcp/dist/index.js"],
      "env": {
        "SOLMAIL_API_URL": "https://solmail.online/api",
        "SOLANA_NETWORK": "devnet",
        "SOLANA_PRIVATE_KEY": "your_base58_private_key"
      }
    }
  }
}

Restart Claude Desktop after adding the configuration.

Available Tools

get_mail_quote

Get a price quote for sending mail.

Input:

{
  "country": "US",
  "color": false
}

Output:

{
  "priceUsd": 1.50,
  "priceSol": 0.015,
  "solPrice": 100.0,
  "breakdown": {
    "basePrice": 1.50,
    "colorPrinting": 0.00
  },
  "country": "US",
  "estimatedDelivery": "3-5 business days"
}

send_mail

Send physical mail with Solana payment.

Input:

{
  "content": "Dear Friend,\n\nThis letter was sent by an AI agent using Solana cryptocurrency!\n\nBest regards,\nClaude",
  "recipient": {
    "name": "John Doe",
    "addressLine1": "123 Main Street",
    "city": "San Francisco",
    "state": "CA",
    "zipCode": "94102",
    "country": "US"
  },
  "mailOptions": {
    "color": false,
    "doubleSided": false,
    "mailClass": "first_class"
  }
}

Output:

{
  "success": true,
  "letterId": "ltr_abc123",
  "trackingNumber": "9400000000000000000000",
  "expectedDeliveryDate": "2026-02-07T00:00:00Z",
  "previewUrl": "https://...",
  "payment": {
    "signature": "5j7s...",
    "amount": 0.015,
    "priceUsd": 1.50
  },
  "recipient": "John Doe",
  "city": "San Francisco",
  "country": "US"
}

get_wallet_balance

Check your agent's wallet balance.

Output:

{
  "address": "B5daxcMG9LgcXkZwuxBhHtuYxzG9J4ekgz1wUiMXw3xp",
  "balance": 2.5,
  "balanceLamports": 2500000000,
  "network": "devnet"
}

get_wallet_address

Get your agent's wallet address for funding.

Output:

{
  "address": "B5daxcMG9LgcXkZwuxBhHtuYxzG9J4ekgz1wUiMXw3xp",
  "network": "devnet",
  "message": "Send SOL to this address to fund your mail-sending operations"
}

Example Conversations

With Claude:

You: Send a thank you note to John Doe at 123 Main St, San Francisco, CA 94102

Claude: I'll help you send that thank you note via physical mail using Solana!

Let me first check the cost and then send the letter.

[Uses get_mail_quote tool]
The cost will be $1.50 (approximately 0.015 SOL) for domestic US mail.

[Uses send_mail tool]
βœ“ Letter sent successfully!

Your thank you note has been sent to John Doe and should arrive in 3-5 business days.

Transaction details:
- Letter ID: ltr_abc123
- Tracking: 9400000000000000000000
- Payment: 0.015 SOL (signature: 5j7s...)
- Expected delivery: February 7, 2026

You can view the letter preview at: https://...

How It Works

  1. Agent composes letter content
  2. MCP server validates recipient address
  3. Solana transaction is created and signed by agent's wallet
  4. Payment is sent to SolMail merchant wallet
  5. Transaction signature is submitted to SolMail API
  6. SolMail verifies the on-chain payment
  7. Letter is printed by fulfillment partner (Lob.com)
  8. Letter is mailed via USPS/postal service
  9. Tracking info returned to agent

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      MCP Protocol      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Claude    │◄──────────────────────►│  SolMail MCP β”‚
β”‚  (AI Agent) β”‚                        β”‚    Server    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                        β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
                                              β”‚
                                              β”‚ HTTPS API
                                              β”‚
                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚                         β”‚              β”‚
                    β–Ό                         β–Ό              β–Ό
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β”‚  Solana  β”‚            β”‚   SolMail   β”‚  β”‚   Lob   β”‚
              β”‚Blockchainβ”‚            β”‚   Backend   β”‚  β”‚ Printingβ”‚
              β”‚(Payment) β”‚            β”‚  (Verify)   β”‚  β”‚ & Mail  β”‚
              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Pricing

  • US Domestic Letter: $1.50
  • International Letter: $2.50
  • Color Printing: +$0.50
  • Solana Transaction Fee: ~$0.00025

Prices are in USD and automatically converted to SOL at current market rates using CoinGecko API.

Development

# Watch mode for development
npm run dev

# Build for production
npm run build

# Run the server
npm start

Security Considerations

  1. Dedicated Wallet: Create a separate wallet for your AI agent with limited funds
  2. Private Key Security: Store SOLANA_PRIVATE_KEY securely, never commit to git
  3. Devnet Testing: Test thoroughly on devnet before using mainnet
  4. Rate Limiting: Implement spending limits for autonomous agents
  5. Content Review: Consider reviewing mail content before sending (for production)

Production Deployment

Switching from Test to Production

The hackathon demo uses test mode (no real mail sent). To send real mail:

1. Get Live Lob API Key

  • Sign up at https://dashboard.lob.com
  • Complete identity verification
  • Get your live API key (starts with live_)

2. Update Configuration

Test Mode (Current):

SOLMAIL_API_URL=https://solmail.online/api
SOLANA_NETWORK=devnet
LOB_API_KEY=test_...

Production Mode:

SOLMAIL_API_URL=https://solmail.online/api
SOLANA_NETWORK=mainnet-beta
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com
LOB_API_KEY=live_YOUR_KEY_HERE

3. Fund Wallet with Real SOL

  • Create mainnet wallet: solana-keygen new --outfile mainnet-wallet.json
  • Send SOL to wallet address
  • Cost: ~0.011 SOL per letter (~$1.50 at $138/SOL)

4. Test & Deploy

# Test locally with production config
npm run dev

# Deploy to production
vercel --prod

⚠️ Important: Production mode sends real mail and charges real SOL. Test thoroughly on devnet first!

Hybrid Testing (Recommended)

Test real mail delivery without spending real SOL:

LOB_API_KEY=live_YOUR_KEY  # Real mail
SOLANA_NETWORK=devnet       # Free SOL

This verifies mail delivery works before switching to mainnet!

Limitations

  • Currently supports plain text letters only (PDF support coming soon)
  • Requires wallet with SOL balance
  • Subject to postal delivery times (not instant)
  • Mail content reviewed by fulfillment partner (Lob.com) for policy compliance
  • Production mode requires Lob account verification (1-2 business days)

Roadmap

  • [ ] PDF attachment support
  • [ ] Multiple letter templates
  • [ ] Postcard support
  • [ ] Package/merchandise shipping
  • [ ] Return address management
  • [ ] Bulk sending optimization
  • [ ] USDC payment support
  • [ ] Multi-chain support (EVM chains)

Support & Links

  • Website: https://solmail.online
  • API Docs: https://solmail.online/docs
  • Solana Docs: https://docs.solana.com
  • MCP Docs: https://modelcontextprotocol.io

License

MIT

Credits

Built with:


Made for the Colosseum Agent Hackathon πŸ›οΈ

Bridging AI agents and the physical world, one letter at a time.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured