About
MCP server for Zoho CRM API integration
Security Report
Valid MCP server (3 strong, 1 medium validity signals). 3 known CVEs in dependencies (0 critical, 3 high severity) Imported from the Official MCP Registry. 1 finding(s) downgraded by scanner intelligence.
14 files analyzed ยท 4 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
What You'll Need
Set these up before or after installing:
Environment variable: ZOHO_CRM_API_KEY
Environment variable: ZOHO_CRM_API_URL
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-asklokesh-zoho-crm-mcp-server": {
"env": {
"ZOHO_CRM_API_KEY": "your-zoho-crm-api-key-here",
"ZOHO_CRM_API_URL": "your-zoho-crm-api-url-here"
},
"args": [
"zoho-crm-mcp-server"
],
"command": "uvx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
Zoho CRM MCP Server
Zoho Crm Mcp Server
A Model Context Protocol (MCP) server for integrating Zoho CRM with GenAI applications.
Overview
This MCP server provides seamless integration with Zoho CRM, enabling AI assistants and applications to interact with your CRM data through a standardized interface.
Features
- ๐ OAuth 2.0 Authentication - Secure authentication with automatic token refresh
- ๐ Comprehensive CRM Operations - Full support for Leads, Contacts, Deals, and more
- โก Rate Limiting - Built-in rate limiting to respect API quotas
- ๐ Automatic Retry Logic - Intelligent retry mechanism with exponential backoff
- ๐ก๏ธ Error Handling - Robust error handling and logging
- ๐ฏ MCP Protocol Compliance - Full compliance with Model Context Protocol specification
- ๐ Async Support - Asynchronous operations for better performance
Available Tools
The server exposes the following MCP tools:
- get_leads - Retrieve leads from Zoho CRM with pagination
- create_lead - Create new leads in Zoho CRM
- get_contacts - Fetch contacts with pagination support
- get_deals - Get deals from Zoho CRM
- search_records - Search across any module with custom criteria
Installation
From PyPI (when published)
pip install zoho-crm-mcp-server
From Source
git clone https://github.com/asklokesh/zoho-crm-mcp-server.git
cd zoho-crm-mcp-server
pip install -e .
Development Installation
pip install -e ".[dev]"
Configuration
1. Set Up Zoho OAuth Credentials
- Go to Zoho API Console
- Create a new Self Client application
- Note your Client ID and Client Secret
- Generate a refresh token with required scopes:
ZohoCRM.modules.ALLZohoCRM.settings.ALL
2. Create Environment Configuration
Copy the example configuration:
cp .env.example .env
Edit .env with your credentials:
ZOHO_CLIENT_ID=your_client_id_here
ZOHO_CLIENT_SECRET=your_client_secret_here
ZOHO_REFRESH_TOKEN=your_refresh_token_here
# Optional configurations
ZOHO_API_DOMAIN=https://www.zohoapis.com
RATE_LIMIT_REQUESTS=100
RATE_LIMIT_PERIOD=60
MAX_RETRIES=3
LOG_LEVEL=INFO
Usage
As a Standalone Server
zoho-crm-mcp
In Python Code
from zoho_crm_mcp import ZohoCRMMCPServer
import asyncio
async def main():
server = ZohoCRMMCPServer()
await server.run()
if __name__ == "__main__":
asyncio.run(main())
Using the Zoho CRM Client
from zoho_crm_mcp import ZohoCRMClient, Config
import asyncio
async def main():
config = Config()
client = ZohoCRMClient(config)
await client.initialize()
# Get leads
leads = await client.get_leads(page=1, per_page=50)
print(f"Found {len(leads['data'])} leads")
# Create a new lead
new_lead = await client.create_lead({
"Last_Name": "Doe",
"First_Name": "John",
"Email": "john.doe@example.com",
"Company": "Acme Corp"
})
# Search for records
results = await client.search_records(
"Leads",
"(Email:equals:john.doe@example.com)"
)
await client.close()
if __name__ == "__main__":
asyncio.run(main())
Development
Running Tests
pytest tests/ -v --cov=zoho_crm_mcp
Linting
ruff check src/ tests/
ruff format src/ tests/
Building
python -m build
CI/CD
This project includes GitHub Actions workflows for:
- โ Automated testing across Python 3.8-3.12
- ๐ Code quality checks with Ruff
- ๐ฆ Package building and validation
- ๐ Code coverage reporting
Architecture
zoho-crm-mcp-server/
โโโ src/zoho_crm_mcp/
โ โโโ __init__.py # Package initialization
โ โโโ server.py # MCP server implementation
โ โโโ zoho_client.py # Zoho CRM API client
โ โโโ config.py # Configuration management
โโโ tests/ # Comprehensive test suite
โโโ .github/workflows/ # CI/CD pipelines
โโโ pyproject.toml # Project configuration
Error Handling
The server includes comprehensive error handling:
- Token Expiry: Automatic token refresh when tokens expire
- Rate Limiting: Respects API rate limits with intelligent backoff
- Network Errors: Automatic retry with exponential backoff
- Validation Errors: Clear error messages for invalid configurations
Logging
The server uses Python's built-in logging module. Configure log level via environment variable:
export LOG_LEVEL=DEBUG # Options: DEBUG, INFO, WARNING, ERROR, CRITICAL
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Troubleshooting
Common Issues
Issue: ModuleNotFoundError: No module named 'mcp'
Solution: Install the MCP SDK: pip install mcp
Issue: Token refresh fails Solution: Verify your refresh token is valid and has the required scopes
Issue: Rate limit errors
Solution: Adjust RATE_LIMIT_REQUESTS and RATE_LIMIT_PERIOD in your .env file
Requirements
- Python 3.8+
- requests >= 2.25.0
- mcp >= 1.0.0
- python-dotenv >= 0.19.0
License
MIT License - see LICENSE file for details
Support
For issues, questions, or contributions, please visit:
Acknowledgments
- Model Context Protocol - MCP specification
- Zoho CRM API - API documentation
- All contributors who help improve this project
Made with โค๏ธ for the MCP community
Reviews
No reviews yet
Be the first to review this server!
More Business Tools MCP Servers
Toleno
Freeby Toleno ยท Developer Tools
Toleno Network MCP Server โ Manage your Toleno mining account with Claude AI using natural language.
mcp-creator-python
Freeby mcp-marketplace ยท Developer Tools
Create, build, and publish Python MCP servers to PyPI โ conversationally.
MCP Marketplace
Freeby mcp-marketplace ยท Developer Tools
Search and install MCP servers from inside your AI client.
MarkItDown
Freeby Microsoft ยท Content & Media
Convert files (PDF, Word, Excel, images, audio) to Markdown for LLM consumption
FinAgent
Freeby mcp-marketplace ยท Finance
Free stock data and market news for any MCP-compatible AI assistant.
Google Workspace MCP
Freeby Taylorwilsdon ยท Productivity
Control Gmail, Calendar, Docs, Sheets, Drive, and more from your AI
