MCP server for accessing and managing notes in the Bear app on macOS
Four tools with basic verb-noun naming (get_*, delete_*). All have descriptions (10-80 chars, below baseline 194 avg). Input schemas present with type and description for all params. Critical gaps: no output schemas documented, no error recovery guidance, no pagination for list tools, delete_note lacks confirmation/dry-run pattern, descriptions are terse (under 50 chars each), no parameter constraints (enums, ranges), no mention of prerequisites or when to use each tool. Tool composition is reasonable but output handling is unstructured (returns plain strings, not JSON objects).
Delete a specific note from Bear by marking it as trashed.
Get latest list of notes from the bear app, sorted by updated date.
Get the content of a specific note by its title.
Get all notes that have a specific tag.
No output schemas documented. Tools return unstructured plain-text strings instead of JSON objects with typed fields. LLMs cannot parse results reliably or chain to downstream tools.
Descriptions are terse (20-80 chars, well below 194-char baseline). Missing WHEN to use each tool, prerequisites, and dependencies. E.g., get_note_summary says 'Get the content' but doesn't explain it returns only first 5 lines or when to call it vs get_list_of_notes.
delete_note is destructive but lacks confirmation/dry-run pattern. No error guidance on what to do if note not found. Agents can accidentally delete notes without recovery path.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
get_list_of_notes accepts number_of_notes with no bounds. No min/max constraints, no pagination support (limit/offset), no total count returned. Unbounded queries risk timeout or context explosion.
Error messages are generic ('Error accessing Bear database'). No recovery guidance. If database not found, error doesn't suggest checking macOS or Bear installation status clearly enough for LLM to act.