An MCP server for managing sticky notes with add, read, and summarization capabilities
This server has critical gaps in definition quality. Tool descriptions are present but minimal (10-50 chars, well below the 194-char baseline). Parameters lack descriptions entirely, 'message' in add_note has a description, but read_notes and get_latest_note have zero parameters documented. No output schemas are documented. The tool 'note_summary_prompt' is registered as a prompt, not a tool, creating confusion about its role. Error handling is absent, no guidance on what happens if the file is unreadable or the notes are corrupted. Security is weak: the server writes to a local file with no access controls or audit trail. Composition is poor: get_latest_note is a resource, not a tool, breaking the expected tool interface pattern.
Append a new note to the sticky notes file.
Get the latest note from the sticky notes file.
Generate a summary of the notes.
Read all notes from the sticky notes file.
No output schemas documented. LLMs cannot plan downstream calls or extract structured data. read_notes and get_latest_note return strings with no field definitions.
Parameters lack descriptions. read_notes() and get_latest_note() have no parameters, but add_note's 'message' param has minimal context. LLMs cannot infer what 'message' should contain or its constraints.
No error handling or recovery guidance. If the notes file is deleted, unreadable, or corrupted, the server will crash with a stack trace. No actionable error messages for the LLM.
Tool composition is broken. get_latest_note is registered as a @mcp.resource(), not a @mcp.tool(). This violates the tool interface pattern and confuses clients expecting tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
note_summary_prompt is registered as a prompt, not a tool. The description says 'Generate a summary' but it's not callable as a tool. Role confusion breaks agent composition.