Zettel provides 15 tools with complete input schemas and descriptions. Naming follows verb_noun convention (note_create, note_list, note_edit, etc.), which is clear and consistent. Descriptions are present for all tools and most parameters, averaging ~60 chars per tool description. However, parameter descriptions are often terse (10-30 chars), lacking context about constraints, formats, or when to use related tools. Output schemas are not documented, LLMs cannot predict what fields to expect from responses. Error handling is minimal; no recovery guidance or actionable error messages are evident. The server lacks pagination guidance for list operations despite potentially large result sets. Risk annotations (WRITE, READ_ONLY, DESTRUCTIVE) are present but not formalized as tool annotations in the MCP schema.
Show the notes that link to a note
Check the notes and the declared stores for problems
Show a note and the linked notes within N hops
Convert pre-provenance notes (status keys) to the provenance model
Create a note
Delete a note
Edit a note
List the notes
List the provenance spans of a note, or approve agent spans
Output schemas not documented. LLMs cannot predict response structure, forcing them to guess field names and types for downstream tool calls or data extraction.
Parameter descriptions are terse (10-30 chars) and lack constraint details. E.g., 'tag' in note_list says 'Filter by tag' but does not explain format (comma-separated? single value?), or whether partial matches work.
No pagination or result-limiting guidance. note_list and search could return hundreds of items; no mention of limits, offset/page parameters, or how to handle large result sets.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Show a note
Show the notes with no links
Show the full content of the matching notes
Search the notes with a regex pattern
Show the knowledge base statistics
Show the declared stores and what this vantage can see
Destructive operations (note_delete, migrate) lack confirmation or dry-run support. Agents could accidentally delete notes or corrupt data without a safety gate.
Risk annotations (WRITE, READ_ONLY, DESTRUCTIVE) are informal comments, not formalized as MCP tool annotations (readOnlyHint, destructiveHint, idempotentHint).