Zoho CRM + Books MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ZOHO_SCOPES | No | Zoho API Scopes (comma-separated) | ZohoCRM.modules.ALL,ZohoCRM.settings.ALL,ZohoBooks.fullaccess.all |
| ZOHO_CLIENT_ID | Yes | Zoho OAuth Client ID | |
| ZOHO_DATA_CENTER | Yes | Zoho Data Center (com, eu, in, com.au, jp) | |
| MULTI_CONFIG_PATH | No | Path to configuration file for multi-config mode | |
| ZOHO_REDIRECT_URI | Yes | Zoho OAuth Redirect URI (e.g., http://localhost:3000/callback) | |
| ZOHO_CLIENT_SECRET | Yes | Zoho OAuth Client Secret | |
| ZOHO_REFRESH_TOKEN | Yes | Zoho OAuth Refresh Token | |
| MULTI_CONFIG_ENABLED | No | Enable multi-configuration system (true/false) | |
| MULTI_CONFIG_ENVIRONMENT | No | Current environment to use in multi-config mode | |
| ZOHO_BOOKS_ORGANIZATION_ID | Yes | Zoho Books Organization ID (required for Books functionality) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_tool_categoriesA | Get organized list of all tool categories with descriptions. Perfect starting point for LLMs to understand available functionality. |
| list_tools_by_categoryA | Get all tools in a specific category with their descriptions and purposes. |
| sync_accounts_to_customersA | Sync CRM accounts to Books customers (CRM → Books direction). Creates or updates customer records in Books based on account data from CRM. Example: Sync 50 accounts {"source_module": "accounts", "target_module": "customers", "filters": {"limit": 50}} |
| sync_contacts_to_customersA | Sync CRM contacts to Books customers (CRM → Books direction). Creates or updates customer records in Books based on contact data from CRM. Workflow: Typically run after CRM data updates. Follow with books_get_customers to verify sync results |
| sync_customers_to_contactsA | Sync Books customers to CRM contacts (Books → CRM direction). Creates or updates contact records in CRM based on customer data from Books. |
| create_invoice_from_dealA | Create a Books invoice from a CRM deal. Automatically transfers deal information, products, and pricing to create a professional invoice. Workflow: CRM deal → Books invoice → books_send_invoice_email → books_create_payment (when paid) |
| search_recordsA | Search across CRM and Books records using flexible criteria. Use for finding specific records by name, email, phone, or other fields. Example: Search for contacts {"module": "contacts", "criteria": "john@example.com", "fields": ["id", "Full_Name", "Email"]} |
| books_get_customersA | Get customer list from Books with filtering and pagination. WORKFLOW STARTER for Books financial operations.\n\nPrerequisites: Books access with customer management permissions\n\nNext Steps:\n→ Use |
| books_get_customerA | Get detailed information for a specific customer from Books by ID. Returns complete customer profile including contact details, billing/shipping addresses, and account status. Related tools: books_get_customers (to find IDs), books_create_invoice (to bill customer), books_create_payment (to record payments) |
| books_create_customerC | Create a new customer in Books |
| books_update_customerC | Update an existing customer in Books |
| books_delete_customerB | Delete a customer from Books |
| books_get_itemsA | Get all items from Books including products and services available for billing. ESSENTIAL for invoice line items.\n\nPrerequisites: Books access with inventory management permissions\n\nNext Steps:\n→ Use item_id and details for |
| books_get_itemA | Get a specific item from Books by ID |
| books_create_itemA | Create a new product or service item in Books inventory. Use for adding products to sell, services to offer, or items to include in invoices. Example: Create service item {"name": "Consulting Services", "description": "Business consulting", "rate": 150, "unit": "hrs", "item_type": "sales"} |
| books_update_itemC | Update an existing item in Books |
| books_delete_itemC | Delete an item from Books |
| books_get_estimatesC | Get all estimates from Books |
| books_create_estimateC | Create a new estimate in Books |
| books_convert_estimate_to_invoiceC | Convert a Books estimate to an invoice |
| books_get_paymentsC | Get all payments from Books |
| books_create_paymentA | Create a payment in Books to apply against specific invoices. First use books_get_invoices to find invoice IDs and amounts, then create payment to apply against those invoices. Example workflow:
|
| books_get_invoicesA | Get invoices from Books with filtering and pagination. Use to find invoices for payments, get invoice details, or browse invoice history. Related tools: books_create_invoice (to create), books_create_payment (to pay), books_get_customer (customer details) |
| books_get_invoiceB | Get a specific invoice from Books by ID |
| books_create_invoiceA | Create a new invoice in Books for billing customers. KEY FINANCIAL OPERATION in the Books workflow.\n\nPrerequisites:\n→ Use |
| books_update_invoiceC | Update an existing invoice in Books |
| books_delete_invoiceB | Delete an invoice from Books |
| books_send_invoice_emailC | Send an invoice via email |
| books_get_invoice_pdfB | Get an invoice as PDF |
| books_get_sales_ordersA | Get all sales orders from Books with filtering and pagination\n\nPrerequisites: Books access with sales order read permissions\nNext Steps: Use books_create_invoice to convert sales orders to invoices\nWorkflow: Sales order management → invoice conversion → payment tracking\nError Recovery: If no sales orders found, verify Books access and search filters |
| books_get_credit_notesC | Get all credit notes from Books |
| books_get_credit_noteB | Get a specific credit note from Books by ID |
| books_create_credit_noteC | Create a new credit note in Books |
| books_update_credit_noteC | Update an existing credit note in Books |
| books_delete_credit_noteC | Delete a credit note from Books |
| books_convert_credit_note_to_openC | Convert a credit note to open status |
| books_void_credit_noteC | Void a credit note |
| books_email_credit_noteC | Email a credit note |
| books_get_credit_note_refundsC | Get refunds for a credit note |
| books_refund_credit_noteC | Create a refund for a credit note |
| books_apply_credit_note_to_invoiceD | Apply a credit note to an invoice |
| books_bulk_export_credit_notesC | Export credit notes in bulk |
| books_bulk_print_credit_notesC | Print credit notes in bulk |
| books_get_credit_note_commentsC | Get comments for a credit note |
| books_add_credit_note_commentC | Add a comment to a credit note |
| books_get_purchase_ordersC | Get all purchase orders from Books |
| books_get_purchase_orderA | Get a specific purchase order from Books by ID |
| books_create_purchase_orderC | Create a new purchase order in Books |
| books_update_purchase_orderC | Update an existing purchase order in Books |
| books_delete_purchase_orderC | Delete a purchase order from Books |
| books_mark_purchase_order_as_openC | Mark a purchase order as open |
| books_mark_purchase_order_as_billedB | Mark a purchase order as billed |
| books_cancel_purchase_orderC | Cancel a purchase order |
| books_email_purchase_orderC | Email a purchase order |
| books_submit_purchase_order_for_approvalC | Submit a purchase order for approval |
| books_approve_purchase_orderC | Approve a purchase order |
| books_bulk_export_purchase_ordersC | Export purchase orders in bulk |
| books_bulk_print_purchase_ordersC | Print purchase orders in bulk |
| books_get_billsC | Get all bills from Books |
| books_get_billA | Get a specific bill from Books by ID |
| books_create_billC | Create a new bill in Books |
| books_update_billC | Update an existing bill in Books |
| books_delete_billC | Delete a bill from Books |
| books_mark_bill_as_openC | Mark a bill as open |
| books_void_billC | Void a bill |
| books_mark_bill_as_paidC | Mark a bill as paid |
| books_record_bill_paymentC | Record a payment for a bill |
| books_get_bill_paymentsC | Get payments for a bill |
| books_bulk_export_billsD | Export bills in bulk |
| books_bulk_print_billsC | Print bills in bulk |
| crm_get_tasksC | Get all tasks from CRM |
| crm_create_taskA | Create a task in CRM linked to accounts, contacts, or deals. Tasks can have due dates, priorities, and reminders for follow-up activities. Example: Create follow-up task {"Subject": "Follow up on proposal", "Due_Date": "2024-12-31", "Priority": "High", "What_Id": "deal-123", "Who_Id": "contact-456"} |
| crm_get_eventsA | Get calendar events from CRM with filtering and pagination. Use for viewing meetings, appointments, and scheduled activities. Related tools: crm_create_event (to schedule), crm_create_task (for follow-ups), crm_get_notes (meeting notes) |
| crm_create_eventD | Create a new event in CRM |
| crm_get_notesC | Get notes for a specific CRM record |
| crm_create_noteC | Create a new note for a CRM record |
| crm_send_emailC | Send email for a CRM record |
| crm_get_attachmentsC | Get attachments for a CRM record |
| analyze_custom_moduleB | Analyze any CRM module with statistical breakdown by field values. Perfect for generating reports, understanding data distribution, and identifying patterns. Workflow: First use crm_get_all_modules to discover available modules, then get_custom_module_records to explore data, finally analyze_custom_module for insights |
| get_custom_module_recordsA | Get records from any custom module with flexible filtering |
| analyze_module_fieldC | Perform statistical analysis on any field in any module |
| crm_get_all_modulesA | Get all CRM modules with metadata\n\nWORKFLOW STARTER for CRM module discovery\n\nNext Steps: Use crm_get_fields for field discovery → crm_validate_criteria → crm_search_records\nPagination: Use page and per_page to limit response size and avoid token limits\nError Recovery: If response too large, use smaller per_page values (try 10-20) |
| crm_get_module_detailsC | Get detailed metadata for a specific module |
| crm_get_module_fieldsA | Get fields for a module with pagination and filtering to avoid large responses |
| crm_get_field_detailsA | Get detailed metadata for a specific field including data type, validation rules, picklist values, and dependencies.\n\nPrerequisites:\n→ Use |
| crm_get_timelineA | Get timeline history for a CRM record showing all field changes, activities, and audit trail\n\nPrerequisites: Use crm_search_records to find target record_id\nNext Steps: Use crm_analyze_activity_patterns for trend analysis → crm_get_field_changes for specific field tracking\nComplete Workflow: crm_search_records → crm_get_timeline → analysis\nError Recovery: If timeline empty, verify record_id exists and has activity history |
| crm_search_by_timelineA | Search records by timeline events - find records modified within date ranges\n\nPrerequisites: None - timeline-based discovery tool\nNext Steps: Use crm_get_timeline for detailed analysis → crm_get_field_changes for specific tracking\nUse Cases: Recent activity analysis, audit trails, change tracking\nError Recovery: If no results, try broader date range or different action types |
| crm_get_field_changesA | Track field change history for records - detailed audit of specific field modifications\n\nPrerequisites: Use crm_search_records or crm_search_by_timeline to find target records\nNext Steps: Use crm_analyze_activity_patterns for trend analysis → Generate change reports\nBusiness Value: Compliance tracking, change audit, data quality monitoring\nError Recovery: If no changes found, verify field names and date range |
| crm_analyze_activity_patternsA | Analyze activity patterns and trends in CRM data - business intelligence for user behavior\n\nPrerequisites: Use crm_search_by_timeline to identify activity periods\nNext Steps: Generate insights reports → Optimize workflows → User performance analysis\nBusiness Value: Team productivity analysis, workflow optimization, trend identification\nError Recovery: If insufficient data, try broader date range or different grouping |
| crm_get_picklist_fieldsA | Get only picklist fields for a specific module - optimized for finding disposition/status fields |
| crm_search_fieldsA | Search fields by name pattern - use to find specific fields like "disposition" or "status" |
| crm_semantic_field_searchC | Semantic field search - find fields related to a concept (e.g., "disposition", "status", "reason") |
| crm_smart_field_discoveryB | Smart field discovery - finds fields based on intent with optimized response format to reduce tokens and iterations |
| crm_extract_complete_picklist_hierarchyA | Extract complete picklist hierarchy with dependencies in one optimized call - reduces multiple API calls to single request |
| crm_get_global_set_valuesB | Get Global Set values by name - specifically for extracting complete disposition data |
| crm_get_complete_disposition_dataC | Get complete disposition data including all Global Set values and dependent fields |
| crm_get_layoutsA | Get all layouts for modules including page layouts, related lists, and section configurations.\n\nPrerequisites: Use |
| crm_get_layout_detailsA | Get detailed metadata for a specific layout including sections, fields, and display rules.\n\nPrerequisites:\n→ Use |
| crm_update_layoutC | Update layout configuration |
| crm_get_all_profilesA | Get all profiles in the organization Prerequisites: None - this is a discovery tool for organizational structure Next Steps: Use crm_get_user_details for users associated with specific profiles → crm_get_all_roles to understand role hierarchy → crm_update_profile for permission modifications Common Pattern: Profile discovery → User-profile analysis → Permission management workflow Error Recovery: If API fails, verify organization access permissions and try crm_get_organization_details first |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| CRM Modules | Available CRM modules and their configurations |
| Books Organizations | Available Books organizations |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Mgabr90/zoho-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server