An MCP server that provides tools for searching, listing, and analyzing IT support tickets with trend analysis capabilities
Server has 4 tools with basic schemas and descriptions, but significant quality gaps. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization). Schemas are present but minimal: search_tickets and analyze_ticket_trends have only a 'query' string parameter with no constraints; list_tickets has limit/offset but no ranges or defaults; get_ticket_summary has empty properties. No output schemas documented. No error handling guidance. No parameter validation rules. Tool names follow verb_noun pattern (positive), but descriptions are too terse to guide LLM selection. No tool annotations (readOnlyHint, etc.). Composition is reasonable (each tool has one responsibility), but lack of detail makes this a D-tier server.
Analyze trends in ticket data
Get a summary of all tickets
List tickets with pagination
Search and filter IT tickets based on various criteria
Descriptions are too short (10-50 chars vs. baseline 50-200 chars). LLMs cannot determine when to select each tool or how it differs from similar tools. E.g., 'Search and filter IT tickets based on various criteria' does not explain what 'search' means (full-text? field-based?) or when to use it vs. list_tickets.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. What fields does search_tickets return? Is there a ticket_id for chaining to other tools? What is the structure of analyze_ticket_trends results?
list_tickets accepts limit and offset with no constraints. LLMs may pass limit=10000 or negative offsets, causing API errors or timeouts. Missing min/max ranges and default values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
search_tickets and analyze_ticket_trends accept free-form 'query' strings with no format guidance. LLMs may pass malformed queries, SQL injection attempts, or invalid syntax. No examples of valid query formats provided.
No error handling guidance. If a tool fails, LLMs receive no actionable recovery path. E.g., if search_tickets returns 'No results', should the LLM retry with a different query, call list_tickets instead, or ask the user?