The local email inbox
for developers
A local SMTP server and modern web UI that catches every email your app sends during development. Now readable by your AI agent via the Model Context Protocol.
Free & open source (MIT) · npm i -g maildev
Hover the screenshot to preview dark mode · ships with light & dark themes
MailDev is sponsored by Inngest — the durable execution platform for AI agents and workflows, letting you ship reliable products with no infrastructure. Check it out today!
Your dev inbox, readable by your AI agent
MailDev ships a built-in Model Context Protocol (MCP) server, so AI agents can search your inbox, pull verification links, and check that email actually went out — in plain language. Works with any MCP client, including Claude, Cursor, and Codex.
Turn it on with a single flag:
maildev --mcp
# MCP endpoint now live at http://localhost:1080/mcp
Or run the standalone maildev-mcp stdio server for
desktop AI tools.
- 5 tools
- 3 resources
- 4 prompts
https://app.test/verify?token=a1b2c3
Everything you need to test email locally
Catch mail on a local SMTP port and inspect it in a fast, modern interface.
Every format
Switch between rendered HTML, plain text, headers, and raw source for any message.
Responsive preview
Resize the preview to any viewport to check how your emails render on mobile.
Command palette ⌘K
Hit ⌘K to jump anywhere, run actions, and search your inbox — without leaving the keyboard.
Built for modern development
A complete TypeScript rewrite — same zero-config workflow, brand-new foundation.
SMTP catch-all
Point your app at localhost:1025 and every outgoing
email lands in MailDev instead of a real inbox.
REST API
A full JSON API under /api to list, read, search,
download, and delete mail from your tests.
Real-time
New mail appears instantly over WebSockets — no refresh, no polling.
Attachments
Receive, preview, and download attachments exactly as they were sent.
Relay & auto-relay
Selectively forward a message to a real SMTP server, or auto-relay with allow/deny rules.
Notifications
Optional browser notifications the moment a new email is received.
Light & dark
A polished interface that follows your theme, easy on the eyes at 2am.
TypeScript & embeddable
Fully typed. Use the CLI, Docker, or embed the programmatic API in your own Node app.
Runs anywhere
One npm install or a single Docker command. Also serves over HTTPS when you need it.
Get started in seconds
Install, point your mail transport at port 1025, and open the inbox.
Install with npm
npm install -g maildev
maildev
…or with Docker
docker run -p 1080:1080 -p 1025:1025 maildev/maildev
Send mail to it
Configure your app to send over SMTP on localhost:1025,
then open http://localhost:1080. For example, with
Nodemailer:
// Nodemailer — no auth needed in development
const transport = nodemailer.createTransport({
host: 'localhost',
port: 1025,
})