Zoho Crm

io.github.asklokesh由 GitHub 账号 asklokesh 发布v0.1.0更新于 Oct 24, 2026

MCP server for Zoho CRM API integration

已验证STDIO仅桌面效率与工作流商业与电商

概览

AI 生成的概览

让助手读取和创建 Zoho CRM 的潜在客户、联系人和交易,并跨模块搜索记录。

可以做什么
这个本地 MCP 服务器把助手连接到 Zoho CRM。它提供工具来分页获取潜在客户和联系人、获取交易、创建新潜在客户,以及按自定义条件搜索任意模块中的记录。它还处理 OAuth 令牌刷新、速率限制、带退避的重试和错误日志。
适用场景
当助手需要查询或新增 Zoho CRM 记录时使用,例如调取潜在客户或交易进行查看,或在对话中创建潜在客户。适合已把 Zoho CRM 作为核心客户系统的团队。
运行要求
以 Python 包形式在本地运行(Python 3.8+),可通过 uvx 或 pip 安装。需要 Zoho OAuth 凭据:客户端 ID、客户端密钥,以及具备 ZohoCRM.modules.ALL 和 ZohoCRM.settings.ALL 权限范围的刷新令牌,还需要环境变量 ZOHO_CRM_API_KEY 和可选的 ZOHO_CRM_API_URL。需要访问 Zoho API 的网络。
安装前请注意
需要敏感的 Zoho OAuth 凭据(客户端 ID、客户端密钥、刷新令牌)以及 ZOHO_CRM_API_KEY 密钥,应放在环境变量中而非共享文件。create_lead 工具会向实际 CRM 写入新记录,search_records 可跨模块读取数据,因此应尽量缩小刷新令牌权限范围,并在启用写入前先确认。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Zoho Crm,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

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:

  1. get_leads - Retrieve leads from Zoho CRM with pagination
  2. create_lead - Create new leads in Zoho CRM
  3. get_contacts - Fetch contacts with pagination support
  4. get_deals - Get deals from Zoho CRM
  5. search_records - Search across any module with custom criteria

Installation

From PyPI (when published)

bash
pip install zoho-crm-mcp-server

From Source

bash
git clone https://github.com/asklokesh/zoho-crm-mcp-server.gitcd zoho-crm-mcp-serverpip install -e .

Development Installation

bash
pip install -e ".[dev]"

Configuration

1. Set Up Zoho OAuth Credentials

  1. Go to Zoho API Console
  2. Create a new Self Client application
  3. Note your Client ID and Client Secret
  4. Generate a refresh token with required scopes:
    • ZohoCRM.modules.ALL
    • ZohoCRM.settings.ALL

2. Create Environment Configuration

Copy the example configuration:

bash
cp .env.example .env

Edit .env with your credentials:

env
ZOHO_CLIENT_ID=your_client_id_hereZOHO_CLIENT_SECRET=your_client_secret_hereZOHO_REFRESH_TOKEN=your_refresh_token_here
# Optional configurationsZOHO_API_DOMAIN=https://www.zohoapis.comRATE_LIMIT_REQUESTS=100RATE_LIMIT_PERIOD=60MAX_RETRIES=3LOG_LEVEL=INFO

Usage

As a Standalone Server

bash
zoho-crm-mcp

In Python Code

python
from zoho_crm_mcp import ZohoCRMMCPServerimport asyncio
async def main():    server = ZohoCRMMCPServer()    await server.run()
if __name__ == "__main__":    asyncio.run(main())

Using the Zoho CRM Client

python
from zoho_crm_mcp import ZohoCRMClient, Configimport 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": "[email protected]",        "Company": "Acme Corp"    })        # Search for records    results = await client.search_records(        "Leads",        "(Email:equals:[email protected])"    )        await client.close()
if __name__ == "__main__":    asyncio.run(main())

Development

Running Tests

bash
pytest tests/ -v --cov=zoho_crm_mcp

Linting

bash
ruff check src/ tests/ruff format src/ tests/

Building

bash
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:

bash
export LOG_LEVEL=DEBUG  # Options: DEBUG, INFO, WARNING, ERROR, CRITICAL

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. 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


Made with ❤️ for the MCP community

来源:README.md,提交 1405998

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分