MCP server for a ticket management and dispatch system with role-based access control, queue management, and deadline tracking
Two tools with visible schemas and descriptions, but both descriptions are cryptic and domain-specific rather than LLM-optimized. my_work has an empty input schema ({}), which is acceptable but offers no parameters. queue_list has a reasonable schema with 5 parameters, but parameter descriptions are terse and lack actionable guidance. Neither tool description explains WHEN to use it or what the LLM should do with the output. Descriptions read like internal documentation rather than agent-facing guidance. No error handling guidance visible. No tool annotations (readOnlyHint, etc.). Output structure not documented.
What this account is on, whether leading it or sent to it, soonest deadline first — and under it the jobs nobody holds yet, each carrying whatever the industry has not let this account prove for it. An empty shortfall is what means it may be taken.
The whole queue, soonest deadline first, fifty at a time. Narrow it by kind of work, by state, by whether anybody is on it, or to only what has run past its deadline. Every answer lists the identifiers those first two take, so they can be read off one call and used in the next.
Descriptions are cryptic and domain-specific, not LLM-optimized. 'What this account is on, whether leading it or sent to it, soonest deadline first' is unclear to an LLM. Should state: WHAT (returns assigned and unassigned work), WHEN (to see current workload), WHAT TO DO WITH OUTPUT (pass ticket IDs to other tools).
queue_list parameter descriptions lack actionable detail. 'Identifiers rather than words: the queue filters on rows, not on labels' is cryptic. Should state: 'category: integer ID of work category (obtain from list_categories tool)' with min/max bounds and enum values if applicable.
No output schema documented. LLMs cannot plan downstream calls without knowing what fields are returned. Should document: for my_work, does it return ticket_id, deadline, assignee, status? For queue_list, what does each queue item contain?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
No error handling guidance. If queue_list is called with an invalid category ID, what happens? Should return: 'Invalid category_id: 999. Valid categories: [list]. Call list_categories() to discover available IDs.'
Tool names lack action verbs. 'my_work' and 'queue_list' are nouns, not verb_noun patterns. Should be 'get_my_work' and 'list_queue' to signal to LLMs that these are retrieval operations. Current names are ambiguous about intent.