Read-only MCP server for integrating Zoko with AI assistants like Claude
Server has 8 well-named, read-only tools with consistent verb_noun naming (list_*, get_*). All tools have descriptions (avg 120 chars, within baseline 34-392). Zod schemas present for all tools with typed parameters. However, parameter descriptions are minimal (e.g., 'webhook id, a uuid' lacks format/constraint details). Output schemas are undocumented, LLMs cannot predict response structure. Error handling is basic: get_template returns isError flag but others do not. No guidance on retryability, rate limits (Zoko's 300s throttle on /customer), or pagination semantics. Caching logic is implementation detail, not surfaced to LLM. Missing: output schema documentation, error recovery guidance, and parameter constraint details (e.g., UUID format, page bounds).
Get one customer by id, including their channels, tags and assignment
Get one WhatsApp group, including its participants, by id
Get a Zoko message template by its exact templateId
Get one Zoko webhook by its id
List WhatsApp customers, one page of 100 at a time. Zoko allows one request per 300 seconds, so pages are cached for ten minutes and fetching every page is not practical.
List all active WhatsApp groups on the Zoko account
Output schemas undocumented. All tools return JSON.stringify(data) as text, but LLMs cannot predict field names, types, or structure. Agents cannot plan downstream calls or extract specific fields reliably.
Parameter descriptions lack constraint details. 'webhook id, a uuid' does not specify UUID format (RFC 4122), length, or validation rules. 'page number' lacks bounds (min=1 is in schema but not description text). LLMs cannot self-correct invalid input.
Error handling inconsistent and minimal. Only get_template returns isError flag; others throw exceptions or return raw API errors. No guidance on retryability, rate limits (Zoko enforces 300s throttle on /customer), or recovery steps.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
List all approved Zoko WhatsApp message templates
List all webhooks configured on the Zoko account
Pagination not fully documented. list_customers accepts page param but description does not state page size (100), total count availability, or whether pages are cached (10-min TTL). Agents cannot plan multi-page iteration.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but this is not declared in schema. Agents cannot infer safety properties without explicit hints.