AI-based simple ITSM (IT Service Management) system with MCP server for ticket management, knowledge base search, and AI-powered triage and suggestions
Solid foundation with all 11 tools properly registered, named with action verbs, and equipped with descriptions and input schemas. However, parameter descriptions are minimal (often single phrases like 'The ticket ID'), output schemas are not formally documented, and error handling lacks recovery guidance. Naming is clear (create_ticket, list_tickets, update_ticket) but some tools like 'deflect' and 'suggest_reply' are vague about their purpose. No enum constraints on priority/status fields despite known valid values. Descriptions average ~60 chars, below the 194-char baseline for A+ tools. Missing documentation of output structure and chaining IDs.
Add a comment to a ticket.
Create a new ITSM ticket.
Suggest KB articles from a free-form question before creating a ticket.
Generate a draft KB article from a resolved ticket (draft status, to be validated).
Get the full details of a ticket by its ID.
List tickets with optional filters on status, priority, and SLA.
Semantic search in the published knowledge base.
Parameter descriptions are minimal (1 - 3 words). 'The ticket ID', 'Ticket priority', 'Filter by ticket status' lack context on valid values, constraints, or when to use each parameter. LLMs cannot infer that priority must be one of {low, medium, high, urgent}.
No enum constraints on priority, status, or category fields. Free-form strings invite hallucinated values like 'super-urgent' or 'pending-review'. Enums are self-documenting and prevent invalid input.
Output schemas are not formally documented. Tools return dicts with fields like 'id', 'title', 'status', but the LLM has no schema reference to know what fields to expect or their types. Downstream tools cannot reliably chain on returned IDs.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Suggest the most relevant KB articles for an existing ticket.
Generate a suggested reply for a ticket to be validated by the agent.
Run AI triage on a ticket: automatically fills in category and priority.
Update a ticket (status, priority, category, resolution, assignee).
Error handling raises ToolError with plain messages but does not guide recovery. E.g. 'Ticket {ticket_id} not found' does not suggest calling list_tickets() to find valid IDs or offer available alternatives.
Tool names 'deflect' and 'suggest_reply' are vague. 'deflect' suggests KB articles before ticket creation, but the name does not convey this. Better: 'suggest_kb_before_ticket' or 'deflect_with_kb'. 'suggest_reply' could be 'generate_reply' or 'draft_reply'.