SkillAgentSearch skills...

zoho-mcp

Zoho MCP Server

Install / Use

claude mcp add SkanderBS2024 -- npx -y github:SkanderBS2024/zoho-mcp

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

60/100

Category

Sales

Supported Platforms

Claude Code
Claude Desktop

Tags

Our assessment of zoho-mcp

zoho-mcp scores 60/100 on our quality scale, 47th of 48 Sales skills we index.

Its MCP Server is 11 KB long, well organised into 48 sections with 13 code examples: a thorough specification that gives an agent plenty to work with.

It has 3 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
29/30
Structure
20/20
Description
4/15
Adoption
3/20
Freshness
5/15

Maintenance, license and trust

  • The repository was last updated about 16 months ago. Expect some instructions to reference tool versions or APIs that have since changed.
  • Our last check on 2026-09-23 found the source still online.
  • It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 70/100, with 4 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.

AI review by kimi-k2.7-code on 2026-10-05. Automated pattern scan on 2026-10-06. It catches known dangerous patterns, not every risk — read a skill before letting an agent act on it.

zoho-mcp compared with similar skills

All 4 of these similar skills score higher than zoho-mcp; compare them before choosing.

SkillScoreStarsUpdatedFormat
zoho-mcp (this skill)by SkanderBS202460316mo agoMCP Server
Agent-Reachby Panniantong10098.2k1d agoCLAUDE.md
headroomby headroomlabs-ai10075.5ktodayCLAUDE.md
CowAgentby zhayujie10047.4ktodayCLAUDE.md
Scraplingby D4Vinci10088.1ktodayMCP Server

Frequently asked questions

How do I install zoho-mcp?
Run claude mcp add SkanderBS2024 -- npx -y github:SkanderBS2024/zoho-mcp. The install tabs above show the steps for each supported agent.
Which AI agents does zoho-mcp work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is zoho-mcp safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is MIT-licensed and scores 70/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is zoho-mcp still maintained?
The repository was last updated about 16 months ago. Expect some instructions to reference tool versions or APIs that have since changed.

Zoho CRM MCP Server

A Model Context Protocol (MCP) server that provides seamless integration with Zoho CRM. This server exposes Zoho CRM functionality as MCP tools that can be used by AI assistants like Claude, GPT, and other MCP-compatible clients.

Features

  • Full OAuth2 Authentication: Secure authentication with Zoho CRM using OAuth2 flow
  • Environment Variables: Secure credential management using .env files
  • Contact Management: Search, create, and update contacts
  • Deal Management: Search, create, and list deals
  • User Information: Get current user details
  • STDIO Transport: Compatible with MCP clients using standard input/output
  • Error Handling: Comprehensive error handling with clear error messages
  • Token Management: Automatic access token refresh
  • PyPI Ready: Installable via pip/uvx for easy distribution

Prerequisites

  • Python 3.11 or higher
  • Zoho CRM account with API access
  • Zoho Developer Console app credentials

Installation

Option 1: Install from PyPI (Recommended)

# Install using uvx (recommended for CLI tools)
uvx zoho-crm-mcp

# Or install using pip
pip install zoho-crm-mcp

Option 2: Install from Source

  1. Clone this repository:

    git clone <repository-url>
    cd zoho-crm-mcp
    
  2. Install dependencies:

    uv sync
    # or
    pip install -e .
    

Setup

Step 1: Create Zoho Developer App

  1. Go to Zoho Developer Console
  2. Create a new "Server-based Applications" app
  3. Note down your Client ID and Client Secret
  4. Set redirect URI to http://localhost:8080/callback

Step 2: Configure Environment Variables

Create a .env file in your working directory:

# Copy the example file
cp .env.example .env

Edit .env with your credentials:

ZOHO_CLIENT_ID=your_actual_client_id
ZOHO_CLIENT_SECRET=your_actual_client_secret
ZOHO_REDIRECT_URI=http://localhost:8080/callback
ZOHO_API_DOMAIN=https://www.zohoapis.com
ZOHO_SCOPE=ZohoCRM.modules.ALL,ZohoCRM.users.READ

Authentication Setup

Before running the MCP server, you need to generate authentication tokens manually:

Step 1: Generate Tokens

Run the authentication helper to generate your tokens:

# Using uvx (recommended)
uvx --from zoho-crm-mcp zoho-mcp-auth

