Documentation
ConnectMyEmail docs.
Quickstart, MCP setup, providers, REST API, webhooks, limits. Tool reference at /tools.
Quickstart
- 1. Sign in with Google or create an account.
- 2. Connect your inbox with an app password — Gmail, iCloud, Yahoo, Fastmail, ProtonMail Bridge, or any generic IMAP server. (Outlook coming soon.)
- 3. Copy your personal MCP URL from the dashboard.
- 4. Paste it into Claude Desktop, Cursor, ChatGPT (Settings → Connectors), or any MCP client. Restart. You're live.
Providers
- Connect from the Inboxes tab in your dashboard with an app password. More sign-in options coming soon.
- Gmail, Google Workspace — app password (enable 2-Step Verification, then create an app password).
- Outlook, Microsoft 365 — coming soon.
- Apple iCloud — app-specific password from appleid.apple.com.
- Yahoo — app password from Yahoo Account Security.
- Fastmail — app password from Settings → Privacy & Security.
- ProtonMail — Bridge required, then IMAP credentials.
- Generic IMAP/SMTP — host, port, username, password.
- AOL — app password from AOL Account Security.
MCP setup
- ConnectMyEmail runs as a remote MCP server. Add your personal URL (from dashboard → Settings) to your client's MCP config. No middleware, no sandbox account.
Claude Desktop — claude_desktop_config.jsonjson
{
"mcpServers": {
"connectmyemail": {
"url": "https://mcp.connectmyemail.com",
"headers": {
"Authorization": "Bearer cme_live_********"
}
}
}
}Cursor — Settings → MCP → Add newjson
{
"name": "connectmyemail",
"url": "https://mcp.connectmyemail.com",
"auth": "Bearer cme_live_********"
}ChatGPT — Settings → Connectors → Add MCP servertext
Name: Connect My Email URL: https://mcp.connectmyemail.com Auth: Bearer cme_live_********
REST API
- Base URL: https://mcp.connectmyemail.com/api
- Auth: Bearer token (API key from dashboard → Settings → API keys).
- Rate limits: 10/60/300 req/min on Free/Pro/Power.
Search inboxbash
curl https://mcp.connectmyemail.com/api/search \ -H "Authorization: Bearer cme_live_********" \ -G --data-urlencode "q=invoice from:stripe"
Recent threadsbash
curl "https://mcp.connectmyemail.com/api/connections/{connection_id}/threads?limit=20" \
-H "Authorization: Bearer cme_live_********"Run a sweepbash
curl -X POST https://mcp.connectmyemail.com/api/sweep/execute \
-H "Authorization: Bearer cme_live_********" \
-H "Content-Type: application/json" \
-d '{"sweep_id":"swp_...","dry_run":true}'Webhooks
- Register HTTPS endpoints from your dashboard Settings → Webhooks. Every delivery is signed with HMAC-SHA256 in the X-CME-Signature header.
- Endpoint caps: 1 (Free) · 3 (Pro) · 10 (Power).
- Events: email.received, email.sent, email.flagged, email.deleted, email.moved, sweep.completed, sweep.cleanup_executed, connection.added, connection.removed, connection.error, quota.warning, quota.reached, follow_up.due.
- Retries: 3 attempts at 30s / 5min / 30min before the endpoint is marked dead.
Example payload — sweep.completedjson
{
"id": "evt_01HXYZ...",
"type": "sweep.completed",
"created_at": "2026-05-04T08:13:42Z",
"data": {
"run_id": "run_18a2",
"scope": "30days",
"mode": "safe",
"processed_count": 18941,
"archived_count": 12031,
"duration_ms": 47210
}
}Verify signature (Node)bash
import crypto from "node:crypto";
const secret = process.env.CME_WEBHOOK_SECRET;
const sig = req.headers["x-cme-signature"];
const expected = crypto
.createHmac("sha256", secret)
.update(req.rawBody)
.digest("hex");
// constant-time compare
crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected));Limits & quotas
- Cleanup actions / month: 0 (Free, read/report only) · 25,000 (Pro) · 150,000 (Power).
- Sweep cap per scan: 25k / 250k / 500k.
- Deep scans / day: 1 / 3 / 5.
- Session timeout: 30 min / 8 h / 24 h.
- See /pricing for the full matrix.