MCP server for managing job assignments and temporary worker availability
Server has 7 tools with clear verb-noun naming (get_, suggest_, assign_, unassign_). All tools have descriptions (avg ~80 chars, within baseline 34-392). Input schemas present with type definitions and required fields. However, parameter descriptions are minimal (1-2 words), output schemas are not documented, and error handling lacks recovery guidance. No tool annotations (readOnlyHint/destructiveHint). Composition is sound, tools are single-responsibility and chainable via IDs. Missing: structured output documentation, detailed parameter constraints, and actionable error messages.
Assigns a temp to a given job ID.
Explains whether a specific temp can take a specific job, and if not, why not.
Returns available temps for a given job ID.
Returns job details for a given job ID.
Returns temp details for a given temp ID, including assigned jobs.
Returns the best available temp suggestion for a given job ID, preferring the lowest current workload.
Unassigns the current temp from a given job ID.
Parameter descriptions are minimal (1-2 words: 'The ID of the job'). Rubric requires 10-1024 chars with context on WHAT, WHEN, and constraints. LLMs cannot infer parameter semantics from bare names.
Output schemas are not documented. Rubric requires documented return types for 100% of A+ tools. LLMs need to know what fields to expect (e.g., does get_job_details return status, assignee, deadline?) to plan downstream calls.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Spec 2026-07-28 rewards tool annotations for clarity. assign_temp_to_job and unassign_temp_from_job are destructive but unmarked.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Error handling in toolHandlers.ts uses generic toErrorResult(error) without recovery guidance. Rubric requires: 'Error responses must tell the LLM what to do next.' E.g., 'Job not found. Try get_available_temps_for_job() with a different ID.'
No pagination documented for list-like tools (get_available_temps_for_job). Rubric: 'Tools returning lists should accept page/offset and limit parameters.' Current implementation fetches up to 100 items but does not expose pagination controls to the LLM.