Skip to main content
Glama
P4rthPat3l

ZeptoMail Templates MCP

by P4rthPat3l

ZeptoMail Templates MCP

MCP-сервер, который позволяет ИИ-агенту (opencode, Claude Desktop, Cursor и т. д.) просматривать и управлять шаблонами электронной почты во всех агентах ZeptoMail в вашем аккаунте Zoho.

Он намеренно не отправляет электронные письма, не создаёт/удаляет агентов, не раскрывает токены отправки почты и не управляет доменами. Он только читает список агентов и управляет шаблонами.

Быстрый старт (локально, ~5 минут)

1. Установите сервер

npm i -g zeptomail-mcp

Это даёт вам команду zeptomail-mcp в PATH. Пропустите этот шаг, если предпочитаете запускать из локального клона репозитория (node /path/to/zeptomail-mcp/dist/src/server.js).

2. Создайте приложение Zoho OAuth

  1. Откройте консоль API Zoho.

  2. Создайте серверное приложение:

    • Имя клиента: zeptomailmcp (без дефисов — Zoho их отклоняет)

    • URL домашней страницы: любой, например https://github.com/P4rthPat3l/zeptomail-mcp

    • Авторизованный URI перенаправления: http://localhost:4567/callback

  3. Запишите Client ID и Client Secret.

Self Client также работает. У него нет поля redirect URI, поэтому вместо шага 2 используйте его вкладку Generate Code (см. Настройка Self Client ниже).

3. Получите refresh-токен

ZOHO_CLIENT_ID=<your-client-id> ZOHO_CLIENT_SECRET=<your-secret> zeptomail-mcp-login

Ваш браузер откроет экран согласия Zoho для областей Zeptomail.MailAgents.READ + Zeptomail.MailTemplates.All. После одобрения скрипт выведет refresh-токен.

Если вы запускаете из локального клона вместо глобальной установки, эта же команда — npm run login.

4. Настройте ваш MCP-хост

Вы можете передать учётные данные Zoho напрямую в конфигурации хоста или загрузить их из файла .env, чтобы сам конфигурационный файл оставался без секретов. Оба способа работают; выберите один.

Вариант A — загрузка из файла .env (рекомендуется)

Поместите секреты в файл .env (добавьте его в .gitignore — это учётные данные):

# .env
ZOHO_CLIENT_ID=<your-client-id>
ZOHO_CLIENT_SECRET=<your-secret>
ZOHO_REFRESH_TOKEN=<your-refresh-token>
ZOHO_ACCOUNTS_URL=https://accounts.zoho.com

Затем укажите серверу на этот файл с помощью --env-file. Путь разрешается относительно рабочего каталога хоста; если сомневаетесь, используйте абсолютный путь.

opencodeopencode.json (или .opencode/opencode.json):

{
  "mcp": {
    "zeptomail": {
      "type": "local",
      "command": ["zeptomail-mcp", "--env-file=/absolute/path/to/.env"],
      "enabled": true
    }
  }
}

Claude Desktopclaude_desktop_config.json:

{
  "mcpServers": {
    "zeptomail": {
      "command": "zeptomail-mcp",
      "args": ["--env-file=/absolute/path/to/.env"]
    }
  }
}

Вариант B — напрямую в конфигурации хоста

opencodeopencode.json (или .opencode/opencode.json):

{
  "mcp": {
    "zeptomail": {
      "type": "local",
      "command": ["zeptomail-mcp"],
      "enabled": true,
      "environment": {
        "ZOHO_CLIENT_ID": "...",
        "ZOHO_CLIENT_SECRET": "...",
        "ZOHO_REFRESH_TOKEN": "...",
        "ZOHO_ACCOUNTS_URL": "https://accounts.zoho.com"
      }
    }
  }
}

Claude Desktopclaude_desktop_config.json:

{
  "mcpServers": {
    "zeptomail": {
      "command": "zeptomail-mcp",
      "env": {
        "ZOHO_CLIENT_ID": "...",
        "ZOHO_CLIENT_SECRET": "...",
        "ZOHO_REFRESH_TOKEN": "...",
        "ZOHO_ACCOUNTS_URL": "https://accounts.zoho.com"
      }
    }
  }
}

Запуск из локального клона вместо глобальной установки

Запустите встроенный лаунчер напрямую с помощью node. Он разбирает --env-file так же, как глобальная команда zeptomail-mcp, поэтому флаг идёт после скрипта:

  • opencode (Вариант A с env-file): ["node", "/absolute/path/to/zeptomail-mcp/dist/src/cli.js", "--env-file=/absolute/path/to/.env"]

  • opencode (Вариант B, напрямую): ["node", "/absolute/path/to/zeptomail-mcp/dist/src/cli.js"] + блок environment

  • Claude Desktop: "command": "node", "args": [".../dist/src/cli.js", "--env-file=..."] (или просто [".../dist/src/cli.js"] с блоком env)

5. Используйте это

Попросите вашего агента вызвать инструменты:

  • "список моих агентов ZeptoMail"

  • "найти шаблон с псевдонимом team_invite"

  • "показать шаблон OTP в песочнице агента"

Related MCP server: Zoho Mail MCP Server

Настройка Self Client

У Self Client нет redirect URI, поэтому zeptomail-mcp-login не может перехватить его callback. Вместо этого:

  1. Консоль API → Self Client → Generate Code.

  2. Область: Zeptomail.MailAgents.READ,Zeptomail.MailTemplates.All → CREATE.

  3. Скопируйте сгенерированный код и обменяйте его:

curl -X POST https://accounts.zoho.com/oauth/v2/token \
  -d "code=<generated code>" \
  -d "client_id=<client id>" \
  -d "client_secret=<client secret>" \
  -d "grant_type=authorization_code" \
  -d "redirect_uri=https://api-console.zoho.com/"

