Skip to main content
Glama
vasparshin

zoho-multi-mcp

by vasparshin

zoho-multi-mcp

Ein MCP (Model Context Protocol)-Server, der KI-Assistenten wie Claude mit deinem Zoho-Mail-Konto bzw. deinen Zoho-Mail-Konten verbindet. Lies, sende, durchsuche, beantworte und lösche E-Mails direkt aus deinem KI-Workflow – und betreibe beliebig viele Zoho-Postfächer mit einem einzigen leichtgewichtigen Prozess, statt einen Prozess pro Postfach.

Dies ist ein Fork von FujiwaraChoki/zoho-mail-mcp (MIT-lizenziert, siehe LICENSE) mit hinzugefügter Mehrkonten-Unterstützung. Die gesamte Anerkennung für den ursprünglichen Einzelkonto-Server gebührt dem Upstream-Autor.

Warum dieser Fork existiert

Wenn du mehrere Zoho-Postfächer über MCP betreibst (ein Team, eine Reihe projektspezifischer Absender, was auch immer), ist die naheliegende Einrichtung ein Serverprozess pro Postfach. Das funktioniert, aber jeder Prozess trägt denselben festen Speicher-Overhead der Bun/V8-Laufzeit – etwa 75–85 MB RSS –, egal wie klein oder inaktiv das Postfach ist. Drei Postfächer kosten dreimal diese Grundlast, ohne jeden Nutzen, da der tatsächliche Zustand pro Konto (ein OAuth-Token, ein Ordner-Cache) winzig ist.

Dieser Fork fügt einen optionalen Mehrkonten-Modus hinzu: Ein Prozess kann mehrere Zoho-Konten bedienen, entweder über einen Endpunkt, bei dem der Aufrufer pro Aufruf angibt, welches Konto gemeint ist, oder – die sicherere Option für eine bestehende Einrichtung – über mehrere Listener auf eigenen festen Ports, die sich jeweils genau wie ein einfacher Einzelkonto-Server verhalten. In Produktion gemessen: 3 separate Einzelkonto-Prozesse mit zusammen ~230 MB RSS, konsolidiert in einen Prozess mit ~90 MB RSS, der dieselben 3 Postfächer bedient. Alles unterhalb des Abschnitts „Mehrkonten-Modus“ ist unverändert gegenüber dem Upstream und funktioniert weiterhin genau wie bisher, wenn du nur ein Postfach benötigst.

Related MCP server: Mailing Manager MCP

Tools

Tool

Beschreibung

list_folders

Alle E-Mail-Ordner auflisten

list_emails

E-Mails in einem Ordner mit Filtern und Paginierung auflisten

read_email

Den vollständigen Inhalt einer bestimmten E-Mail lesen

search_emails

E-Mails nach Schlüsselwort in allen Ordnern durchsuchen

send_email

Eine neue E-Mail senden

reply_email

Auf eine bestehende E-Mail antworten (Antwort / Allen antworten)

delete_email

Eine E-Mail löschen (Papierkorb oder endgültig)

Setup

1. Zoho-API-Client erstellen

  1. Gehe zur Zoho API Console (verwende .com für das US-Rechenzentrum)

  2. Klicke auf Add Client > Self Client

  3. Notiere dir deine Client ID und dein Client Secret

2. Refresh-Token generieren

Führe den interaktiven Setup-Helfer aus:

bun run setup.ts

Oder manuell:

  1. Erzeuge im Self Client einen Grant-Code mit folgenden Scopes:

    ZohoMail.accounts.READ,ZohoMail.folders.READ,ZohoMail.messages.READ,ZohoMail.messages.CREATE,ZohoMail.messages.DELETE
  2. Setze die Dauer auf 10 Minuten, füge eine Beschreibung hinzu und klicke auf Create

  3. Kopiere den generierten Code und tausche ihn mit dem Setup-Skript um

3. Anmeldedaten überprüfen

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

4. MCP-Client konfigurieren

Einzelkonto – 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"
      }
    }
  }
}

Für Claude Desktop gilt dieselbe Struktur in claude_desktop_config.json.

Mehrkonten-Modus

Wiederhole die obigen Schritte einmal für jedes Zoho-Konto, das du über diesen Server betreiben möchtest, und wähle dann einen von zwei Modi.

Modus A – ein Endpunkt, der Aufrufer wählt das Konto

