
Zoho Crm
io.github.asklokeshPublished by GitHub account asklokeshv0.1.0Updated Oct 24, 2026
MCP server for Zoho CRM API integration
Overview
Lets an assistant read and create Zoho CRM leads, contacts, and deals, and search records across CRM modules.
- What you can do
- This local MCP server connects an assistant to Zoho CRM. It exposes tools to retrieve leads and contacts with pagination, get deals, create new leads, and search records across any module with custom criteria. It handles OAuth token refresh, rate limiting, retries with backoff, and error logging.
- When to use it
- Use it when an assistant needs to look up or add CRM records in Zoho CRM, for example pulling leads or deals for review, or creating a lead from a conversation. It suits teams already using Zoho CRM as their system of record.
- Requirements
- Runs locally as a Python package (Python 3.8+) via uvx or pip. Needs Zoho OAuth credentials: a client ID, client secret, and refresh token with ZohoCRM.modules.ALL and ZohoCRM.settings.ALL scopes, plus the API key environment variable ZOHO_CRM_API_KEY and optional ZOHO_CRM_API_URL. Network access to Zoho APIs is required.
Installation
In SourceWeft
- Open Zoho Crm in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Zoho CRM MCP Server
Zoho Crm Mcp Server
[GitHub stars] [GitHub forks] [GitHub watchers]
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)
From Source
Development Installation
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:
Edit .env with your credentials:
Usage
As a Standalone Server
In Python Code
Using the Zoho CRM Client
Development
Running Tests
Linting
Building
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
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:
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
Source: README.md at commit 1405998
Tools
0Version history
1- v0.1.0LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts