Production-ready Zammad MCP Server for Zammad 6.0+ and 7.x. Connect Claude, Cursor, and LLMs to your helpdesk via MCP.
Strong foundation with 30 well-named tools, comprehensive schemas, and clear descriptions. All tools follow verb_noun naming convention (get_, create_, update_, delete_, search_, list_). Input schemas are complete with types and descriptions for all parameters. However, output schemas are not documented, LLMs cannot predict response structure. Error handling lacks recovery guidance and actionable messages. Some parameter descriptions are generic ('Filter by X') without constraints or examples. Missing tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Descriptions average ~80 chars, below the 194-char baseline for A+ tools.
Create a new article (message/comment) on a ticket.
Create a new group.
Create a new organization.
Create a new ticket.
Create a new user.
Delete an organization.
Delete a ticket.
Output schemas not documented. LLMs cannot predict response structure, forcing them to guess field names and types for downstream tool calls. This breaks tool chaining and increases hallucination risk.
Tool annotations missing. Destructive tools (delete_ticket, delete_user, delete_organization) lack destructiveHint=true. Read-only tools lack readOnlyHint=true. This prevents clients from applying appropriate safety guards and UI styling.
Error handling lacks recovery guidance. No evidence of actionable error messages (e.g., 'User not found. Try search_users() with a partial name.'). Errors likely return raw API responses or stack traces instead of guiding LLM recovery.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | A | 84 | <=2025-11-25 | v2 |
Delete a user.
Get a list of all tools accessible to the current session.
Get information about the currently authenticated user.
Get a specific group by ID or name.
Get a specific organization by ID or name.
Get all available ticket priorities.
Get information about the Zammad server.
Get all available tags.
Get a specific ticket by ID.
Get all articles (messages/comments) for a specific ticket.
Get all available ticket states.
Get ticket statistics and metrics.
Get a specific user by ID or email.
Check the health of the Zammad MCP Server and its connection to Zammad.
Create a link between two tickets.
List all groups.
Merge two tickets into one.
Search for organizations with various filters.
Search for tickets with various filters.
Search for users with various filters.
Update an existing organization.
Update an existing ticket.
Update an existing user.
Parameter descriptions are generic and lack constraints. E.g., 'Filter by priority' does not specify valid values ('1 low', '2 normal', '3 high'). LLMs cannot self-correct without explicit enums or format hints.
Descriptions are brief (avg ~80 chars vs 194-char baseline). Missing context on WHEN to use each tool and dependencies. E.g., 'Get a specific ticket by ID' does not explain when to call search_tickets first or what include_articles does.