imap-mcp-server
imap-mcp
源代码公开,而非产品。 这是一个通用的 IMAP → MCP 服务器,运行在 Cloudflare Workers 上。它以 MIT 许可证发布,因此代码可以被阅读、复制和学习——但它是为且仅为一个邮箱构建和运行的:一个个人 iCloud 账户。不提供任何支持承诺:问题不会被分类处理,不征集拉取请求,没有发布版本,这里没有任何内容为其他人的使用而做版本管理。如果它对你有用,请 fork 它。
它的通用性来自设计而非野心——主机、端口和凭据都是配置而非常量——因此它应该可以针对任何 IMAP 服务器工作。但只有 iCloud 经过了实际验证。
状态:脚手架。 目前还没有实现任何功能。两个 worker 都是占位符,能够完成安装、lint、类型检查、测试并通过部署试运行。参见路线图。
功能
将邮箱索引到 Cloudflare 的存储中,然后通过搜索和检索工具将其提供给 MCP 客户端——这样模型就可以针对十五年的邮件回答问题,而无需在每次查询时都让邮箱本身参与其中。
┌────────────────────┐ IMAP over TLS ┌──────────────┐
│ imap-mcp-sync │ ───────────────▶ │ mailbox │
│ packages/sync │ ◀─────────────── │ (iCloud) │
│ cron, owns creds │ └──────────────┘
└─────────┬──────────┘
│ writes ▲ writes proxied over
▼ │ a service binding
┌────────────────────┐ │
│ D1 (+FTS5) and R2 │ │
└─────────┬──────────┘ │
│ reads │
▼ │
┌────────────────────┐────────────────┘ ┌──────────────┐
│ imap-mcp-server │ Streamable HTTP │ MCP client │
│ packages/mcp │ ◀───────────────── │ behind CF │
│ stateless, no creds │ Access │
└────────────────────┘ └──────────────┘两个 worker,它们之间的划分是安全设计而非打包选择:
packages/sync(imap-mcp-sync)是系统中唯一使用 IMAP 协议的部分。它持有应用专用密码——在 iCloud 上,该密码授予完整的邮箱访问权限包括 SMTP 发送——因此该凭据只存在于一个地方。packages/mcp(imap-mcp-server)是一个无状态读取器。它查询索引,从不查询邮箱,并通过服务绑定将少数写操作代理回 sync worker,而不是自行打开连接。
Related MCP server: stalwart-mail-mcp
快速开始
pnpm install # installs both packages
pnpm run lint # biome check (lint + format)
pnpm run typecheck # wrangler types + tsc --noEmit
pnpm run test # vitest, inside workerd
pnpm run dead-code # knip
pnpm run build # wrangler deploy --dry-run, both workers每个包,从 packages/sync 或 packages/mcp 目录执行:pnpm run dev、pnpm run test:watch、pnpm run deploy。
配置
此仓库是公开的,因此不提交任何部署特定的值——没有 Cloudflare 账户 ID、没有 zone 标签、没有 Cloudflare Access 团队域名或应用程序受众(AUD)、没有邮箱地址。两个 wrangler.jsonc 都不包含 account_id,MCP worker 也没有声明任何路由。
你需要提供的所有内容都在 .env.example 中命名并说明。将其复制为 .env 并填写。简而言之:
内容 | 放置位置 |
| 你的环境;wrangler 直接读取它 |
MCP worker 的路由 / zone | 你添加到 |
|
|
|
|
|
|
在本地,密钥放在每个包中 gitignore 的 .dev.vars 中;每个包都有一个 .dev.vars.example 可供复制。
两个 worker 默认都不可达
两个 wrangler.jsonc 文件中的 workers_dev 和 preview_urls 都是 false,MCP worker 也没有声明任何路由。因此,新部署的 worker 无法从互联网访问。这是有意为之:在没有文件夹隔离的情况下,MCP 端点实际上是对整个邮箱的读取访问,因此在 Cloudflare Access 置于其前面之前,它绝不能变得可访问。如果没有 workers_dev: false,无论存在什么路由或 Access 策略,worker 都会在 <name>.<account>.workers.dev 上运行。
一份完整的从零开始部署指南——密钥、Access 设置、绑定、迁移和回填——尚未编写;它将与系统的其余部分一起发布。
路线图
作为此仓库的 issues 跟踪:
仓库脚手架——本项 | |
将 IMAP 客户端封装在内部接口之后 | |
D1 schema 和迁移 | |
Tracer:将单个文件夹同步到 D1 | |
同步路径的队列扇出 | |
MCP 服务器和 | |
增量同步:水印和 | |
附件到 R2,带文本提取 | |
使用 Access Managed OAuth 保护 MCP 端点 | |
| |
通过服务绑定的写工具,带审计日志 | |
完整回填和设置指南 |
一次技术验证解决了整个架构所依赖的唯一问题——Cloudflare Worker 到底能不能对 iCloud 使用 IMAP 协议? 可以:在 993 端口上 TLS 和 LOGIN 耗时 755 毫秒,文件夹已列出,消息已获取并完成 MIME 解码,草稿已追加并标记。因此同步路径是一个 Worker,不需要迁移到 Container。那些约束设计的发现——CONDSTORE 排序、iCloud 上没有 MOVE、SEARCH 无法用于内容搜索——已写入它们所影响的工单中。
许可证
MIT——参见 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 Servers
- AlicenseNot gradedqualityBmaintenanceConnects multiple IMAP and SMTP mailboxes to MCP clients like ChatGPT without exposing credentials, enabling email search and thread retrieval via natural language.1Apache 2.0
- AlicenseNot gradedqualityCmaintenanceConnects AI agents to self-hosted Stalwart mail servers via a Cloudflare Worker and JMAP, enabling mailbox search, reading, listing, and two-step draft-and-send email operations through MCP.MIT
- AlicenseNot gradedqualityCmaintenanceEnables interaction with Gmail through MCP, supporting search, read, send, reply, forward, draft management, labels, and multiple accounts, deployed on Cloudflare Workers.MIT
- AlicenseNot gradedqualityCmaintenanceEnables connecting Gmail to MCP clients, allowing search, read, send, reply-all, forward, attachments, drafts, labels, and thread management across multiple Google accounts at once via a self-hosted Cloudflare Worker.MIT
Related MCP Connectors
Read, search, send, organize, draft and schedule email across your inboxes from any MCP client.
Hosted email MCP for AI agents with inboxes, send/receive, memory, recovery, and credits.
Cloudflare Workers MCP server: email-validator
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/lswith/imap-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server