Server has 9 well-structured tools with complete JSON schemas and descriptions in Portuguese. All tools have proper input validation via Zod. However, descriptions are inconsistent in depth and some lack actionable guidance for LLM selection. Parameter descriptions are present but generic in places. No output schemas documented. Error handling exists but lacks recovery guidance. Tool naming follows verb_noun convention correctly (search, get, create, update, add). Composition is sound, tools are single-responsibility and chainable via ID returns.
Lista os grupos (filas) de chamados do Zammad.
Busca organizações (clientes corporativos) por nome.
Adiciona uma nota interna ou resposta (article) a um chamado existente. internal tem default true (nota interna, não visível ao cliente) independente de type — para enviar um e-mail ao cliente, informe internal explicitamente como false.
Cria um novo chamado no Zammad. Informe group (nome) ou group_id, customer (e-mail) e o article inicial. article.internal tem default true (nota interna, não visível ao cliente) independente de article.type — para enviar um e-mail ao cliente, informe article.internal explicitamente como false.
Busca um chamado pelo id, incluindo artigos (mensagens/notas) e histórico.
Output schemas not documented. LLMs cannot predict response structure or plan downstream tool calls. Tools return raw API responses without field documentation.
Error handling lacks recovery guidance. dispatch.ts returns generic error messages ('Tool desconhecida', 'Invalid input') without actionable next steps or error classification (retryable vs fatal).
Descriptions for directory tools (user_search, user_get, organization_search, group_list) are minimal (60 chars or less). Lack context on when to call them vs similar tools, and no dependency hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Busca chamados no Zammad usando a sintaxe de busca do Zammad (ex.: 'state:new', 'title:*impressora*'). Retorna os chamados encontrados.
Atualiza campos de um chamado existente (estado, prioridade, grupo, responsável). Só envia os campos informados.
Busca um usuário pelo id.
Busca usuários (agentes ou clientes) por nome, login ou e-mail.
zammad_ticket_create and zammad_ticket_add_article have complex nested article parameter with conditional internal/type behavior. Documentation warns about default=true for internal, but no enum constraint on type field, LLMs may hallucinate invalid values.
zammad_ticket_update has mutually exclusive parameters (state vs state_id, priority vs priority_id, group vs group_id, owner_id). No validation or clear guidance on which to use, LLMs may pass both, causing ambiguous API calls.