Setze ZOHO_ACCOUNTS_JSON auf ein JSON-Array von Konten und starte den Server wie gewohnt mit ZOHO_HTTP_PORT (oder stdio). Jedes Tool erhält ein Pflichtfeld account (ein String-Enum der von dir vergebenen IDs), und jeder Aufruf muss angeben, für welches Konto er bestimmt ist.

export ZOHO_ACCOUNTS_JSON='[
  {"id": "work", "clientId": "...", "clientSecret": "...", "refreshToken": "..."},
  {"id": "personal", "clientId": "...", "clientSecret": "...", "refreshToken": "..."}
]'
export ZOHO_HTTP_PORT=8010
bun run src/index.ts

Gut geeignet, wenn dein MCP-Client mit einem expliziten account-Argument bei jedem Aufruf zurechtkommt und du eine einzige URL konfigurieren möchtest.

Modus B – ein Prozess, mehrere Listener mit festen Konten

Setze ZOHO_ACCOUNTS_JSON wie oben und setze ZOHO_MULTI_PORT_JSON, um jedes Konto an einen eigenen Port zu binden. Jeder Listener verhält sich wie ein echter Einzelkonto-Server – ohne account-Feld in irgendeinem Tool, byte-identisch mit einer einfachen Einzelkonto-Einrichtung auf diesem Port.

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

Dies ist der Modus für die Migration einer BESTEHENDEN Multi-Prozess-Einrichtung: Richte deine MCP-Client-Konfiguration auf dieselben Ports aus, die sie bereits verwendet, starte diesen einen Prozess anstelle der mehreren, die du bisher betrieben hast, und nichts anderes muss geändert werden. name ist optional und wirkt sich nur auf die Beschriftung der Logzeilen aus.

Keiner der beiden Modi ist erforderlich – lasse sowohl ZOHO_ACCOUNTS_JSON als auch ZOHO_MULTI_PORT_JSON weg, und der Server verhält sich genau wie das ursprüngliche Upstream-Projekt für Einzelkonten und liest ZOHO_CLIENT_ID/ZOHO_CLIENT_SECRET/ZOHO_REFRESH_TOKEN direkt.

Umgebungsvariablen

Variable

Erforderlich

Beschreibung

ZOHO_CLIENT_ID

Nur Einzelkonto-Modus

OAuth2-Client-ID aus der Zoho API Console

ZOHO_CLIENT_SECRET

Nur Einzelkonto-Modus

OAuth2-Client-Secret

ZOHO_REFRESH_TOKEN

Nur Einzelkonto-Modus

OAuth2-Refresh-Token (über Setup generiert)

ZOHO_DATACENTER

Nein

Zoho-Rechenzentrum: eu (Standard), us, in, au, jp

ZOHO_ACCOUNTS_JSON

Nur Mehrkonten-Modus

JSON-Array von {id, clientId, clientSecret, refreshToken, datacenter?}

ZOHO_MULTI_PORT_JSON

Nur Mehrport-Modus

JSON-Array von {id, port, name?}; jede id muss in ZOHO_ACCOUNTS_JSON vorkommen

ZOHO_HTTP_PORT

Nein

Als HTTP-Server auf diesem Port statt stdio ausführen

ZOHO_SERVER_NAME

Nein

Bezeichnung der Logzeile für den stdio-/Einzelport-HTTP-Modus

Funktionen

  • OAuth2 mit Auto-Refresh – Tokens werden automatisch erneuert, kein manueller Eingriff nötig, im Mehrkonten-Modus pro Konto zwischengespeichert.

  • Rate-Limiting – eingebauter Sliding-Window-Rate-Limiter (30 Anfragen/Min.), um innerhalb der Zoho-API-Limits zu bleiben.

  • Retry bei 401 – aktualisiert das Token automatisch und versucht es bei Authentifizierungsfehlern erneut.

  • HTML-zu-Klartext – E-Mail-Inhalte werden für die KI-Verarbeitung in sauberen Klartext umgewandelt.

  • Mehrkonten, wenig Speicher – siehe „Warum dieser Fork existiert“ oben.

Voraussetzungen

  • Bun-Laufzeit

  • Ein oder mehrere Zoho-Mail-Konten mit API-Zugriff

Lizenz

MIT (c) 2026 Sami Hindi – siehe LICENSE. Die Mehrkonten-/Mehrport-Erweiterungen in diesem Fork werden unter derselben Lizenz veröffentlicht.

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