Agentic IT/HR helpdesk built around a tiered MCP tool server with server-side confirmation gating.
17 tools with complete schemas and descriptions, but significant gaps in error guidance, parameter constraints, and composition clarity. All tools have descriptions (10-150 chars, mostly adequate) and input schemas with typed parameters. However, many descriptions lack actionable context for LLM selection. Tier-gated architecture is well-designed but not reflected in tool annotations. No enum constraints on status/type parameters. Error handling returns codes but minimal recovery guidance. Output schemas are implicit rather than documented.
Every tool call attempt in a session, for the instrumentation panel.
Issue the token for a proposal the user agreed to. Backend only.
The employee's current balance, tickets and requests, for the live panel.
Return your leave entitlement, days used, days pending and days remaining.
Return your own record: start date, manager, work arrangement, country, VPN level.
Return your leave, software and equipment requests, with any rejection reason.
No enum constraints on status/type parameters. 'status' in get_ticket_status and get_request_history accept free-form strings; LLMs will hallucinate invalid values. Should declare valid statuses (open, in_progress, resolved, closed, etc.) as enums.
Error handling returns codes (e.g. 'UNKNOWN_SESSION', 'NO_BALANCE') but no recovery guidance. LLMs cannot infer next steps from error codes alone. Should include actionable messages like 'This session is not signed in. Call open_session() first.'
Tier-gated architecture (Tier 0 read-only, Tier 1 requires confirmation token, Tier 2 hands off) is not exposed via tool annotations. LLMs cannot see which tools are destructive or require confirmation. Should add readOnlyHint, destructiveHint, and idempotentHint annotations per MCP spec.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Return your helpdesk tickets, or one ticket by id.
Search the HR and IT policy documents and return the relevant passages.
Open an IT helpdesk ticket. Needs the user's confirmation first.
Bind a session to an authenticated employee. Backend only.
Dispute a policy decision. Hands off to a human.
Report a workplace grievance. Hands off to a human.
Request hardware or home office equipment. Needs the user's confirmation first.
Request software outside the catalogue. Needs the user's confirmation first.
Rebuild the demo data from the seed. Backend and evaluation harness only.
Reset your password. Needs the user's confirmation first.
Submit a leave request to your manager. Needs the user's confirmation first.
Output schemas are not documented. Tools return structured dicts (e.g. lookup_policy returns {question, passages[{document, section, text, score}]}) but LLMs must infer structure from code. Should document return types in tool descriptions or via explicit schema declarations.
Backend-only tools (open_session, confirm_proposal, reset_demo) lack clear documentation of who can call them and why. Descriptions say 'Backend only' but do not explain the control_key authentication mechanism or when an LLM agent should invoke them.