MoeMail

给 AI Agent 用的临时邮箱

MoeMail 的 MCP server、CLI 和 Agent skill。你的 Agent 自己创建邮箱、等待验证邮件、读出验证码、删掉邮箱——走的就是驱动 moemail.app 的那套 API。

8 个 MCP 工具 · npx 直接运行,无需部署 · 支持 Claude Desktop、Cursor、Claude Code、Codex

三种接入方式

MCP server

npx -y @moemail/mcp。8 个工具,任何 MCP 客户端都能通过 stdio 调用。不用部署,也不用常驻运行。

@moemail/mcp

CLI

npm i -g @moemail/cli。9 条命令,全部支持 --json 输出和有含义的退出码——为 shell 驱动的 Agent 和 CI 任务设计。

@moemail/cli

Agent skill

moemail skill install 把一份 SKILL.md 装进 Claude Code 或 Codex,Agent 在被要求之前就已经知道「创建 → 等待 → 读取 → 删除」这套流程。

SKILL.md

工具列表

名称与 server 实际注册的完全一致。让 Agent 真正能用起来的是 wait_for_email:它最多阻塞 90 秒,超时返回 status: "timeout" 而不是报错,Agent 只需再调一次。

create_email
创建邮箱,返回 idaddress。有效期 1h24h3dpermanent
wait_for_email
轮询直到有新邮件到达(单次 ≤ 90 秒),超时则平稳返回。
list_messages
邮箱收到的邮件列表,最新的在前。
read_message
单封邮件的完整正文与 HTML。
list_emails
这个 API Key 名下的所有邮箱。
send_email
用临时地址回信(需要发信额度)。
delete_message
删除一封邮件。
delete_email
删除邮箱及其中全部内容。

一次会话是什么样

取验证码的完整循环,按 Agent 实际发出的工具调用呈现:四次调用,加上邮件到达前的若干次轮询。

用一个一次性地址在 example.com 注册 beta,然后告诉我验证码。

Agent 创建一个邮箱,把地址填进注册表单。

create_email { "expiry": "1h" }
{ "id": "k3f…", "address": "x7q2m9@moemail.app", "expiresAt": "…T15:04:05.000Z" }

然后等待。每次轮询算一次 API 调用;这里邮件在 12 秒后到达。

wait_for_email { "emailId": "k3f…", "timeoutSec": 90 }
{ "status": "received", "elapsedSec": 12,
  "message": { "messageId": "m81…", "from": "no-reply@example.com",
               "subject": "Your code is 482913", "receivedAt": "…" } }

它读取邮件,从正文里取出验证码。

read_message { "emailId": "k3f…", "messageId": "m81…" }
{ "id": "m81…", "from": "no-reply@example.com", "subject": "Your code is 482913",
  "content": "Enter 482913 to finish signing up. …", "html": "…", … }

最后删除邮箱,不留任何东西。

delete_email { "emailId": "k3f…" }
{ "success": true, "deleted": "k3f…" }
Agent

完成——验证码是 482913。邮箱已删除。

连接客户端

把你的 Key 填到圆点的位置。mcpServers 这一块在 Claude Desktop、Cursor 和 Windsurf 里完全相同;Claude Code 和 Codex 用各自的格式写同一条命令。

Claude Desktop · claude_desktop_config.json
{
  "mcpServers": {
    "moemail": {
      "command": "npx",
      "args": ["-y", "@moemail/mcp"],
      "env": {
        "MOEMAIL_API_KEY": "mk_••••••••••••"
      }
    }
  }
}
Cursor · .cursor/mcp.json
{
  "mcpServers": {
    "moemail": {
      "command": "npx",
      "args": ["-y", "@moemail/mcp"],
      "env": {
        "MOEMAIL_API_KEY": "mk_••••••••••••"
      }
    }
  }
}
Claude Code · terminal
claude mcp add moemail -e MOEMAIL_API_KEY=mk_•••••••••••• -- npx -y @moemail/mcp
Codex CLI · ~/.codex/config.toml
[mcp_servers.moemail]
command = "npx"
args = ["-y", "@moemail/mcp"]
env = { MOEMAIL_API_KEY = "mk_••••••••••••" }

