MCP server for Zoho Books data access via JDBC connection
The server defines 3 tools with clear verb-first naming (get_tables, get_columns, run_query) and explicit input schemas using JsonSchemaBuilder. However, descriptions are generic and lack LLM-optimization guidance. Parameters have type definitions but lack depth-of-field documentation (e.g., catalog/schema optionality not explained in descriptions). Output format is CSV but schema not formally documented. Error handling is minimal, exceptions thrown as RuntimeException with generic 'ERROR: ' prefix. No recovery guidance or constraint documentation.
Retrieves a list of fields, dimensions, or measures (as columns) for an object, entity or collection (table). Use the `zohobooks_get_tables` tool to get a list of available tables. The output of the tool will be returned in CSV format, with the first line containing column headers.
Retrieves a list of objects, entities, collections, etc. (as tables) available in the data source. Use the `zohobooks_get_columns` tool to list available columns on a table. Both `catalog` and `schema` are optional parameters. The output of the tool will be returned in CSV format, with the first line containing column headers.
Execute a SQL SELECT statement.
No documented output schemas for any tool. All tools return CSV format, but no formal structured schema is declared. LLMs cannot infer response fields or plan downstream tool calls.
Parameter optionality not clearly documented. catalog/schema are optional in get_tables/get_columns but descriptions don't state this explicitly. LLMs may omit them or pass invalid values without understanding consequences.
Error handling provides no recovery guidance. Exception stack traces or generic 'ERROR: ' messages are not actionable for LLMs. No indication of retryability or what to try next.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 34 | - | v1 |
SQL constraint documentation (SQL-92 dialect, valid clauses like FROM, INNER JOIN, LEFT JOIN, GROUP BY, ORDER BY, LIMIT/OFFSET) is embedded in the parameter description as freetext rather than formal constraints. No validation prevents invalid clause combinations or unsupported syntax.
No pagination support documented. If result sets are large (e.g., listing 1000+ tables), there is no limit parameter or cursor mechanism. CSV output can blow context window.