Zoho Mail Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Zoho Mail Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A comprehensive Model Context Protocol (MCP) server for integrating with Zoho Mail API, providing seamless email management, organization administration, and productivity features through AI assistants like Claude.
git clone <repository-url>
cd zoho-mail-mcp-server pip install -r requirements.txtCreate a .env file in the project root:
NANGO_CONNECTION_ID=your_connection_id
NANGO_INTEGRATION_ID=your_integration_id
NANGO_BASE_URL=https://api.nango.dev
NANGO_SECRET_KEY=your_nango_secret_keyZohoMail.messages.ALLZohoMail.folders.ALLZohoMail.accounts.READZohoMail.organization.ALL (for admin functions){'extension': 'in'})| Variable | Description | Required |
|---|---|---|
NANGO_CONNECTION_ID | Your Nango connection identifier | ✅ |
NANGO_INTEGRATION_ID | Your Nango integration identifier | ✅ |
NANGO_BASE_URL | Nango API base URL | ✅ |
NANGO_SECRET_KEY | Your Nango secret key | ✅ |
python zoho_mail_mcp.pyThe server will start and automatically detect your Zoho region based on your Nango configuration.
Edit your Claude Desktop config file (usually located at ~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"zoho-mail": {
"command": "python",
"args": ["/path/to/your/zoho_mail_mcp.py"],
"env": {
"NANGO_CONNECTION_ID": "your_connection_id",
"NANGO_INTEGRATION_ID": "your_integration_id",
"NANGO_BASE_URL": "https://api.nango.dev",
"NANGO_SECRET_KEY": "your_nango_secret_key"
}
}
}
}You can now use natural language commands with Claude:
"Send an email to [email protected] with subject 'Meeting Tomorrow'"
"List my recent emails"
"Create a new folder called 'Projects'"
"Show me all users in my organization"get_nango_auth_info() - Get current authentication status and user infosend_email() - Send email with basic optionssend_email_with_attachments() - Send email with file attachmentslist_emails() - List emails in account or specific foldersearch_emails() - Search emails with custom parametersget_email_content() - Get full email contentmark_emails_as_read() / mark_emails_as_unread() - Change read statusmove_emails() - Move emails between foldersdelete_email() - Delete specific emailcreate_folder() / delete_folder() - Manage email foldersget_all_folders() / get_folder_details() - Retrieve folder informationcreate_label() / update_label() / delete_label() - Manage email labelsget_organization_details() - Get organization informationadd_domain() / verify_domain() - Domain managementadd_user() / get_all_users() - User administrationcreate_group() / get_all_groups() - Group managementadd_allowed_ips() / get_allowed_ips() - IP allowlist managementget_login_history() - Access login audit logsget_audit_records() - Get detailed audit recordsadd_task() / get_all_tasks_in_group() - Task managementcreate_bookmark() / get_all_bookmarks() - Bookmark managementcreate_note() / edit_note() - Note managementThe server automatically detects your Zoho region from Nango configuration:
https://mail.zoho.com/apihttps://mail.zoho.in/apihttps://mail.zoho.eu/apihttps://mail.zoho.com.cn/apiNo manual configuration needed - the server adapts automatically!
1. Authentication Errors
Error: Authentication failed: No access token found2. Wrong Region/Extension
Error: HTTP 404: Not Found3. Permission Errors
Error: HTTP 403: ForbiddenEnable detailed logging by setting the log level:
logging.basicConfig(level=logging.DEBUG)Use the authentication info function to test your setup:
# This will show your current auth status
auth_info = get_nango_auth_info()
print(f"Connected as: {auth_info.user_email}")
print(f"Region: {auth_info.extension}")
print(f"Scopes: {auth_info.scopes}")All functions return structured ApiResponse objects:
{
"success": bool, # Whether operation succeeded
"data": dict, # Response data from Zoho API
"error": str, # Error message if any
"status_code": int # HTTP status code
}git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ for seamless Zoho Mail integration
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.