zoho-multi-mcp
zoho-multi-mcp
Сервер MCP (Model Context Protocol), который подключает AI-ассистентов, таких как Claude, к вашим аккаунтам Zoho Mail. Читайте, отправляйте, ищите, отвечайте на письма и удаляйте их прямо из вашего AI-рабочего процесса — и запускайте сколько угодно почтовых ящиков Zoho в одном лёгком процессе, вместо того чтобы запускать отдельный процесс для каждого ящика.
Это форк проекта [FujiwaraChoki/zoho-mail-mcp](https://github.com/Fuj63? create? Wait, need exact URL. Original has https://github.com/FujiwaraChoki/zoho-mail-mcp . I accidentally typed? Let's fix: https://github.com/FujiwaraChoki/zoho-mail-mcp. (лицензия MIT, см. LICENSE) с добавленной поддержкой нескольких аккаунтов. Вся заслуга по созданию оригинального сервера для одного аккуунта принадлежит автору апстрима.
Зачем существует этот форк
Если вы запускаете несколько почтовых ящиков Zoho через MCP (например, для команды или набора отправителей по проектам), естественная конфигурация — один сервер на каждый ящик. Это работает, но каждый процесс несёт одни и те же фиксированные накладные расходы памяти Bun/V8 — примерно 75–85 МБ RSS, независимо от того, насколько маленьким или неактивным является ящик. Три ящика обходятся в три раза этого базового уровня безо всякой выгоды, ведь фактическое состояние на каждый аккаунт (OAuth-токен и кэш папок) совсем мало.
Этот форк добавляет опциональный режим работы с несколькими аккаунтами: один процесс может обслуживать несколько аккаунтов Zoho — либо как одну конечную точку, где вызывающая сторона указывает аккаунт при каждом вызове, либо (более безопасный вариант для существуюides настройки) как несколько слушателей на собственных фиксированных портах, каждый из которых ведёт себя в точности как обычный однопоточный сервер. По замерам в проде: 3 отдельные монопольные процесса давали суммарно около 230 МБ RSS, а объединение их в один процесс снизило потребление до ~90 МБ RSS при обслуживании тех же 3 ящиков. Всё, что находится ниже раздела «Режим нескольких аккаунтов», не изменялось относительно оригинального проекта и работает ровно как раньше, если вам нужен один почтовый ящик.
Related MCP server: Mailing Manager MCP
Инструменты
Инструмент | Описение |
| Список всех почтовых папок |
| Список писем в папке с фильтрацией и пагинацией |
| Чтение полного содержимого конкретного письма |
| Поиск писем по ключевому слову по всем папкам |
| Отправка нового письма |
| Ответ на существующее письмо (ответ / ответ всем) |
| Удаление письма (в корзину или окончательно) |
Установка
1. Создайте API-клиент Zoho
Перейдите в Zoho API Console (для датацентра в США используйте
.com)Нажмите Add Client > Self Client
Сохраните ваш Client ID и Client Secret
2. Сгенерируйте refresh-токен
Запустите интерактивный помощник настройки:
bun run setup.tsИли вручную:
В разделе Self Client сгенерируйте grant code со следующими областми доступа:
ZohoMail.accounts.READ,ZohoMail.folders.READ,ZohoMail.messages.READ,ZohoMail.messages.CREATE,ZohoMail.messages.DELETEУстановите срок действия 10 минут, добавьте описание и нажмите Create
Скопируйте сгенерированный код и обменяйте его с помощью скрипта настройки
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_config.json в Claude Desktop.
Режим нескольких аккаунтов
Повторите любой из шагов выше один раз для каждого аккаунта 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, и его ответ побайтов соответствует обычested серверу одного аккаунта на этом порту.
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 напрямую.
Переменные окружения
Переменная | Обязательность | Описание |
| Только для одного аккаунта | OAuth2 Client ID из Zoho API Console |
| Только для одного аккаунта | OAuth2 Client Secret |
| Только для одного аккаунта | OAuth2 Refresh Token (сгенерирован при настройке) |
| Нет | Датацентр Zoho: |
| Только для нескольких аккаунтов | JSON-массив вида |
| Только для многопортового режима | JSON-массив вида |
| Нет | Запуск в качестве HTTP-сервера на этом порту вместо stdio |
| Нет | Метка в лог-строках для stdio / однопортового HTTP-режима |
Возможности
Прочает OAuth2 с автоматическим обновлением — токены обновляются автоматически, без ручного, и кэширование ведётся отдельно для каждого аккаунта в многопользовательском подключении
Rate limiting — встроен скользящий ограничитель частоты (30 запросов/мин), чтобы не выйти за лимиты Zoho API
Retry при 401 — автоматически обновляет токен и повторяет запрос при сбои аутентификации
HTML в plain text — содержимое писем превращается в чистый обычный текст для ИИ
Multi-account и низкое потребление памяти — см. раздел «Зачем существует этот фор»
Требования
Среда выполнения Bun
Один или более аккаунтов Zoho Mail с API-доступом
Лицензия
MIT (c) 2026 Sami Hindi — см. 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 AI assistants to email accounts via IMAP/SMTP, enabling reading, searching, sending, and organizing emails with features like smart drafts, scheduling, and attachment handling.2652MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage multiple email accounts with secure credentials, local full-text search, thread-aware replies, and automation.11MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to read, search, send, and reply to Zoho Mail via IMAP/SMTP using an application-specific password.1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to read, send, search, reply to, and delete emails directly from a Zoho Mail account.5MIT
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.
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/vasparshin/zoho-multi-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server