MCP server for tracking package deliveries with status updates, ETA monitoring, and overdue package detection
Package Tracker has basic tool definitions with schemas and descriptions present, but falls short of production quality. All 4 tools have input schemas and descriptions, but descriptions are minimal (10-50 chars, well below the 194-char baseline). Parameters lack depth: 'new_status' and 'eta' have no format constraints or enums. No output schemas documented. Error handling is minimal, tools return plain strings without recovery guidance. No tool annotations (readOnlyHint/destructiveHint). The server uses STDIO transport, which is a hard cap at 50 for protocol readiness. Overall, this is a D-grade server with functional but underdeveloped definitions.
Add a package to track. Optional ETA format: YYYY-MM-DD
Check for packages that are overdue based on ETA.
List all packages with their current status.
Update the delivery status of a package.
Minimal parameter descriptions. 'new_status' in update_status has no guidance on valid values, format, or constraints. 'eta' in add_package mentions format but lacks enum or pattern validation. LLMs cannot infer valid inputs.
No output schemas documented. Tools return plain strings (e.g., 'Added package...' or 'No packages found.'). LLMs cannot parse structured results or extract IDs for chaining. Violates response-shaper pattern.
Tool descriptions are too brief (10-50 chars vs. 194-char baseline). 'Update the delivery status of a package.' lacks context on when to use it, what statuses are valid, or what happens on success. Insufficient for LLM tool selection.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 44 | 2026-07-28+ | v2 |
No error recovery guidance. When 'Package not found' is returned, the LLM has no hint to call list_all_packages() first or search by name. Error messages are bare strings without actionable next steps.
Missing tool annotations. No readOnlyHint on list_all_packages/check_overdue_packages, no destructiveHint on add_package/update_status. Agents cannot infer which tools are safe to retry or have side effects.