Maildriply
All docs

Connect AI assistants (MCP)

Let Claude, Cursor, VS Code and other MCP clients send tracked email from your Gmail and read opens and clicks, with a scoped API key.

Maildriply runs a hosted Model Context Protocol server. Once it's connected, your AI assistant can send email from your own Gmail with open and click tracking. It can also check who opened, who clicked, and who needs a follow-up.

  • Server URL: https://api.maildriply.com/mcp
  • Transport: Streamable HTTP
  • Auth: Authorization: Bearer <your API key>

1. Create an API key

  1. Sign in at app.maildriply.com and connect Gmail if you haven't yet.
  2. Open Settings → AI & MCP.
  3. Name the key (for example "Claude on my laptop") and choose Allow sending email on or off. With it off, the key is read-only: the assistant can see emails and tracking but can't send.
  4. Click Create API key and copy it. It starts with mdk_ and is shown only once.
Treat the key like a password

Anyone with a send-enabled key can send email from your Gmail account. Create one key per device or tool so you can revoke them individually, and never commit a key to a repository.

2. Add the server to your client

Claude Code

claude mcp add --transport http maildriply https://api.maildriply.com/mcp \
  --header "Authorization: Bearer mdk_your_key"

Run claude mcp list to confirm it's connected.

Cursor

Add this to ~/.cursor/mcp.json (or .cursor/mcp.json in a project):

{
  "mcpServers": {
    "maildriply": {
      "url": "https://api.maildriply.com/mcp",
      "headers": { "Authorization": "Bearer mdk_your_key" }
    }
  }
}

VS Code

Add this to .vscode/mcp.json:

{
  "servers": {
    "maildriply": {
      "type": "http",
      "url": "https://api.maildriply.com/mcp",
      "headers": { "Authorization": "Bearer mdk_your_key" }
    }
  }
}

Claude Desktop

Claude Desktop's config file starts local servers, so connect through the mcp-remote bridge (it needs Node.js). Add this to claude_desktop_config.json and restart Claude Desktop:

{
  "mcpServers": {
    "maildriply": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://api.maildriply.com/mcp",
        "--header",
        "Authorization:${MAILDRIPLY_AUTH}"
      ],
      "env": { "MAILDRIPLY_AUTH": "Bearer mdk_your_key" }
    }
  }
}

Other clients

Any client that can add a remote MCP server over Streamable HTTP with a custom Authorization header will work. Clients that only support sign-in (OAuth) connectors, such as the Claude.ai and ChatGPT web apps, aren't supported yet.

3. Try it

Start with something harmless:

Send a test email to myself with the subject "Hello from my assistant".

The message lands in your own inbox. After that, try:

  • "Send a short intro to sam@acme.com about our pilot."
  • "Who opened yesterday's update but didn't click the link?"
  • "Follow up with everyone who hasn't opened the pricing email."
  • "Schedule this for Monday 9am Berlin time."

Tools

ToolNeeds sendingWhat it does
get_accountConnected Gmail address, today's sending quota, and what the key can do
send_email✓Send now or at a scheduled time, to up to 500 recipients. Each one gets an individual, tracked copy
send_follow_up✓Reply in the original Gmail thread, to everyone it reached or a subset
send_test_email✓Send a preview to your own address
reschedule_email / cancel_scheduled_email✓Change or cancel a scheduled send
list_emailsSearch and filter what you've sent and scheduled
get_email_trackingPer-recipient delivery, opens and clicks, plus clicks per link
get_email_threadAn email and its follow-ups, with engagement per step
get_recent_activityNewest opens, clicks and unsubscribes across all emails
get_analytics_overviewOpen, click and delivery rates for 7, 30 or 90 days
list_templates / get_template / list_tagsReuse your saved templates and tags

Plain-text bodies are converted to simple HTML, and links in them are tracked automatically. Assistants can also send full HTML.

How it stays safe

  • Your Gmail, your address. Mail always goes out from the Gmail account you connected. The assistant can't change the sender, and Maildriply still holds only the gmail.send scope, so neither we nor the assistant can read your inbox.
  • You approve actions. MCP clients ask before running a tool, and read-only keys can't send at all.
  • Same guardrails as the dashboard. The daily sending quota, warm-up, rate limits, and suppression of people who unsubscribed all apply.
  • Revocable. Revoke a key in Settings → AI & MCP and it stops working on its next request. Each key shows when it was last used.
Opens are approximate

Privacy features like Apple Mail Privacy Protection and Gmail's image proxy can record opens nobody made, or hide real ones. Your assistant sees the same caveat. Clicks and replies are stronger signals. See Reading the analytics dashboard.

Troubleshooting

  • 401 "Invalid or revoked API key". Check that the key was pasted in full, including mdk_, and with the Bearer prefix. Then check that it hasn't been revoked.
  • "No Gmail account is connected". Connect Gmail in the dashboard (Settings → Gmail & domain), then retry.
  • "This API key does not have the emails:send scope". The key is read-only. Create a new one with Allow sending email turned on.
  • "Too many send requests". Send tools are rate-limited per account. Wait a minute and retry.