A Model Context Protocol server that implements a simple note-taking system with MongoDB integration. Provides resources for listing and reading notes, tools for creating new notes, and prompts for summarizing notes.
Single tool with adequate naming and complete schema, but descriptions are minimal and lack depth. The tool 'create_note' follows verb_noun convention correctly. Input schema is properly structured with required fields and type definitions. However, the tool description is generic (9 words, below baseline 194 chars), and parameter descriptions lack context about constraints, formats, or use cases. The server includes resources and prompts, which extend functionality, but these are not scored as tools per the rubric. No error handling guidance is present, the tool validates required fields but doesn't explain what to do if MongoDB connection fails or if note creation succeeds/fails.
Create a new note
Tool description is too generic and lacks depth. 'Create a new note' (9 words, 26 chars) provides minimal context for LLM tool selection. Baseline for production tools is 194 chars (avg). No explanation of when to use this tool, what it returns, or dependencies.
Parameter descriptions lack actionable detail. 'Title of the note' and 'Text content of the note' are minimal. Missing: constraints (max length?), format guidance (plaintext only?), or examples of valid input.
No documented output schema. Tool returns text response 'Created note {id}: {title}' but does not specify return type, structure, or what fields the response contains. LLMs need to know response shape to chain downstream calls.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 64 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |
No error handling guidance. Code validates required fields and throws 'Unknown tool' error, but descriptions do not explain: (1) what happens if MongoDB is unavailable, (2) whether the error is retryable, (3) how to recover.
No input validation constraints documented. Title and content accept any string with no length limits. 'title: 1-200 chars, content: 1-10000 chars') to prevent LLMs from passing absurd values.
STDIO transport only. Server uses StdioServerTransport and cannot be remotely accessed by hosted MCP clients.