Skip to main content
Glama
vasparshin

zoho-multi-mcp

by vasparshin

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

list_folders

列出所有邮件文件夹

list_emails

列出文件夹中的邮件,支持过滤和分页

read_email

读取特定邮件的完整内容

search_emails

在所有文件夹中按关键字搜索邮件

send_email

发送新邮件

reply_email

回复现有邮件(回复 / 全部回复)

delete_email

删除邮件(移至垃圾箱或永久删除)

设置

1. 创建 Zoho API 客户端

  1. 前往 Zoho API 控制台(美国数据中心使用 .com

  2. 点击 添加客户端 > 自客户端

  3. 记下您的 客户端 ID客户端密钥

2. 生成刷新令牌

运行交互式设置助手:

bun run setup.ts

或手动操作:

  1. 在自客户端中,使用以下范围生成授权代码:

    ZohoMail.accounts.READ,ZohoMail.folders.READ,ZohoMail.messages.READ,ZohoMail.messages.CREATE,ZohoMail.messages.DELETE
  2. 将持续时间设置为 10 分钟,添加描述,然后点击 创建

  3. 复制生成的代码,并使用设置脚本进行交换

3. 验证凭据

ZOHO_CLIENT_ID=your_id ZOHO_CLIENT_SECRET=your_secret ZOHO_REFRESH_TOKEN=your_token bun run setup.ts --verify

4. 配置您的 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_JSONZOHO_MULTI_PORT_JSON,服务器行为与原始单账户上游项目完全一致,直接读取 ZOHO_CLIENT_ID/ZOHO_CLIENT_SECRET/ZOHO_REFRESH_TOKEN

环境变量

Variable

Required

Description

ZOHO_CLIENT_ID

仅单账户模式

来自 Zoho API 控制台的 OAuth2 客户端 ID

ZOHO_CLIENT_SECRET

仅单账户模式

OAuth2 客户端密钥

ZOHO_REFRESH_TOKEN

仅单账户模式

OAuth2 刷新令牌(通过设置生成)

ZOHO_DATACENTER

Zoho 数据中心:eu(默认)、usinaujp

ZOHO_ACCOUNTS_JSON

仅多账户模式

{id, clientId, clientSecret, refreshToken, datacenter?} 的 JSON 数组

ZOHO_MULTI_PORT_JSON

仅多端口模式

{id, port, name?} 的 JSON 数组;每个 id 必须出现在 ZOHO_ACCOUNTS_JSON

ZOHO_HTTP_PORT

在此端口上作为 HTTP 服务器运行,而不是 stdio

ZOHO_SERVER_NAME

stdio / 单端口 HTTP 模式的日志行标签

功能

  • 带自动刷新的 OAuth2 - 令牌自动刷新,无需手动干预,在多账户模式下按账户缓存

  • 速率限制 - 内置滑动窗口速率限制器(30 次/分钟),以保持在 Zoho API 限制内

  • 401 重试 - 自动刷新令牌并在认证失败时重试

  • HTML 转纯文本 - 邮件内容转换为干净的纯文本,供 AI 使用

  • 多账户、低内存 - 参见上文“为什么存在这个分支”

要求

  • Bun 运行时

  • 一个或多个具有 API 访问权限的 Zoho Mail 账户

许可证

MIT (c) 2026 Sami Hindi — 见 LICENSE。此分支中的多账户/多端口新增功能在相同许可证下发布。

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    B
    maintenance
    Connects AI assistants to email accounts via IMAP/SMTP, enabling reading, searching, sending, and organizing emails with features like smart drafts, scheduling, and attachment handling.
    265
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to read, search, send, and reply to Zoho Mail via IMAP/SMTP using an application-specific password.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Email for AI agents — send, receive as a webhook, manage domains, templates, routing.

  • Email for AI agents: send mail, manage contacts, automations & webhooks. Zero-DNS first send.

  • Give an AI agent its own inbox — receive email as a webhook, send over a verified domain.

View all MCP Connectors

Latest Blog Posts

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/vasparshin/zoho-multi-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server