# Or if installed locally via pip
zoho-mcp-auth

# Or using uv from source
uv run zoho-mcp-auth

This will guide you through the OAuth flow:

🔐 Zoho CRM Manual Token Generation
===================================

Step 1: Visit the authorization URL
====================================
Please visit this URL to authorize the application:

https://accounts.zoho.com/oauth/v2/auth?scope=ZohoCRM.modules.ALL%2CZohoCRM.users.ALL%2CZohoCRM.org.ALL&client_id=your_client_id&response_type=code&redirect_uri=https%3A%2F%2Flocalhost&access_type=offline

Step 2: Get the authorization code
==================================
After authorization, you'll be redirected to your redirect_uri.
Copy the 'code' parameter from the redirect URL and paste it below.

Enter authorization code: [paste your code here]

✅ Token generation successful!

Step 3: Add tokens to your .env file
====================================
Add the following lines to your .env file:

ZOHO_ACCESS_TOKEN=your_generated_access_token
ZOHO_REFRESH_TOKEN=your_generated_refresh_token

Step 2: Add Tokens to .env File

Copy the generated tokens and add them to your .env file:

# Authentication Tokens
ZOHO_ACCESS_TOKEN=your_generated_access_token_here
ZOHO_REFRESH_TOKEN=your_generated_refresh_token_here

⚠️ Important: Keep these tokens secure and never commit them to version control!

Running the MCP Server

Once your tokens are configured, you can run the server:

# Using uvx (recommended)
uvx --from zoho-crm-mcp zoho-mcp

# Or if installed locally via pip
zoho-mcp

# Or using uv from source
uv run zoho-mcp

The server will validate your authentication and start:

Fetching user information...
✓ Authenticated as: Your Name (your.email@example.com)
Zoho CRM MCP Server running on stdio

Available MCP Tools

1. get_contact_by_email_tool

Search for a contact by email address.

Parameters:

  • email (string): Email address to search for

Returns:

  • Contact information including ID, name, phone, account, and timestamps

2. create_contact_tool

Create a new contact in Zoho CRM.

Parameters:

  • first_name (string): Contact's first name
  • last_name (string): Contact's last name
  • email (string): Contact's email address
  • phone (string): Contact's phone number

Returns:

  • Created contact ID and status

3. get_deal_by_name_tool

Search for a deal by name.

Parameters:

  • deal_name (string): Name of the deal to search for

Returns:

  • Deal information including ID, amount, stage, contacts, and dates

4. create_deal_tool

Create a new deal in Zoho CRM.

Parameters:

  • deal_name (string): Name of the deal
  • contact_id (string): ID of the associated contact
  • stage (string): Deal stage (e.g., 'Qualification', 'Proposal', 'Negotiation', 'Closed Won')
  • amount (float): Deal amount

Returns:

  • Created deal ID and status

5. update_contact_tool

Update a specific field of an existing contact.

Parameters:

  • contact_id (string): ID of the contact to update
  • field (string): Field name to update (e.g., 'Phone', 'Email', 'First_Name')
  • value (string): New value for the field

Returns:

  • Update status and confirmation

6. list_open_deals_tool

List all open deals (excluding closed deals).

Parameters: None

Returns:

  • Array of open deals with details

7. get_user_info_tool

Get current authenticated user information.

Parameters: None

Returns:

  • User information including name, email, role, and profile

Usage with MCP Clients

Claude Desktop

Add this server to your Claude Desktop configuration:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "zoho-crm": {
      "command": "uvx",
      "args": ["--from", "zoho-crm-mcp", "zoho-mcp"],
      "env": {
        "ZOHO_CLIENT_ID": "your_zoho_client_id",
        "ZOHO_CLIENT_SECRET": "your_zoho_client_secret",
        "ZOHO_REDIRECT_URI": "http://localhost:8080/callback",
        "ZOHO_API_DOMAIN": "https://www.zohoapis.com",
        "ZOHO_SCOPE": "ZohoCRM.modules.ALL,ZohoCRM.users.ALL,ZohoCRM.org.ALL",
        "ZOHO_ACCESS_TOKEN": "your_generated_access_token",
        "ZOHO_REFRESH_TOKEN": "your_generated_refresh_token"
      }
    }
  }
}

Alternative configuration if installed locally:

