Quick Start (MCP -- Recommended)

The fastest way to connect OpenClaw to Dead Simple Email is through MCP (Model Context Protocol). Add the following to your OpenClaw MCP configuration:

mcp_config.json
{
  "mcpServers": {
    "deadsimple": {
      "command": "python",
      "args": ["-m", "deadsimple.mcp"],
      "env": { "DSE_API_KEY": "dse_your_api_key" }
    }
  }
}

Once configured, your OpenClaw agent gains access to 11 email tools automatically. No code required -- just tell it what to do in natural language:

OpenClaw prompt
"Send an email to user@example.com with subject 'Hello' and body 'Hi from OpenClaw'"

OpenClaw will automatically call the MCP server to create an inbox (if needed), compose the message, and send it.

Available MCP Tools

Once connected, your OpenClaw agent has access to these tools:

Tool Description
create_inbox Create a new email inbox
list_inboxes List all inboxes on the account
delete_inbox Delete an inbox
send_email Send an email from any inbox
read_emails List messages in an inbox
read_email Read the full content of a message
reply_to_email Reply to an existing email thread
forward_email Forward a message to another address
list_threads List email threads in an inbox
create_webhook Register a webhook for email events
get_usage Check account usage and limits

Custom Skills (Alternative)

If you prefer more control, you can use the Python SDK directly in an OpenClaw custom skill:

email_skill.py
from deadsimple import DeadSimple

client = DeadSimple()  # reads DSE_API_KEY from env

def send_email(to: str, subject: str, body: str, inbox_id: str = None):
    """Send an email. Creates a temporary inbox if no inbox_id is provided."""
    if not inbox_id:
        inbox = client.inboxes.create(display_name="OpenClaw Agent")
        inbox_id = inbox.inbox_id

    result = client.messages.send(
        inbox_id=inbox_id,
        to=to,
        subject=subject,
        text_body=body,
    )
    return f"Sent message {result.message_id} from {inbox_id}"

def check_inbox(inbox_id: str):
    """List recent messages in an inbox."""
    messages = client.messages.list(inbox_id=inbox_id, limit=5)
    return [
        {"from": m.sender, "subject": m.subject, "date": m.received_at}
        for m in messages.data
    ]

Register these functions as OpenClaw skills and the agent can call them when users ask to send or read email.

Example Prompts

Once connected, try these prompts with your OpenClaw agent:

  • "Create an inbox for customer support" -- creates a new inbox with a display name
  • "Send an email to team@company.com about the project update" -- composes and sends an email
  • "Check my inbox for new messages" -- lists recent messages with summaries
  • "Reply to the latest email from Sarah and tell her we'll ship next week" -- reads the message, composes a contextual reply, and sends it
  • "Set up a webhook to notify me at https://myapp.com/hooks when new emails arrive" -- creates a webhook subscription
  • "How many emails have I sent this month?" -- checks account usage

Full Walkthrough

For a detailed step-by-step guide covering advanced configuration, multi-inbox workflows, and webhook-driven automation, read the full blog post:

OpenClaw + Dead Simple Email: The Complete Integration Guide

Related Integrations

  • MCP Server -- the underlying MCP server used by this integration
  • Python SDK -- for building custom skills programmatically
  • CLI -- manage inboxes and email from the terminal

Ready to build?

Create a free account and start integrating in minutes.

API Reference Get Started Free