Provides disposable email inboxes that allow AI agents to create addresses and wait for verification codes.
Also known as pexni/smails, @smails/cli
- Stars
- 39
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 0.1.0
- Last commit
- Nov 5, 2026
- License
- MIT
What is smails MCP?
smails provides disposable email inboxes that allow AI agents to create addresses and wait for verification codes.
Summary generated from the project's README
About smails MCP server
Smails provides disposable email inboxes specifically designed for AI agents to handle sign-up processes and verification steps. Developers can use this server to allow agents like Claude Code or Codex to generate new email addresses and monitor incoming messages for specific content. The system works through a CLI or as an MCP server that can be run locally via stdio or remotely over HTTP.
To use the service, you must first sign in using GitHub through the login command, which stores credentials in a local JSON file. Once authenticated, the server provides tools such as create_mailbox, wait_for_message, list_messages, and read_message. These tools allow an agent to manage the entire lifecycle of a temporary inbox, from creation to reading a verification code and deleting messages. The service requires Node.js 22.18 or newer to run the CLI components.
What you can do with it
- 1Automate account sign-upsAn AI agent can create a new temporary email address to register for a service.
Written from the project's README. Every use case is checked against a quote from it.
How to install smails MCP
Formats verified 10 Nov 2026Add to CursorAdd to GooseInstall smails MCP in Claude Code
$ claude mcp add smails -- npx -y @smails/cliInstall smails MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"smails": {
"command": "npx",
"args": [
"-y",
"@smails/cli"
]
}
}
}Install smails MCP in VS Code
.vscode/mcp.json
{
"servers": {
"smails": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@smails/cli"
]
}
}
}Install smails MCP in VS Code CLI
$ code --add-mcp '{"name":"smails","type":"stdio","command":"npx","args":["-y","@smails/cli"]}'Install smails MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"smails": {
"command": "npx",
"args": [
"-y",
"@smails/cli"
]
}
}
}Install smails MCP in Codex
$ codex mcp add smails -- npx -y @smails/cliInstall smails MCP in Codex config.toml
~/.codex/config.toml
[mcp_servers.smails] command = "npx" args = ["-y", "@smails/cli"]
Install smails MCP in Gemini CLI
$ gemini mcp add -s user smails npx -- -y @smails/cliInstall smails MCP in Gemini settings.json
~/.gemini/settings.json
{
"mcpServers": {
"smails": {
"command": "npx",
"args": [
"-y",
"@smails/cli"
]
}
}
}Automated checks
Ran Nov 12, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablePass
- Open source license (OSI)Pass
- Commit or release in the last yearPass
- Package name not close to a popular packagePass
- Remote endpoint uses HTTPSPass
- Destructive tools are labelledNot checked
- No hidden instructions to the modelPass
- No critical advisory in the package or its dependenciesPass
README
View on GitHub@smails/cli
Disposable email for AI agents. Create an inbox, use the address to sign up somewhere, and wait for the verification code — from a terminal, a script, Claude Code or Codex.
Requires Node.js 22.18 or newer. No runtime dependencies.
Sign in (once)
npx @smails/cli login
It prints a link and opens your browser: sign in with GitHub and confirm the code. The session is stored in ~/.config/smails/credentials.json and shared with the MCP server below.
Get a verification code
npx @smails/cli create # → brave-otter-k3j9x2m8@smails.dev
npx @smails/cli wait --subject code # blocks until it arrives, prints the message
npx @smails/cli wait --json | jq -r .text # in scripts
wait exits with status 2 if nothing arrives before --timeout (default 120 s).
Commands
| Command | |
|---|---|
login / logout / whoami |
Account and today's quota |
create |
New mailbox; becomes the current one |
list |
Your active mailboxes |
inbox [address] |
Messages (default: current mailbox) |
read <id> |
One message (short id prefix works) |
wait [address] |
Wait for new mail: --from, --subject, --timeout, --since |
delete <id> |
Delete a message |
mcp |
Run the MCP server over stdio |
Add --json for machine-readable output. npm i -g @smails/cli to type smails instead of npx @smails/cli.
MCP server
Remote (recommended) — or just tell your agent: Set up smails for me by following https://smails.dev/setup.md
claude mcp add --transport http --scope user smails https://smails.dev/mcp # Claude Code, then /mcp to sign in
codex mcp add smails --url https://smails.dev/mcp && codex mcp login smails # Codex
Local (stdio):
claude mcp add smails -- npx -y @smails/cli mcp # Claude Code
codex mcp add smails -- npx -y @smails/cli mcp # Codex
Sign in with npx @smails/cli login, or let the agent call the login tool, which returns a link for you to confirm. Tools: create_mailbox, wait_for_message, list_messages, read_message, list_mailboxes, delete_message, whoami.
Upgrading from 0.0.x
0.1 requires signing in; the anonymous API is gone and old saved mailboxes no longer work. Run npx @smails/cli login, then create.
Environment
SMAILS_URL — server to use (default https://smails.dev).
License
MIT
smails MCP questions
How do I add smails MCP to Claude Code?
Run claude mcp add smails -- npx -y @smails/cli in your terminal. Add --scope user to make it available in every project.
How do I add smails MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
How do I sign in to smails?
You can sign in by running npx @smails/cli login, which provides a link to sign in with GitHub via your browser.
Can I use smails in a script?
Yes, you can use the --json flag to get machine-readable output for use in scripts with tools like jq.
What happens if a verification email doesn't arrive?
The wait command will exit with status 2 if no message arrives before the timeout period, which defaults to 120 seconds.