{
  "mcpServers": {
    "zoho-crm": {
      "command": "zoho-mcp",
      "args": [],
      "env": {
        "ZOHO_CLIENT_ID": "your_zoho_client_id",
        "ZOHO_CLIENT_SECRET": "your_zoho_client_secret",
        "ZOHO_REDIRECT_URI": "http://localhost:8080/callback",
        "ZOHO_API_DOMAIN": "https://www.zohoapis.com",
        "ZOHO_SCOPE": "ZohoCRM.modules.ALL,ZohoCRM.users.ALL,ZohoCRM.org.ALL",
        "ZOHO_ACCESS_TOKEN": "your_generated_access_token",
        "ZOHO_REFRESH_TOKEN": "your_generated_refresh_token"
      }
    }
  }
}

Other MCP Clients

For other MCP-compatible clients, configure them to run:

# Using uvx (recommended)
uvx --from zoho-crm-mcp zoho-mcp

# Or if installed locally via pip
zoho-mcp

Error Handling

The server provides comprehensive error handling:

  • Authentication errors: Clear messages about missing or invalid credentials
  • API errors: Detailed error messages from Zoho CRM API
  • Network errors: Connection and timeout error handling
  • Data validation: Input parameter validation

All errors are returned in a consistent format:

{
  "error": "Description of the error",
  "details": "Additional error details if available"
}

Security Considerations

Current Implementation (Development)

  • Refresh tokens are stored in .env file (plain text)
  • Suitable for development and testing

Production Recommendations

  • Store refresh tokens in encrypted database
  • Use secure key management services (AWS KMS, Azure Key Vault, etc.)
  • Implement token rotation policies
  • Use environment variables for sensitive configuration
  • Enable audit logging
  • Implement rate limiting

Extending the Server

To add new tools:

  1. Add the function to zoho_mcp/zoho_tools.py:

    def new_tool_function(param1: str, param2: int) -> Dict[str, Any]:
        # Implementation
        pass
    
  2. Create MCP tool wrapper in zoho_mcp/server.py:

    @mcp.tool()
    def new_tool(param1: str, param2: int) -> Dict[str, Any]:
        """
        Description of the new tool.
        
        Args:
            param1: Description of parameter 1
            param2: Description of parameter 2
            
        Returns:
            Description of return value
        """
        return new_tool_function(param1, param2)
    
  3. Update documentation

Troubleshooting

Common Issues

  1. "Missing .env file" error:

    • Create a .env file in your working directory
    • Copy from .env.example and fill in your credentials
  2. "Not authenticated" error:

    • Run zoho-mcp-auth to set up authentication
    • Check that your .env file has valid credentials
  3. "Token refresh failed":

    • Re-run the OAuth setup process
    • Delete old tokens from .env and re-authenticate
  4. "API request failed":

    • Verify your Zoho CRM permissions
    • Check that the API domain is correct for your region
  5. "Contact/Deal not found":

    • Verify the search criteria
    • Check that the record exists in your CRM

Environment Variable Issues

  1. Missing environment variables:

    • Ensure ZOHO_CLIENT_ID and ZOHO_CLIENT_SECRET are set in .env
    • Check .env.example for the complete list
  2. Invalid credentials:

    • Verify your ZOHO_CLIENT_ID and ZOHO_CLIENT_SECRET
    • Ensure they match your Zoho Developer Console app
  3. Wrong redirect URI:

    • Ensure ZOHO_REDIRECT_URI matches your Zoho app configuration
    • Default should be http://localhost:8080/callback
  4. Authentication flow issues:

    • If authentication fails, delete ZOHO_ACCESS_TOKEN and ZOHO_REFRESH_TOKEN from .env
    • Restart the server to trigger a fresh OAuth flow

Debug Mode

For debugging, you can add logging to see API requests:

import logging
logging.basicConfig(level=logging.DEBUG)

API Rate Limits

Zoho CRM has API rate limits:

  • Free edition: 200 API calls per day
  • Paid editions: Higher limits based on plan

The server doesn't implement rate limiting, so monitor your usage accordingly.

Support

For issues related to:

License

This project is provided as-is for educational and development purposes.

Related Skills

View on GitHub
GitHub Stars3
CategorySales
Updated1y ago
Forks0

Languages

Python

Trust signals

70/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 medium3 low