A Model Context Protocol server for e-commerce operations
Single tool 'create_note' has a basic schema and minimal description. The tool name is verb-first (good), but the description is only 17 characters, below the 20-char floor for scoring. Input schema is present with typed properties and descriptions, but lacks critical metadata: no output schema documentation, no error handling guidance, no idempotency hints, and no indication that this is a destructive/state-modifying operation. The in-memory storage and lack of validation make this unsuitable for production. Naming is acceptable but description and error handling are severely deficient.
Create a new note
Tool description is only 17 characters ('Create a new note'), below the 20-char minimum. LLM cannot determine when/why to select this tool.
No output schema documented. LLMs cannot plan downstream operations or extract returned data. Baseline: 100% of A+ tools have documented return types.
No error handling or recovery guidance. Tool throws generic 'Title and content are required' but does not guide LLM on what to do next. Missing pattern:recovery-guide.
State-modifying tool (creates note) lacks idempotency hint or confirmation step. Agents retrying on ambiguous failures risk duplicate notes. No tool annotation (destructiveHint/idempotentHint).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
In-memory storage with no persistence, validation, or ID collision handling. ID generation uses Object.keys(notes).length + 1, which is fragile and non-idempotent. Production-grade tools require durable storage and proper error handling.