自部署的 MoeMail?加一个指向你实例的 MOEMAIL_API_URL——两个包默认都指向 moemail.app。

或者在 shell 里直接用

同一套 API,不需要 Agent 运行时。每条命令都接受 --json;退出码 1 是运行时错误,2 是配置或鉴权错误,脚本因此能区分「邮件还没到」和「Key 不对」。

@moemail/cli · bash
npm i -g @moemail/cli
moemail config set api-key mk_••••••••••••

# 1. a mailbox that lives for an hour
moemail create --expiry 1h --json
# {"id":"k3f…","address":"x7q2m9@moemail.app","expiresAt":"2026-09-02T15:04:05.000Z"}

# 2. block until the verification mail lands (exit 1 on timeout)
moemail wait --email-id k3f… --timeout 120 --json
# {"messageId":"m81…","from":"no-reply@example.com","subject":"Your code is 482913","receivedAt":"…"}

# 3. read it, then clean up
moemail read --email-id k3f… --message-id m81… --json
moemail delete --email-id k3f…

只教一次

CLI 自带一份 skill 文件。装好之后,Claude Code 或 Codex 遇到需要一次性收件箱的任务时会自己去用 moemail,不必每次都由你解释流程。

bash
moemail skill install                    # auto-detects Claude Code and Codex
moemail skill install --platform claude  # ~/.claude/skills/moemail/SKILL.md
moemail skill install --platform codex   # ~/.codex/skills/moemail/SKILL.md

Key、额度与价格

两个包都用 MoeMail API Key 鉴权。在个人中心创建即可——与 REST API 用的是同一把 Key,也共用同一份月度额度。

API 访问是付费附加项:默认套餐不含免费调用次数。在商店用 MoeCoin 购买 API 调用包或升级为 Duke。网页收件箱本身始终免费,你可以先看看邮箱的实际效果,再为 API 付费。

请为轮询预留额度:wait_for_email 的每次轮询、CLI wait 的每次探测都算一次调用。一次典型的验证流程——创建、等待、读取、删除——是四次调用加上轮询次数。

打开个人中心 → API Key

常见问题

两个包都是 MIT 协议,可免费安装。但通过它们调用 MoeMail 需要一把带额度的 API Key,这是付费附加项——默认套餐不含任何 API 调用。在 moemail.app 使用网页收件箱是免费的。

任何能启动 stdio server 的 MCP 客户端:上面展示了 Claude Desktop、Cursor、Windsurf、Claude Code 和 Codex CLI。server 通过 npx 启动,唯一的要求是 Node.js 18 或更高版本。

当编辑器或聊天应用里的 Agent 需要自己调用工具时用 MCP server。当 shell 脚本、CI 任务或终端型 Agent 驱动流程时用 CLI,它的 --json 输出和退出码正是为此设计。两者用同一把 Key 访问同一套 API。

可以。把 MOEMAIL_API_URL 设为你的实例地址即可,默认值是 https://moemail.app。CLI 也可以用 `moemail config set api-url` 保存它。

send_email 工具和 `moemail send` 命令可以从临时地址发信,前提是账号有发信额度。发信额度与 API 调用额度是分开计算的。

暂时没有。目前 server 通过 npx 在本地以 stdio 运行,所有主流客户端都支持这种方式。托管的 Streamable HTTP 端点已在计划中;上线后会在本页公布,本地方式仍会继续可用。

两个包都在 GitHub 上开源的 MoeMail 仓库里,位于 packages/mcp 和 packages/cli,与服务本身同仓。

给你的 Agent 一个收件箱

创建一把 API Key,粘贴一段配置,你的 Agent 下一次跑注册流程时就能自己走完。