Install
openclaw skills install mailbox-botReal mailing address for your AI agent. Receive, scan, and forward postal mail — or send letters and documents. CMRA postal mail infrastructure your agent ma...
openclaw skills install mailbox-botGive your AI agent a real mailing address.
Your agent gets a CMRA-licensed street address for receiving and sending postal mail. Inbound mail is photographed, scanned, and classified. Outbound letters are printed and mailed with photo proof. Your agent manages the full lifecycle via API — standing instructions fire automatically, sensitive items wait for human approval.
Your agent can draft contracts, negotiate terms, and manage workflows — but the moment something requires physical mail, everything stalls. Courts require certified letters. Governments send time-sensitive notices to real addresses. LLCs need a registered address. Tax responses demand paper.
mailbox.bot closes that loop. Your agent now plays in the real world, not just the digital one.
| Plan | Price | What you get |
|---|---|---|
| Virtual Mailbox | $2/mo | Real CMRA address, 10 inbound mail pieces/mo, scan on arrival, inbound + outbound mail, 14-day storage |
| Outbound Only | $0/mo | Send letters via API, $0.30/page printing + actual carrier postage, photo proof, no inbound address |
Outbound postage (both plans): USPS First Class from $0.78, Priority $11.95 flat rate, Certified $6.08, FedEx/UPS zone-based. Color printing +$0.25/page.
Actions billed per use: scan $3, open & scan $5, photograph $1.50, forward $5 + $2/lb, shred $2, dispose $1, return $5, hold free.
All plans month-to-month, cancel anytime. Full pricing: https://mailbox.bot/pricing
Set your environment variables and use the API directly:
export MAILBOX_BOT_API_KEY="sk_live_xxxxxxxxxxxxx"
export MAILBOX_BOT_URL="https://mailbox.bot"
Skip to the API Reference section below.
Create an account on behalf of your human operator. No CAPTCHA, no auth header.
POST to https://mailbox.bot/api/v1/signup:
curl -X POST https://mailbox.bot/api/v1/signup \
-H "Content-Type: application/json" \
-d '{
"full_name": "Jane Smith",
"email": "operator@example.com",
"password": "securepassword123",
"needs": "inbound mail scanning + outbound certified letters for legal compliance"
}'
| Field | Type | Required | Description |
|---|---|---|---|
full_name | string | Yes | Operator's legal name (2-100 chars) |
email | string | Yes | Operator's email — verification link sent here |
password | string | Yes | Min 8 characters |
needs | string | No | Free text — what the agent/operator needs |
Rate limit: 5 requests per minute per IP.
Success response (201):
{
"success": true,
"message": "Account created. A verification email has been sent. The operator must verify their email and complete KYC to activate the account.",
"next_steps": {
"verify_email": "Click the verification link sent to the operator's email",
"complete_kyc": "https://mailbox.bot/signup",
"after_kyc": "Select a plan, add payment, and create your first agent to get API keys"
}
}
Error responses:
| Status | Error | Cause |
|---|---|---|
| 400 | "email, password, and full_name are required" | Missing a required field |
| 400 | "Password must be at least 8 characters" | Password too short |
| 400 | "Invalid email address" | Bad email format |
| 409 | "An account with this email already exists" | Duplicate email |
| 429 | Rate limit exceeded | Too many requests from this IP |
After signup — tell your operator:
"I created your mailbox.bot account. Check your email at operator@example.com for a verification link. Click it, then go to https://mailbox.bot/signup to finish setup (~5 minutes). Once you're done, I'll have API access to manage your mail."
The human must complete these steps in a browser:
After the human finishes, an agent and mailbox are auto-provisioned. API keys appear on the dashboard at https://mailbox.bot/dashboard.
Your agent can connect via any of these:
| Protocol | Endpoint | Details |
|---|---|---|
| REST API (v1) | https://mailbox.bot/api/v1 | Full CRUD for agents, mailboxes, mail, actions, rules, webhooks |
| MCP | https://mailbox.bot/api/mcp | 22 tools for LLM integration (JSON-RPC 2.0, spec 2025-11-25) |
| A2A | https://mailbox.bot/api/a2a | 9 skills for agent-to-agent task execution (v0.3) |
| OpenClaw | https://mailbox.bot/.well-known/agent.json | Multi-protocol agent card, WebSocket gateway + webhooks |
Add to your claude_desktop_config.json:
{
"mcpServers": {
"mailbox-bot": {
"url": "https://mailbox.bot/api/mcp",
"headers": { "Authorization": "Bearer sk_live_xxxxxxxxxxxxx" }
}
}
}
Full MCP install guide: https://mailbox.bot/mcp-install
Drop a MAILBOX.md file into your agent's context. Your agent reads it, calls the API, and configures your standing instructions as rules. Mail arrives, rules evaluate, actions fire — automatically.
Write "needs approval" next to any rule and the action pauses until you approve on the dashboard.
# Mail Instructions
You manage my business mail at mailbox.bot
Ref **MB-6E1A**
## Inbound mail
- Legal notices, contracts → scan + email me
- IRS / state agencies → **Requires approval** before any action
- Junk mail → discard
## Outbound mail
- Signed contracts → send USPS Certified
- Legal notices → send USPS First Class
- Anything over $50 postage → **Needs approval**
## Notifications
- Email for everything
- **Needs approval** → email + SMS with dashboard link
Integration guide: https://mailbox.bot/implementation
Base URL: https://mailbox.bot
All authenticated endpoints require:
Authorization: Bearer $MAILBOX_BOT_API_KEY
Two key types:
sk_live_) — full account access, all scopessk_agent_) — scoped to a single agentcurl -s "$MAILBOX_BOT_URL/api/v1/mailboxes" \
-H "Authorization: Bearer $MAILBOX_BOT_API_KEY"
Returns the physical mailing address your agent can use immediately.
curl -s "$MAILBOX_BOT_URL/api/v1/packages?status=received" \
-H "Authorization: Bearer $MAILBOX_BOT_API_KEY"
Filters: status, carrier, since, before, limit, offset
curl -s "$MAILBOX_BOT_URL/api/v1/packages/{id}" \
-H "Authorization: Bearer $MAILBOX_BOT_API_KEY"
curl -X POST "$MAILBOX_BOT_URL/api/v1/packages/{id}/actions" \
-H "Authorization: Bearer $MAILBOX_BOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"action": "scan", "priority": "normal"}'
Action types: scan, open_and_scan, photograph, forward, shred, dispose, return_to_sender, hold
curl -X POST "$MAILBOX_BOT_URL/api/v1/packages/{id}/forward" \
-H "Authorization: Bearer $MAILBOX_BOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to_name": "John Doe",
"to_line1": "123 Main Street",
"to_city": "New York",
"to_state": "NY",
"to_zip": "10001"
}'
curl -X POST "$MAILBOX_BOT_URL/api/v1/packages/{id}/scan" \
-H "Authorization: Bearer $MAILBOX_BOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"scan_type": "document"}'
Scan types: label, envelope, document, content
curl -X PUT "$MAILBOX_BOT_URL/api/v1/webhooks/settings" \
-H "Authorization: Bearer $MAILBOX_BOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agent_id": "YOUR_AGENT_ID",
"webhook_url": "https://your-agent.com/webhooks",
"event_types": ["mail.received", "action.completed", "mail.forwarded"]
}'
curl -X POST "$MAILBOX_BOT_URL/api/v1/packages/{id}/notes" \
-H "Authorization: Bearer $MAILBOX_BOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"note": "IRS notice — response deadline April 15"}'
curl -X POST "$MAILBOX_BOT_URL/api/v1/packages/{id}/tags" \
-H "Authorization: Bearer $MAILBOX_BOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"tag": "tax-notice"}'
curl -s "$MAILBOX_BOT_URL/api/v1/usage" \
-H "Authorization: Bearer $MAILBOX_BOT_API_KEY"
Full API reference: https://mailbox.bot/llms-full.txt
Trigger when user says:
Action flow:
MAILBOX_BOT_API_KEY). If present, use the API directly.https://mailbox.bot/api/v1/signup.When checking the mailbox:
GET /api/v1/packages?status=receivedWhen sending outbound mail:
export MAILBOX_BOT_API_KEY="sk_live_xxxxxxxxxxxxx"
export MAILBOX_BOT_URL="https://mailbox.bot"