cloudflare-email
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., "@cloudflare-emailsearch for the invoice email from last week"
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.
cloudflare-email · 让 AI 帮你收邮件、查邮件
这是什么
一个搭在 Cloudflare 上的「邮件收件箱」,但它没有网页界面——它把收到的邮件交给 AI 助手(比如 Claude)来读、来查。
简单说:
发到
任意名字@你的域名的邮件,会被自动收下来、存好。 然后你可以直接对 AI 说:「帮我找上周那封发票邮件」「最近有没有验证码邮件」「把那封邮件的附件下下来」——AI 就能查到并读给你。
它适合这些场景:
用一个自己的域名收验证码、通知、账单、发票等邮件,让 AI 统一帮你查找和整理。
给 AI Agent 一个「邮箱」,让它能自动读取收到的邮件来完成任务。
不想登录邮箱一封封翻,想用「问一句、答一句」的方式查邮件。
Related MCP server: Email MCP Server
它能做什么
📥 自动收信:发到你域名下任意地址的邮件,全部收下并存档(正文 + 附件都留着)。
🔎 AI 可查询:AI 能搜索关键词、按发件人/时间筛选、读邮件全文、下载附件。
🈶 中文也能搜:中文主题和正文都能搜到。
🔔 新邮件提醒(可选):每来一封新邮件,可以自动通知到你指定的地址。
🔐 有访问密码:接口由一个密钥保护,只有持密钥的人/AI 才能查。
它是怎么跑的(一张图)
别人给你发邮件 ──▶ Cloudflare 收下 ──▶ 自动解析、存进数据库和文件存储
│
你 / 你的 AI 助手 ──问问题──▶ 这个服务的接口 ──查询──┘技术细节(数据库表、检索原理、组件划分)见 ARCHITECTURE.md。
快速部署到 Cloudflare(约 10 分钟)
全部在你自己的 Cloudflare 账号里完成,邮件只存在你自己的账号下,别人碰不到。
你需要准备
一个 Cloudflare 账号(免费版即可)。
一个已经添加到这个账号里的域名(用来收邮件,也用来访问服务)。
本机装好 Node.js 18 以上。
第 0 步:拿到代码、登录、建本地配置
git clone <this-repo> && cd cloudflare-email
npm install
npx wrangler login # 浏览器里登录你的 Cloudflare 账号
cp wrangler.jsonc wrangler.local.jsonc # 你的私有配置,不会被上传到代码仓库你的域名、数据库编号这些「跟你账号绑定」的信息,都填在
wrangler.local.jsonc里。它已被忽略,不会进代码仓库;后面的命令会自动用它。
第 1 步:创建数据库(存邮件的元信息和正文)
npx wrangler d1 create email_db命令会输出一个 database_id,把它复制到 wrangler.local.jsonc 里 d1_databases[0].database_id 那一行。
第 2 步:创建文件存储(存邮件原文和附件)
npx wrangler r2 bucket create email-store第 3 步:填好你的域名
打开 wrangler.local.jsonc,把 routes[0].pattern 改成你想用的子域名,例如 mail.yourdomain.com(必须是你 Cloudflare 上的域名)。这个地址将来就是 AI 访问服务的入口。
第 4 步:建表 + 设访问密码 + 部署
npm run db:remote # 在数据库里建好表
npx wrangler secret put MCP_TOKEN # 设一个访问密码(见下方提示)
npm run deploy # 部署上线访问密码:执行上面那条命令后,粘贴一段足够长的随机字符串作为密码。可以先用
openssl rand -hex 32生成一个。这个密码 AI 接入时要用,不要泄露。
第 5 步:把「收到的邮件」转给这个服务
让发到你域名的所有邮件都进入这个服务(一次性配置):
# 把 <ZONE_ID> 换成你域名的 Zone ID;<API_TOKEN> 换成一个有 “Email Routing 编辑” 权限的 Cloudflare API Token
curl -X PUT "https://api.cloudflare.com/client/v4/zones/<ZONE_ID>/email/routing/rules/catch_all" \
-H "Authorization: Bearer <API_TOKEN>" -H "Content-Type: application/json" \
--data '{"enabled":true,"name":"catch-all to worker","matchers":[{"type":"all"}],"actions":[{"type":"worker","value":["cloudflare-email"]}]}'不想敲命令也可以在网页里点:Cloudflare 控制台 → 你的域名 → Email Routing → Catch-all → 动作选 “Send to a Worker” → 选 cloudflare-email。
如果这个域名以前没开过 Email Routing,先在控制台点一下开启(它会自动帮你加好收信需要的 DNS 记录)。
完成! 现在发到 任意@你的域名 的邮件都会被收下来,服务地址是 https://你的子域名。
让 AI 用起来
把下面信息给到你的 AI 客户端即可:
接口地址:
https://你的子域名/mcp访问密码(放在请求头里):
Authorization: Bearer 你设置的密码
用 Claude Code,一行命令接入:
claude mcp add --transport http email https://你的子域名/mcp \
--header "Authorization: Bearer 你设置的密码"其他 MCP 客户端,用配置文件:
{
"mcpServers": {
"email": {
"url": "https://你的子域名/mcp",
"headers": { "Authorization": "Bearer 你设置的密码" }
}
}
}接好之后,直接用大白话问 AI 就行,例如:
「搜一下含‘发票’的邮件」
「看看最近 10 封邮件」
「打开第一封,把附件下载下来」
「上个月有没有来自某某的邮件」
背后 AI 会用到这些能力:搜索
search_emails、列表list_emails、读单封get_email、取附件get_attachment、统计stats,以及设置新邮件提醒set_webhook/ 查看get_webhook。你不用记这些名字,AI 会自己选。
试一下(30 秒跑通)
第 1 步:发一封测试邮件。 两种方式任选其一:
用你的手机或任意邮箱,给
test@你的域名发一封邮件,主题、正文随便写。或者用项目自带的自测脚本一键发送(会发一封带中文正文和 PDF 附件的样例邮件):
node scripts/send-test-email.mjs test@你的域名
第 2 步:让 AI 查出来。 对接好的 AI 说一句「帮我查最新的邮件」,它就能查到刚发的那封。AI 拿到的内容大致长这样:
{
"emails": [
{
"from": "selftest@你的域名",
"subject": "测试邮件 发票 E2E",
"date": 1781421031676,
"has_attachments": true,
"snippet": "你好,这是一封测试邮件,发票金额 8888 元。..."
}
]
}接着你就可以说「打开它」「把里面的附件下载下来」。
还没接 AI 也能验证:
npx wrangler tail cloudflare-email看是否收到,或直接查数据库:npx wrangler d1 execute email_db --remote --command "SELECT subject,from_addr FROM emails ORDER BY date DESC LIMIT 3"
新邮件提醒(可选)
想让新邮件来的时候自动通知你(或通知你的某个程序)?让 AI 执行:
set_webhook(url="https://你的接收地址")之后每来一封邮件,服务就会往这个地址发一条 JSON 通知(含发件人、主题、摘要等)。不想要了就设成空:set_webhook(url="")。
日常维护
npx wrangler tail cloudflare-email # 实时看收信和报错日志
npx wrangler secret put MCP_TOKEN # 换访问密码(换完旧密码立即失效)
# 直接翻看最近 10 封邮件
npx wrangler d1 execute email_db --remote \
--command "SELECT id,subject,from_addr,date FROM emails ORDER BY date DESC LIMIT 10"提示:
wrangler.local.jsonc只存在你本机,记得别误删;删了就照「第 0 步」重新cp一份再把你的数据库编号和域名填回去。
给开发者:本地运行与自检
cp .dev.vars.example .dev.vars # 填一个本地访问密码
npm run db:local # 建本地数据库表
npm run dev # 本地启动,:8787
MCP_TOKEN=本地密码 node scripts/mcp-smoke.mjs # 连本地接口自检
npm test # 单元测试
npm run typecheck # 类型检查线上自检:BASE="https://你的子域名" TOKEN="你的密码" node scripts/remote-check.mjs
安全说明
访问密码以 Cloudflare 加密保管(
MCP_TOKEN),不在代码里、不会进代码仓库。别把密码贴进代码或公开分享;要换随时
wrangler secret put MCP_TOKEN。你的真实域名、数据库编号写在
wrangler.local.jsonc,本地保存、不入库。
常见问题
服务地址打不开 / 连接被重置:别用默认的
*.workers.dev(部分地区会被阻断),用你自己的域名(本项目默认就是这么做的)。自己测试发邮件被退回(550 SPF):这是发件方校验问题;用正常邮箱(Gmail/QQ/Outlook 等)发信不受影响。
刚发的邮件查不到:收信到入库有几秒延迟,稍等再查,或用
wrangler tail看是否收到。提示 401 没权限:检查
Authorization: Bearer 密码是否填对。
许可
MIT — 可自由使用、修改、分发。
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/askie/cloudflare-email'
If you have feedback or need assistance with the MCP directory API, please join our Discord server