zoho-multi-mcp
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 |
| Alle E-Mail-Ordner auflisten |
| E-Mails in einem Ordner mit Filtern und Paginierung auflisten |
| Den vollständigen Inhalt einer bestimmten E-Mail lesen |
| E-Mails nach Schlüsselwort in allen Ordnern durchsuchen |
| Eine neue E-Mail senden |
| Auf eine bestehende E-Mail antworten (Antwort / Allen antworten) |
| Eine E-Mail löschen (Papierkorb oder endgültig) |
Setup
1. Zoho-API-Client erstellen
Gehe zur Zoho API Console (verwende
.comfür das US-Rechenzentrum)Klicke auf Add Client > Self Client
Notiere dir deine Client ID und dein Client Secret
2. Refresh-Token generieren
Führe den interaktiven Setup-Helfer aus:
bun run setup.tsOder manuell:
Erzeuge im Self Client einen Grant-Code mit folgenden Scopes:
ZohoMail.accounts.READ,ZohoMail.folders.READ,ZohoMail.messages.READ,ZohoMail.messages.CREATE,ZohoMail.messages.DELETESetze die Dauer auf 10 Minuten, füge eine Beschreibung hinzu und klicke auf Create
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 --verify4. 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.tsGut 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.tsDies 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 |
| Nur Einzelkonto-Modus | OAuth2-Client-ID aus der Zoho API Console |
| Nur Einzelkonto-Modus | OAuth2-Client-Secret |
| Nur Einzelkonto-Modus | OAuth2-Refresh-Token (über Setup generiert) |
| Nein | Zoho-Rechenzentrum: |
| Nur Mehrkonten-Modus | JSON-Array von |
| Nur Mehrport-Modus | JSON-Array von |
| Nein | Als HTTP-Server auf diesem Port statt stdio ausführen |
| 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.
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