74
/ 100
10 days ago
glama

better-email-mcp

IMAP/SMTP email for AI agents -- read, send, organize folders, and manage attachments across multiple accounts, with auto-discovery.

Is this your MCP?

Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find.

Install from

M8ven verifies MCPs across every public registry — install directly from whichever one you prefer.

// key findings
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
🔐
You'll be asked for 5 credentials: CLOUDFLARE_API_TOKEN, CREDENTIAL_SECRET, EMAIL_APP_PASSWORD, MCP_RELAY_PASSWORD, GMAIL_APP_PASSWORD
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// required environment variables
This server reads these from process.env. You'll be asked to provide them before it can run.
configCLOUDFLARE_ACCOUNT_ID
🔐 secretCLOUDFLARE_API_TOKEN
configCLOUDFLARE_KV_NAMESPACE_ID
🔐 secretCREDENTIAL_SECRETderived deterministically from (EdDSA), so the user's identity is
🔐 secretEMAIL_APP_PASSWORDbetter-email-mcp Start the MCP server over stdio (default). Reads credentials from EMAIL_CREDENTIALS, or from EMAIL_USER +
configEMAIL_CREDENTIALS"": "user@gmail.com:app-password"
configEMAIL_PROVIDER
configEMAIL_USERbetter-email-mcp Start the MCP server over stdio (default). Reads credentials from EMAIL_CREDENTIALS, or from + EMAIL_APP_PASSWORD
configHOSTNo - Bind address (http mode)
configMCP_AUTH_DISABLENo (http) - Set to 1 to skip Bearer JWT verification when behind an external auth gateway
configMCP_KV_BASE_URL
configMCP_PORT
configMCP_RELAY_URL
configMCP_STORAGE_BACKENDEMAIL_CREDENTIALS. Storage maps to Cloudflare via =cf-kv (already set in
configMCP_TRANSPORTbetter-email-mcp --http Start the server in HTTP (multi-user, OAuth 2.1) mode. Equivalent to =http or TRANSPORT_MODE=http
configOUTLOOK_CLIENT_IDNo d56f8c71-9f7c-43f4-9934-be29cb6e77b0 (bundled public client) Override the bundled Azure AD public client for self-hosted Outlook OAuth2 (or --client-id=<id> on auth, which overrides this env var)
configOUTLOOK_EMAILNo - Workaround when Microsoft device-code response omits the email field
configPORTNo 0 (OS-assigned) Server port (http mode); set explicitly (e.g. 8080) to bind a fixed port
configPUBLIC_URLe =https://your-domain.com \
configTRANSPORT_MODEbetter-email-mcp --http Start the server in HTTP (multi-user, OAuth 2.1) mode. Equivalent to MCP_TRANSPORT=http or =http
configCF_ENDPOINT
configRELAY_PW
🔐 secretMCP_RELAY_PASSWORD(form gate), MCP_DCR_SERVER_SECRET (intentional multi-user
configGMAIL_EMAIL
🔐 secretGMAIL_APP_PASSWORD
// full audit trail
The full breakdown of what we checked, the deductions that landed, the network hosts, the dependency advisories, and concrete fix guidance is available to verified publishers.
// embed badge in your README
[![M8ven Score](https://m8ven.ai/badge/mcp/laschopin-better-email-mcp-worker-wbwkvf)](https://m8ven.ai/mcp/laschopin-better-email-mcp-worker-wbwkvf)
commit: 1e9f67a9d8b857660f68d5515552d1fb65346103
code hash: 83ec63febd07f7d2c0195b8b5515a1f8038a4451a5c253ca318f5b55c85de4e5
verified: 7/21/2026, 8:38:17 AM
view raw JSON →