A Model Context Protocol server that implements a simple notes system with resources, tools, and prompts
Single tool 'create_note' has a complete input schema with proper types and descriptions for both parameters (title, content). Tool description is present but minimal (10 chars: 'Create a new note'). No output schema documented. No error handling guidance. No tool annotations (destructiveHint, idempotentHint). Parameter descriptions are adequate (18-24 chars each). The tool modifies state (creates notes) but description does not explicitly state this. No pagination, no batch variants. Lacks recovery guidance for common failure modes.
Create a new note
Tool description is too brief (10 chars). Does not state that the tool modifies state (creates a note) or when to use it. LLMs need explicit guidance on side effects.
No output schema documented. Callers cannot predict the response structure (e.g., does it return the note ID, timestamp, or just a success message?). LLMs need to know what fields to expect for downstream chaining.
No error handling guidance. If title or content is empty, the tool throws a generic error. No recovery hints (e.g., 'Title and content are required, both must be non-empty strings').
No tool annotations. The tool is destructive (creates state) but lacks destructiveHint annotation. Agents cannot reason about side effects or plan rollback strategies.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Parameter descriptions lack format/constraint guidance. 'Title of the note' and 'Text content of the note' do not specify length limits, character restrictions, or examples of valid input. LLMs may pass excessively long or malformed strings.