mailbox-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mailbox-mcpwait for the password reset email"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mailbox
A local development mail sink: run one SMTP server plus an HTTP API for your whole machine and point every project at it. Emails never leave your device — instead they land in an inspectable inbox with a web UI, a CLI, and an MCP server for AI agents.
One shared instance eliminates per-project port collisions: start it once, connect many.
Install
pnpm add -D @sdk-e/mailbox # or npm i -D / yarn add -DOr run ad hoc:
npx @sdk-e/mailboxQuick start
mailbox # SMTP on :11025, inbox UI on http://localhost:11090Send mail to smtp://127.0.0.1:11025 from any app (nodemailer, Resend dev mode, etc.), then:
open http://localhost:11090 # or: mailbox-cli openBins
Bin | Purpose |
| Run the sink (SMTP + HTTP + inbox UI) |
|
|
| MCP server ( |
CLI examples
mailbox-cli list
mailbox-cli read 3
mailbox-cli wait "verification code" --timeout 10 # blocks until a new matching message arrives
mailbox-cli clearwait only matches messages that arrive after it starts — start it before triggering the send.
Library use
import { startMailbox } from "@sdk-e/mailbox";
const mailbox = await startMailbox({ smtpPort: 0, httpPort: 0 }); // 0 = ephemeral
console.log(mailbox.smtpPort, mailbox.url);
await mailbox.close();Ideal for integration tests that need an isolated throwaway inbox.
HTTP API (stable wire protocol)
Route | Method | Response |
| GET |
|
| GET | array of |
| GET | message above plus |
| DELETE |
|
| GET | inbox UI |
Configuration
Environment variables (a .env.local, then .env, in the working directory are loaded if present):
Variable | Default | Purpose |
|
| SMTP listen port |
|
| HTTP API/UI port |
| derived from port | Base URL used by CLI/MCP to reach the sink |
|
| Bind interface (loopback by default) |
Point your app's mailer at smtp://127.0.0.1:$MAIL_SMTP_PORT locally; in production keep using your real provider. The server refuses to start when NODE_ENV=production.
Why high ports?
1025/1080 (classic MailHog-style defaults) collide frequently. mailbox defaults to 11025/11090 so several SDK-E projects can share a single instance without stepping on each other or on other local tooling.
Development
Requires Node >= 20 and pnpm >= 11.
pnpm install
pnpm verify # format, lint, typecheck, test, buildSee CONTRIBUTING.md.
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Give an AI agent its own email address: send, reply, read, and wait for mail.
Email for AI agents — send, receive as a webhook, manage domains, templates, routing.
Hosted email MCP for AI agents with inboxes, send/receive, memory, recovery, and credits.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SDK-E/mailbox'
If you have feedback or need assistance with the MCP directory API, please join our Discord server