MCP server providing integration with Zoho suite (CRM, Books, Inventory, Mail)
The server defines 14 tools with explicit schemas and basic descriptions, but falls short of production quality. While all tools have descriptions and input schemas are visible in the code, many descriptions are too brief (10-30 chars) to guide LLM selection effectively. Parameter descriptions are sparse or missing entirely. No output schemas are documented. Error handling is absent from tool definitions. The naming convention is inconsistent (mix of verb_noun and prefix-based naming like 'zoho_*'). The server has HTTP transport capability and stateless design, supporting current spec patterns, but lacks structured error guidance and tool annotations (readOnlyHint, destructiveHint, idempotentHint) that the spec now supports.
List contacts from Zoho Books
Create a new invoice in Zoho Books
List invoices from Zoho Books
Create a new CRM record
Delete a CRM record by ID
List CRM records (Contacts/Leads/Accounts/Deals)
Search CRM records by criteria
Missing output schemas and result documentation. Tools are registered with input schemas but no explicit documentation of what fields are returned, their types, or structure. This prevents LLMs from planning downstream tool calls or extracting required data (e.g., does list return total_count? what fields does each record contain?).
Descriptions too brief or lacking guidance. Many tool descriptions fall between 20 - 30 characters (e.g., 'List items from Zoho Inventory', 'List Zoho Mail accounts'). These are too short to disambiguate when tools are similar or to hint at common use cases. Baseline: 194 chars avg, production tools at p10=34, p90=392.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |
Update an existing CRM record by ID
Add a new item/product to Zoho Inventory
List items from Zoho Inventory
List sales orders from Zoho Inventory
List Zoho Mail accounts
Read recent messages from Zoho Mail
Send an email via Zoho Mail
Parameter descriptions missing or too generic. The 'data' parameter in zoho_crm_create, zoho_crm_update, and similar operations accepts a free-form object with no guidance on required or optional fields, field names, or types. LLMs cannot infer valid payloads. The 'criteria' parameter in zoho_crm_search only shows a single example format.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). The spec now supports these annotations to help clients manage risk. E.g., zoho_crm_delete should be marked destructiveHint=true; zoho_crm_list should be marked readOnlyHint=true. This information is implicit in names and descriptions but not formally declared.
No error handling or recovery guidance in tool definitions. Tools accept input with minimal validation and provide no actionable error messages or recovery steps to the LLM. If a Zoho API returns 404 or 401, there is no guidance in the tool definition on how the LLM should respond.
Inconsistent naming pattern. Tools use 'zoho_<product>_<action>' (e.g., zoho_crm_list, zoho_books_invoices) instead of a consistent verb-first pattern (list_crm_records, search_crm_records). This adds a prefix that does not convey action intent, reducing clarity for LLMs.
Free-form 'data' and 'criteria' parameters invite hallucinated payloads. E.g., zoho_crm_create accepts any object in 'data' without validation or schema. LLMs will guess at field names and may pass invalid structures. Replace with explicit parameters or structured schema with enum/pattern constraints.
No pagination limits documented. Tools like zoho_crm_list and zoho_books_invoices accept per_page but do not state a maximum or default cap. An LLM might request 10,000 items; without a documented limit, responses could explode context size.
Missing chaining IDs in response documentation. When a tool like zoho_crm_search returns records, it is unclear whether record_id is included, or what fields are needed to call zoho_crm_update next. This forces LLMs to make assumptions or call extra discovery tools.