Ответ JSON содержит refresh_token.

Инструменты

Инструмент MCP

Назначение

Изменяет данные

zeptomail_list_agents

Перечисляет доступных агентов и точные ключи/псевдонимы агентов

Нет

zeptomail_list_templates

Перечисляет шаблоны в одном явном агенте

Нет

zeptomail_find_templates

Поиск по одному агенту или всем агентам по имени/псевдониму/теме

Нет

zeptomail_get_template

Чтение одного полного шаблона из одного агента

Нет

zeptomail_create_template

Создание шаблона в одном явном агенте

Да

zeptomail_update_template

Частичное обновление с защитой от устаревшей записи

Да

zeptomail_delete_template

Полное удаление с проверками агента/имени/времени

Да

Инструменты записи требуют обоих условий:

  1. ZEPTOMAIL_MCP_ALLOW_WRITES=true в окружении сервера.

  2. confirm=true в вызове отдельного инструмента.

Каждая запись также требует точных значений agentKey и expectedAgentName из нового вызова zeptomail_list_agents. Обновление/удаление дополнительно требует текущих значений безопасности шаблона (expectedModifiedTime, expectedTemplateName), поэтому устаревшее чтение никогда не перезапишет более новое изменение.

Справочник конфигурации

Переменная

Обязательная

По умолчанию

Назначение

ZOHO_CLIENT_ID

да

ID клиента приложения Zoho OAuth

ZOHO_CLIENT_SECRET

да

Секрет клиента приложения Zoho OAuth

ZOHO_REFRESH_TOKEN

да (stdio)

Долгоживущий токен; сервер создаёт из него часовые токены доступа

ZOHO_ACCOUNTS_URL

нет

https://accounts.zoho.com

Центр обработки данных Zoho (.eu, .in, .au, ...)

ZEPTOMAIL_API_BASE_URL

нет

https://api.zeptomail.com/v1.1

Базовый URL API ZeptoMail

ZEPTOMAIL_MCP_ALLOW_WRITES

нет

false

Установите true, чтобы включить создание/обновление/удаление

ZEPTOMAIL_MCP_ALLOWED_AGENT_KEYS

нет

все агенты

Разрешённый список mailagent_key через запятую

ZEPTOMAIL_MCP_TRANSPORT

нет

stdio

http включает размещённый режим OAuth (ниже)

Все переменные могут быть переданы либо как переменные окружения процесса (задаются конфигурацией хоста), либо через аргумент --env-file=<path> к серверу (см. Настройка MCP-хоста выше). Переменные процесса имеют приоритет; файл заполняет только неустановленные переменные.

Размещённый (удалённый) режим с OAuth 2.0 + PKCE

Для общего/публичного MCP-конечной точки запустите с ZEPTOMAIL_MCP_TRANSPORT=http. Сервер становится сервером авторизации OAuth, который проксирует к Zoho как вышестоящему серверу авторизации:

MCP client ⇄ this MCP server (OAuth AS + resource server) ⇄ Zoho (upstream AS) ⇄ ZeptoMail API
ZEPTOMAIL_MCP_TRANSPORT=http \
ZEPTOMAIL_MCP_SERVER_URL=https://mcp.example.com \
ZEPTOMAIL_MCP_PORT=3006 \
ZEPTOMAIL_MCP_TOKEN_STORE=/var/lib/zeptomail-mcp/tokens.json \
node dist/src/server.js
  • Клиенты обнаруживают метаданные по адресам /.well-known/oauth-protected-resource и /.well-known/oauth-authorization-server, динамически регистрируются и дают согласие в браузере.

  • Сервер перенаправляет на Zoho с PKCE S256 challenge клиента и access_type=offline, обменивает код на секрет клиента Zoho сервера и сохраняет индивидуальный refresh-токен Zoho для каждого клиента, который никогда не покидает сервер.

  • Инструменты каждого пользователя работают с его собственным аккаунтом ZeptoMail.

Конфигурация хоста (opencode):

{
  "mcp": {
    "zeptomail": {
      "type": "remote",
      "url": "https://mcp.example.com/mcp",
      "oauth": {}
    }
  }
}

Требования для размещённого режима: HTTPS (SDK отклоняет не-HTTPS URL эмитента, кроме localhost), URI обратного вызова Zoho, зарегистрированный в консоли API (https://mcp.example.com/callback), и постоянное хранилище токенов. Перезапуск сервера делает выпущенные токены недействительными — клиенты повторно дают согласие один раз.

Разработка

npm install
npm run typecheck
npm test
npm run build

Замечания по безопасности

  • Обнаружение агентов доступно только для чтения; нет инструментов для создания агентов, генерации API-ключей или доступа к токенам отправки почты.

  • MCP никогда не отправляет электронные письма.

  • ZEPTOMAIL_MCP_ALLOWED_AGENT_KEYS ограничивает, к каким агентам MCP может обращаться, даже если учётная запись OAuth видит больше.

  • Refresh-токен — это долгоживущее учётное данное: храните его на стороне сервера, относитесь к нему как к паролю и отзывайте его в консоли Zoho, если он когда-либо утечёт.

A
license - permissive license
Not graded
quality - not tested
B
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
    C
    maintenance
    Enables AI assistants to read, search, send, and reply to Zoho Mail via IMAP/SMTP using an application-specific password.
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides full access to Zoho Mail accounts, enabling email search, read, send, reply, thread management, folder/label operations, and more via 14 tools.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to interact with email accounts via IMAP and SMTP, supporting mailbox listing, email search, retrieval, sending, and management.
    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.

  • AI agents read & send email, manage mailboxes, domains and webhooks via the QMailing API.

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/P4rthPat3l/zeptomail-mcp'

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