zoho-mail-mcp logo

zoho-mail-mcp

SirGreed808/zoho-mail-mcp
0 starsMITUpdated 2026-04-22Community

Is this your server?

Add your score badge to your README and get your server in front of 45k+ builders a month.

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

SirGreed808/zoho-mail-mcp MCP server](https://glama.ai/mcp/servers/SirGreed808/zoho-mail-mcp/badges/score.svg)](https://glama.ai/mcp/servers/SirGreed808/zoho-mail-mcp) πŸ“‡ 🏠 - MCP server for Zoho Mail.

README.md

zoho-mail-mcp

A Model Context Protocol server for Zoho Mail. Lets Claude (or any MCP client) read, search, and send email from a Zoho Mail account without browser automation.

No equivalent exists in the official MCP registry β€” this fills that gap.

Tools

| Tool | Description | |------|-------------| | list_inbox | List recent inbox messages β€” returns sender, subject, date, messageId, folderId | | search_emails | Search by keyword, sender email, or subject fragment | | read_email | Read full email body given a messageId and folderId | | send_email | Send an email from your configured sender address |

Prerequisites

Setup

1. Create a Zoho OAuth app

  1. Go to Zoho API Console
  2. Create a Self Client application
  3. Under Generate Code, add these scopes:
   ZohoMail.messages.READ,ZohoMail.messages.CREATE,ZohoMail.folders.READ,ZohoMail.accounts.READ
  1. Set expiry to 10 minutes, add a description, click Create
  2. Copy the generated client_id, client_secret, and grant code

2. Exchange the grant code for a refresh token

Run immediately (grant code expires in 10 minutes):

curl -X POST https://accounts.zoho.com/oauth/v2/token \
  -d "grant_type=authorization_code" \
  -d "client_id=YOUR_CLIENT_ID" \
  -d "client_secret=YOUR_CLIENT_SECRET" \
  -d "code=YOUR_GRANT_CODE"

Save the refresh_token from the response β€” it doesn't expire.

3. Get your account ID

curl -X GET https://mail.zoho.com/api/accounts \
  -H "Authorization: Zoho-oauthtoken YOUR_ACCESS_TOKEN"

Use the accountId value from the first object in data[].

4. Install

git clone https://github.com/SirGreed808/zoho-mail-mcp
cd zoho-mail-mcp
npm install

5. Add to Claude Code

claude mcp add --scope user \
  -e "ZOHO_CLIENT_ID=..." \
  -e "ZOHO_CLIENT_SECRET=..." \
  -e "ZOHO_REFRESH_TOKEN=..." \
  -e "ZOHO_ACCOUNT_ID=..." \
  -e "ZOHO_SENDER=you@yourdomain.com" \
  zoho-mail -- node /absolute/path/to/zoho-mail-mcp/index.js

ZOHO_SENDER must be a verified address or alias on the account.

Environment Variables

| Variable | Description | |----------|-------------| | ZOHO_CLIENT_ID | OAuth app client ID | | ZOHO_CLIENT_SECRET | OAuth app client secret | | ZOHO_REFRESH_TOKEN | Long-lived refresh token (from step 2) | | ZOHO_ACCOUNT_ID | Zoho Mail account ID (from step 3) | | ZOHO_SENDER | Email address to send from |

Notes

  • Access tokens are refreshed automatically β€” no manual intervention needed
  • read_email requires both messageId and folderId, both returned by list_inbox and search_emails
  • Only REST API β€” no IMAP/SMTP

License

MIT

See related servers & alternatives β†’

Related MCP servers

Browse all β†’

Related guides

Hand-picked reading to help you choose and use Search servers.