Quick Start (MCP)

Hermes Agent has first-class MCP support. Add a deadsimple entry to the mcp_servers block in your Hermes config.yaml (default location: ~/.hermes/config.yaml):

~/.hermes/config.yaml
mcp_servers:
  deadsimple:
    command: python
    args: ["-m", "deadsimple.mcp"]
    env:
      DSE_API_KEY: "dse_your_api_key"

Reload MCP servers in your running Hermes session, confirm the tools appear, and prompt the agent — no code or custom skill required:

hermes CLI
# Install the package first
pip install "deadsimple[mcp]"

# In the running Hermes session
/reload-mcp
hermes tools | grep deadsimple

# Then prompt naturally:
"Create an inbox called 'Hermes Support', then send a welcome
email to user@example.com and tell me when a reply arrives."

Hermes will call create_inbox, send_email, and on the next tick read_messages — remembering the inbox ID in its persistent memory across restarts.

Available MCP Tools

Once connected, Hermes Agent has access to these eleven tools alongside its built-ins (terminal, read_file, web_search, etc.):

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_messages List recent messages in an inbox
read_message Read a single message with full body
reply_to_message Reply to an existing message with threading
forward_message Forward a message to new recipients
list_threads List conversation threads in an inbox
read_thread Read all messages in a thread
get_usage Check account usage and plan limits

Want Hermes to only send and read (not delete inboxes)? Use the MCP allow-list:

~/.hermes/config.yaml (scoped)
mcp_servers:
  deadsimple:
    command: python
    args: ["-m", "deadsimple.mcp"]
    env:
      DSE_API_KEY: "dse_your_api_key"
    tools:
      include: [send_email, read_messages, read_message, reply_to_message]

Custom Skill (Alternative)

If you prefer a tighter, code-first integration, register a custom Hermes skill that uses the Python SDK directly:

skills/email.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 Hermes inbox if none is provided."""
    if not inbox_id:
        inbox = client.inboxes.create(display_name="Hermes Agent")
        inbox_id = inbox.inbox_id

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

def check_inbox(inbox_id: str):
    """Summarize recent messages in an inbox."""
    result = client.messages.list(inbox_id, limit=5)
    return [
        {"from": m.from_email, "subject": m.subject, "snippet": m.snippet}
        for m in result.messages
    ]

Drop the file into Hermes's skills/ directory and Hermes's skill-learner will register the functions automatically. From that point forward, send_email and check_inbox show up in the tools list alongside everything else.

Example Prompts

Once connected, try these with your Hermes Agent:

  • "Create an inbox called 'Hermes Support' and email hello@example.com a welcome message." — Hermes calls create_inbox, then send_email, and stores the inbox ID in its memory.
  • "Every 10 minutes, check the Hermes Support inbox and reply to any new customer message asking for their account ID." — Hermes writes this as a recurring skill and runs it without further prompting.
  • "Summarize unread messages across all my inboxes and email the summary to me at me@example.com." — Hermes uses list_inboxes, read_messages across each, then send_email.
  • "Forward the most recent billing inquiry to finance@company.com and reply to the sender acknowledging the handoff."list_threads + forward_message + reply_to_message.
  • "How close am I to my plan's email limit this month?" — Hermes calls get_usage and reports back.

Why Dead Simple Is a Good Fit for Hermes

  • First-class MCP, not a wrapper. Hermes's mcp_servers block and Dead Simple's MCP server speak the same protocol natively — no shim, no REST-to-MCP bridge.
  • Agent-owned inboxes. Every inbox Hermes creates is a real address on a domain DSE manages — no shared Gmail account that Google can suspend.
  • Webhooks that feed Hermes's memory. Inbound messages trigger webhooks in real time, so Hermes's persistent memory is fresh without polling.
  • Deliverability is handled. SPF, DKIM, DMARC, and bounce monitoring run on the Dead Simple side. Hermes never learns what a DKIM selector is — and shouldn't.
  • Free plan is enough to build. Five inboxes and 5,000 emails/month on the free tier, enough to wire Hermes up and run it in production on low-volume workloads.

Full Walkthrough

For a step-by-step guide — including a production-shaped support-triage skill and troubleshooting tips — read the full blog post:

How to Give Hermes Agent Email Using Dead Simple

Related Integrations

  • MCP Server — the underlying MCP server used by this integration
  • OpenClaw — same MCP server, different AI agent host
  • Python SDK — for building custom Hermes skills programmatically
  • CLI — manage inboxes and email from the terminal

Ready to build?

Create a free account and give Hermes Agent an inbox in minutes.

API Reference Get Started Free