zoho-multi-mcp
zoho-multi-mcp
一个 MCP (Model Context Protocol) 服务器,将 Claude 等 AI 助手连接到您的 Zoho Mail 账户。直接从您的 AI 工作流中读取、发送、搜索、回复和删除电子邮件——并从一个轻量级进程运行任意数量的 Zoho 邮箱,而不是每个邮箱一个进程。
这是 FujiwaraChoki/zoho-mail-mcp 的一个分支(MIT 许可,见 LICENSE),增加了多账户支持。原始单账户服务器的所有功劳归功于上游作者。
为什么存在这个分支
如果您通过 MCP 运行多个 Zoho 邮箱(一个团队、一组特定于项目的发件人等),自然的设置是每个邮箱一个服务器进程。这可行,但每个进程都承担相同的固定 Bun/V8 运行时内存开销——大约 75-85MB RSS——无论邮箱多小或多空闲。三个邮箱的成本是该基线的三倍,却没有好处,因为实际的每账户状态(一个 OAuth 令牌、一个文件夹缓存)很小。
这个分支增加了一个可选的多账户模式:一个进程可以服务多个 Zoho 账户,既可以作为一个端点,由调用方指定每次调用的账户,也可以——对于现有设置更安全的选择——作为多个监听器,各自绑定自己的固定端口,每个监听器的行为与普通的单账户服务器完全一致。在生产环境中测量:3 个独立的单账户进程合计约 ~230MB RSS,合并为一个进程后约 ~90MB RSS,服务相同的 3 个邮箱。如果只需要一个邮箱,下面“多账户模式”部分之前的所有内容与上游完全一致,并且一如既往地工作。
Related MCP server: Mailing Manager MCP
工具
Tool | Description |
| 列出所有邮件文件夹 |
| 列出文件夹中的邮件,支持过滤和分页 |
| 读取特定邮件的完整内容 |
| 在所有文件夹中按关键字搜索邮件 |
| 发送新邮件 |
| 回复现有邮件(回复 / 全部回复) |
| 删除邮件(移至垃圾箱或永久删除) |
设置
1. 创建 Zoho API 客户端
前往 Zoho API 控制台(美国数据中心使用
.com)点击 添加客户端 > 自客户端
记下您的 客户端 ID 和 客户端密钥
2. 生成刷新令牌
运行交互式设置助手:
bun run setup.ts或手动操作:
在自客户端中,使用以下范围生成授权代码:
ZohoMail.accounts.READ,ZohoMail.folders.READ,ZohoMail.messages.READ,ZohoMail.messages.CREATE,ZohoMail.messages.DELETE将持续时间设置为 10 分钟,添加描述,然后点击 创建
复制生成的代码,并使用设置脚本进行交换
3. 验证凭据
ZOHO_CLIENT_ID=your_id ZOHO_CLIENT_SECRET=your_secret ZOHO_REFRESH_TOKEN=your_token bun run setup.ts --verify4. 配置您的 MCP 客户端
单账户 — Claude Code (~/.claude.json)
{
"mcpServers": {
"zoho-mail": {
"command": "bun",
"args": ["run", "/path/to/zoho-multi-mcp/src/index.ts"],
"env": {
"ZOHO_CLIENT_ID": "your_client_id",
"ZOHO_CLIENT_SECRET": "your_client_secret",
"ZOHO_REFRESH_TOKEN": "your_refresh_token",
"ZOHO_DATACENTER": "eu"
}
}
}
}Claude Desktop 的 claude_desktop_config.json 使用相同格式。
多账户模式
对于您想通过此服务器运行的每个 Zoho 账户,重复上述任何步骤一次,然后选择两种模式之一。
模式 A — 一个端点,调用方选择账户
将 ZOHO_ACCOUNTS_JSON 设置为账户的 JSON 数组,并像往常一样使用 ZOHO_HTTP_PORT(或 stdio)启动服务器。每个工具都会增加一个必需的 account 字段(您提供的 ID 的字符串枚举),每次调用都必须指明它针对哪个账户。
export ZOHO_ACCOUNTS_JSON='[
{"id": "work", "clientId": "...", "clientSecret": "...", "refreshToken": "..."},
{"id": "personal", "clientId": "...", "clientSecret": "...", "refreshToken": "..."}
]'
export ZOHO_HTTP_PORT=8010
bun run src/index.ts当您的 MCP 客户端可以接受每次调用都带有显式 account 参数,并且您希望配置单个 URL 时,此模式很合适。
模式 B — 一个进程,多个固定账户监听器
如上设置 ZOHO_ACCOUNTS_JSON,并设置 ZOHO_MULTI_PORT_JSON 将每个账户绑定到其自己的端口。每个监听器的行为都像一个真正的单账户服务器——任何工具上都没有 account 字段,与该端口上的普通单账户设置字节级相同。
export ZOHO_ACCOUNTS_JSON='[
{"id": "work", "clientId": "...", "clientSecret": "...", "refreshToken": "..."},
{"id": "personal", "clientId": "...", "clientSecret": "...", "refreshToken": "..."}
]'
export ZOHO_MULTI_PORT_JSON='[
{"id": "work", "port": 8010, "name": "zoho-mail-work"},
{"id": "personal", "port": 8011, "name": "zoho-mail-personal"}
]'
bun run src/index.ts这是在迁移现有多进程设置时使用的模式:将您的 MCP 客户端配置指向它已经使用的相同端口,启动这一个进程而不是您过去运行的几个进程,其他一切都不需要更改。name 是可选的,仅影响日志行标签。
两种模式都不是必需的——省略 ZOHO_ACCOUNTS_JSON 和 ZOHO_MULTI_PORT_JSON,服务器行为与原始单账户上游项目完全一致,直接读取 ZOHO_CLIENT_ID/ZOHO_CLIENT_SECRET/ZOHO_REFRESH_TOKEN。
环境变量
Variable | Required | Description |
| 仅单账户模式 | 来自 Zoho API 控制台的 OAuth2 客户端 ID |
| 仅单账户模式 | OAuth2 客户端密钥 |
| 仅单账户模式 | OAuth2 刷新令牌(通过设置生成) |
| 否 | Zoho 数据中心: |
| 仅多账户模式 |
|
| 仅多端口模式 |
|
| 否 | 在此端口上作为 HTTP 服务器运行,而不是 stdio |
| 否 | stdio / 单端口 HTTP 模式的日志行标签 |
功能
带自动刷新的 OAuth2 - 令牌自动刷新,无需手动干预,在多账户模式下按账户缓存
速率限制 - 内置滑动窗口速率限制器(30 次/分钟),以保持在 Zoho API 限制内
401 重试 - 自动刷新令牌并在认证失败时重试
HTML 转纯文本 - 邮件内容转换为干净的纯文本,供 AI 使用
多账户、低内存 - 参见上文“为什么存在这个分支”
要求
Bun 运行时
一个或多个具有 API 访问权限的 Zoho Mail 账户
许可证
MIT (c) 2026 Sami Hindi — 见 LICENSE。此分支中的多账户/多端口新增功能在相同许可证下发布。
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect any mailbox to Claude, ChatGPT & AI: read, send, reply, schedule & search emails.
Gmail, Outlook, iCloud, Fastmail and any IMAP mailbox for your agent. Scoped OAuth, no send tool.
1Email inboxes for AI agents: send, receive, search, drafts with owner approval, and webhooks.
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceConnects AI assistants to email accounts via IMAP/SMTP, enabling reading, searching, sending, and organizing emails with features like smart drafts, scheduling, and attachment handling.95 npm2MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage multiple email accounts with secure credentials, local full-text search, thread-aware replies, and automation.8 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to read, search, send, and reply to Zoho Mail via IMAP/SMTP using an application-specific password.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to read, send, search, reply to, and delete emails directly from a Zoho Mail account.8MIT