Public leaderboard

Public assessment

vasylenko/claude-desktop-extension-bear-notes (bear-notes-mcp)

bear-notes-mcp · v2.12.0 · scanned

What changed in the harness

Selection accuracy 96→98, token cost up 4%, unconfirmed writes 0%→0%.

Category breakdown

Where the score comes from.

Earned points across the four signals Gradable measures. Safety and Legibility are scored out of 30; Economics and Discoverability are scored out of 20.

01Safety

0.0 / 30

0.0 out of 30
02Legibility

25.4 / 30

25.4 out of 30
03Economics

19.3 / 20

19.3 out of 20
04Discoverability

12.9 / 20

12.9 out of 20

Highest-impact fix

Estimated gain +30 points

Add explicit identity and permission preflight tools

Expose machine-readable principal/tenant confirmation and a non-mutating permission check so agents can verify both before destructive actions.

Description evidence

Defects and rewrites.

9 defects found across the exposed tool descriptions. Suggested rewrites make purpose, inputs, boundaries, and returns easier for an agent to understand.

Tool Defect types Suggested rewrite
bear-open-note
no_return_description
Read and return the full text content of a Bear note by its ID or title, including text extracted from attached images and PDFs (OCR), which is clearly labeled. Supports direct title lookup as an alternative to searching first; if multiple notes share the same title, a list of matching notes is returned for disambiguation.
bear-add-text
no_return_description
Insert text at the beginning or end of a Bear note, or within a specific section identified by its header, and return confirmation once it is inserted. Use bear-search-notes first to get the note ID. To insert without replacing existing text use this tool; to overwrite the direct content under a header use bear-replace-text.
bear-replace-text
no_return_description
Replace content in an existing Bear note — either the full body or a specific section — and return confirmation once it is replaced. Requires content replacement to be enabled in settings. Use bear-search-notes first to get the note ID. To add text without replacing existing content use bear-add-text instead.
bear-list-tags
no_return_description
List and return all tags in your Bear library as a hierarchical tree, showing tag names with their note counts. Useful for understanding your tag structure and finding tags to apply to untagged notes.
bear-find-untagged-notes
name_restates_behavior no_return_description
Find notes in your Bear library that have no tags and return a list of up to `limit` (default: 50) matching notes with their titles, tags, and IDs, so you can review and categorize notes that may need tagging.
bear-add-tag
no_return_description
Add one or more tags to an existing Bear note; tags are added at the beginning of the note. Returns confirmation once the tags have been applied. Use bear-list-tags to see available tags.
bear-archive-note
no_return_description
Move a note to Bear's archive; after archiving, the note no longer appears in regular searches but can still be found in Bear's Archive section. Returns confirmation once the note is archived. Use bear-search-notes first to get the note ID.
bear-rename-tag
no_return_description
Rename a tag across all notes in your Bear library, updating every note that uses it, and return confirmation once the rename is complete. Useful for reorganizing tag taxonomy, fixing typos, or restructuring tag hierarchies. Use bear-list-tags first to see existing tags.
bear-delete-tag
no_return_description
Delete a tag from all notes in your Bear library; the tag is removed from every note but the notes themselves are preserved. Returns confirmation once the tag has been deleted. Use bear-list-tags first to see existing tags.

Selection evidence

Confusable tool pairs.

5 pairs where similar names or overlapping descriptions may send an agent toward the wrong tool.

Tool A Tool B Confidence Why they collide
bear-add-text bear-replace-text high Both use the same surface (id, text, optional section header), so tasks like 'put the updated content under the Progress header' or 'update the section to say X' are genuinely ambiguous between inserting and overwriting; the two descriptions even cross-reference the boundary, indicating easy mix-ups.
bear-add-tag bear-delete-tag medium A task such as 'remove the #urgent tag from this note' has no per-note removal tool, so an agent may map 'remove/delete tag' to the global bear-delete-tag (destructive) instead of the correct per-note approach, since both tools modify tags and bear-add-tag is the only note-scoped option.
bear-open-note bear-search-notes medium Tasks phrased as 'look up/find my note titled X and tell me what it says' can map to either: search-notes returns only titles/tags/IDs while open-note reads full content by title, so an agent retrieving content may pick the wrong member and get partial results.
bear-search-notes bear-find-untagged-notes low Generic phrasing like 'search my library for notes without tags' could pull the general search-notes tool (which has no untagged filter) rather than the specialized find-untagged-notes; descriptions reduce but do not eliminate the ambiguity.
bear-add-tag bear-rename-tag medium A request like 'update/change the tag on my notes from X to Y' is ambiguous between a note-scoped additive operation (bear-add-tag, requires id) and a library-wide rename (bear-rename-tag, name/new_name); both suggest listing tags first and both involve per-note vs global tag changes.

Compare the field

One score is useful.
The evidence makes it actionable.

Back to the leaderboard