A Model Control Protocol (MCP) server that exposes tools for interacting with Zoho Books. This server allows AI agents like Anthropic Claude Desktop and Cursor to access Zoho Books operations through natural language commands.
- Features
- Getting Started
- Running the Server
- Available Tools
- Client Integration
- Documentation
- Development
- License
- Acknowledgements
- Provides a comprehensive API for Zoho Books operations
- Implements the MCP protocol using the Python SDK
- Supports STDIO, HTTP/SSE, and WebSocket transports
- Uses Pydantic for input/output validation
- Handles authentication with Zoho's OAuth system
- Comprehensive error handling and logging
- Secure credential management
- Python 3.9+
- Zoho Books account with API access
- Zoho API credentials (Client ID, Client Secret, Refresh Token)
- Clone this repository:
git clone https://github.com/yourusername/zoho-books-mcp-server.git
cd zoho-books-mcp-server- Create a virtual environment and install dependencies:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt- Create a configuration file by copying the example:
cp config/.env.example config/.env- Edit
config/.envwith your Zoho Books API credentials:
ZOHO_CLIENT_ID="your_client_id"
ZOHO_CLIENT_SECRET="your_client_secret"
ZOHO_REFRESH_TOKEN="your_refresh_token"
ZOHO_ORGANIZATION_ID="your_organization_id"
ZOHO_REGION="US" # Change according to your region (US, EU, IN, AU, etc.)
python server.py --stdiopython server.py --port 8000python server.py --wsThe server provides the following tools for interacting with Zoho Books:
list_contacts: Fetch all contacts with optional filterscreate_customer: Create a new customercreate_vendor: Create a new vendorget_contact: Retrieve a specific contactdelete_contact: Delete a contact
list_invoices: List invoices with pagination and optional filterscreate_invoice: Create a new invoiceget_invoice: Retrieve a specific invoiceemail_invoice: Send an invoice by emailmark_invoice_as_sent: Mark an invoice as sentvoid_invoice: Void an existing invoice
list_expenses: List expense transactionscreate_expense: Record a new expenseget_expense: Retrieve a specific expenseupdate_expense: Update an existing expense
list_items: Retrieve items (products/services)create_item: Create a new itemget_item: Retrieve item detailsupdate_item: Update an existing item
list_sales_orders: List sales orders with pagination and filterscreate_sales_order: Create a new sales orderget_sales_order: Retrieve a specific sales orderupdate_sales_order: Update an existing sales orderconvert_to_invoice: Convert a sales order to an invoice
For detailed instructions on integrating the Zoho Books MCP server with different clients, see the following documentation:
- Claude Desktop Integration Guide
- Cursor Integration Guide
- Common Operations Examples
- Troubleshooting Guide
-
Install Claude Desktop from the official website.
-
Set up the Zoho Books MCP server by following the Installation and Configuration steps above.
-
Add the following configuration to Claude Desktop:
- Open Claude Desktop, click on the Claude menu and select "Settings..."
- Click on "Developer" in the sidebar and then "Edit Config"
- Add the following configuration (adjust paths as needed):
{
"mcpServers": {
"zoho-books": {
"command": "python",
"args": [
"/path/to/zoho-books-mcp-server/server.py",
"--stdio"
],
"cwd": "/path/to/zoho-books-mcp-server"
}
}
}- Restart Claude Desktop and start interacting with Zoho Books through natural language!
- Claude Desktop Integration - Detailed guide for setting up and using with Claude Desktop
- Cursor Integration - Instructions for integrating with Cursor
- Common Operations - Examples of typical Zoho Books operations
- Troubleshooting Guide - Solutions for common issues
pytestpytest --cov=zoho_mcp