Skip to main content
Glama

better bear

better-bear MCP server

Build Release npm License: MIT better-bear MCP server Buy Me A Coffee

MCP server and CLI for Bear notes via CloudKit. Includes a context library — a curated, synced folder of notes optimized for LLM consumption, inspired by Karpathy's LLM Knowledge Base pattern.

Full docs: better-bear.com

Install

Install the CLI, then connect to Claude:

curl -sL https://raw.githubusercontent.com/KuvopLLC/better-bear/main/install.sh | bash
bcli auth
bcli mcp install

This installs the bcli binary, authenticates with iCloud, and sets up the MCP server for both Claude Desktop (via .mcpb bundle) and Claude Code.

Other install methods

Method

Command

Claude Desktop only

bcli mcp install --desktop-only

Claude Code only

bcli mcp install --code-only

Claude Code (direct)

claude mcp add better-bear -- npx -y better-bear

Config file

bcli mcp install --json

.mcpb bundle

Download from latest release and double-click

Manage

bcli mcp status      # check what's configured
bcli mcp uninstall   # remove from Claude Desktop and Claude Code
bcli mcp reinstall   # clean uninstall + install
bcli upgrade         # upgrade bcli binary

Related MCP server: Bear Notes MCP Server

CLI

All commands also work standalone from the terminal:

bcli ls                          # list notes
bcli search "query"              # full-text search
bcli create "Title" -b "Body"    # create a note
bcli edit <id> --append "text"   # append to a note
bcli tags                        # list all tags
bcli attach <id> photo.jpg       # attach a file
bcli stats                       # library statistics
bcli health                      # health check

See better-bear.com for the full command reference.

Context Library

Turn a subset of your Bear notes into a synced, curated context folder that Claude can navigate using index-first retrieval. Tag notes with #context in Bear, sync, and Claude reads a compact index to find relevant files — loading only what it needs, not everything.

bcli context init                          # one-time setup
bcli context sync                          # pull qualifying notes
bcli context add <id> --subtag research    # tag a note for inclusion
bcli context status                        # health check

Or tell Claude: "Set up a context library" — and it handles everything via MCP tools.

The architecture follows Karpathy's three-folder pattern: bear/ (synced from CloudKit), external/ (PDFs, exports, shared docs), and inbox/ (drop zone for triage). An index.md manifest maps everything. See better-bear.com for full documentation.

MCP Tools

34 tools covering notes, tags, TODOs, attachments, search, front matter, stats, health checks, and the context library. See the MCP server README for the full list.

Contributors

Available Tools

35 tools
bear_add_tagA

Add a tag to an existing Bear note. The tag is inserted into the note's markdown. Hierarchical tags like 'parent/child' also index every ancestor — so the note becomes discoverable under both #parent and #parent/child in Bear's sidebar.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID (uniqueIdentifier)
tagYesTag to add (without #)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint=false, destructiveHint=false), the description adds behavioral context by explaining hierarchical tag indexing and insertion into markdown, which helps the agent understand side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no wasted words; the first sentence immediately conveys the core purpose, and subsequent sentences add necessary detail efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple mutation tool with no output schema, the description covers the core action and an important nuance (hierarchical tags), though it omits return value details or preconditions like note existence.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

While schema coverage is 100%, the description adds value by clarifying how hierarchical tags work (indexing ancestors), enhancing understanding of the 'tag' parameter beyond the schema's brief description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool adds a tag to a Bear note, specifies it inserts into markdown, and explains hierarchical behavior, distinguishing it from sibling tools like bear_delete_tag or bear_remove_tag.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives such as bear_edit_note or other tag tools, leaving it to the agent to infer that this is the appropriate action for adding a tag without removing existing ones.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_archive_noteA
Idempotent

Archive a Bear note. Archived notes are hidden from the main list but not deleted. Use 'undo' to unarchive.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID (uniqueIdentifier)
undoNoUnarchive the note instead of archiving

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds value beyond annotations by specifying that notes are not deleted and can be unarchived. It aligns with non-destructive and idempotent hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action, with no unnecessary words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core behavior and reversibility. Though there is no output schema, the action is simple and the explanation is adequate for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameters are already documented. The description does not add significant additional meaning beyond the schema's field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Archive a Bear note' and explains the effect: hidden but not deleted. It distinguishes from deletion and mentions the undo feature.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides guidance on using the undo parameter to unarchive, but does not explicitly compare with sibling tools like bear_trash_note or indicate when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_attach_fileA

Attach a file or image to an existing Bear note. The file is uploaded to iCloud and embedded in the note's markdown. Supports common image formats (jpg, png, gif, webp, heic) and other file types (pdf, zip, etc.). By default the attachment is appended to the end. Use 'after' or 'before' to place it relative to text in the note, or 'prepend' to put it right after the title.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID (uniqueIdentifier)
file_pathYesAbsolute path to the file to attach
afterNoInsert after the line containing this text
beforeNoInsert before the line containing this text
prependNoInsert after the title line instead of at the end

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate non-readonly, non-destructive, non-idempotent. Description adds critical context: file uploaded to iCloud, embedded in markdown, and placement behavior, which is beyond annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences front-loaded with main action. No wasted words, well-structured, and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, file types, placement, and side effects (iCloud). With no output schema, could mention return value, but sufficient for agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% description coverage. Description adds meaning by explaining placement options (after/before relative to text, prepend) and supported file types, complementing schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Attach a file or image to an existing Bear note' with specific verb and resource, and adds context on iCloud uploading and markdown embedding. This distinguishes it from siblings like bear_create_note or bear_edit_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains default behavior (appended to end) and when to use placement parameters (after, before, prepend). Could explicitly mention prerequisites like file existence, but guidance is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_addA
Idempotent

Add a Bear note to the context library by tagging it with #context. Optionally specify a subtag for grouping (e.g., subtag 'jira' → #context/jira). Triggers a sync after tagging.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID (uniqueIdentifier)
subtagNoOptional sub-tag for grouping (e.g., 'architecture', 'jira')

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the tagging mechanism and the sync side effect, which goes beyond annotations (idempotentHint). It does not contradict annotations and adds value by explaining the sync trigger.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, frontloaded with the main action, followed by optional parameter and side effect. No redundant information; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no output schema, the description adequately covers behavior and parameters. It could mention that the note must exist, but overall it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by explaining that subtag creates a hierarchical tag (e.g., #context/jira), giving concrete usage context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool adds a Bear note to the context library via tagging with #context, and optionally with a subtag for grouping. It differentiates from siblings like bear_add_tag by specifying the context library and sync behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (adding to context library) but does not explicitly mention alternatives or when not to use. It provides no comparison to sibling tools like bear_add_tag or bear_context_fetch.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_fetchA
Read-onlyIdempotent

Load the full content of specific files from the context library. Pass relative paths like 'bear/arch-overview.md' or 'external/jira-ticket.md'. Use after reading the index to load only relevant files — never load everything.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesFile paths relative to context directory (e.g., 'bear/my-note.md')

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so safety is clear. Description adds that it loads 'full content' (not metadata) and warns against loading everything, giving scale context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no filler. Front-loaded with purpose, then usage guideline. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description says 'full content' implying it returns file contents. Missing explicit format details (e.g., structured object vs plain text). Otherwise complete given annotations and schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description already covers parameter meaning (relative paths) at 100% coverage. Description adds usage examples but no new semantic info beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool loads full content of specific files from context library. Provides example paths. Distinguishes from sibling tools like bear_context_index (which lists files) and bear_context_search (which searches).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use after reading the index and to load only relevant files, never everything. This tells the agent when and when not to use it, guiding selection among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_importA

Import external content into the context library. Content is written to the external/ directory with YAML front matter (source, group, summary, date). Use this to add non-Bear content like Jira tickets, Slack threads, API docs, or any markdown. The content is passed via stdin and a filename must be provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesTarget filename in external/ (e.g., 'jira-ticket-123.md')
contentYesMarkdown content to import
groupNoGroup label for organizing (e.g., 'jira', 'slack', 'docs')
sourceNoSource description (e.g., URL, tool name)
summaryNoShort summary of the content

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds behavioral context beyond annotations: writes to external/ directory, adds YAML front matter with specific fields. Discloses input method but slight inconsistency with 'stdin' mention versus schema parameter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four concise sentences, each adding value. Front-loaded with core purpose, then details. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Fairly complete for a write tool: covers purpose, location, structure, and examples. Missing return value info (no output schema) and error behavior, but sufficient for agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage, but description adds meaning by explaining how parameters (source, group, summary) become front matter fields, and that date is auto-generated. Provides context beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Import' and resource 'external content into the context library', with examples of what to import. However, it does not explicitly differentiate from sibling tools like bear_context_add.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides guidance to use for non-Bear content, but lacks when-not-to-use or alternative tool references. No explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_indexA
Read-onlyIdempotent

Get the context library index — a structured table of contents of all files (Bear notes, external files, inbox). Read this FIRST before answering questions from context. Use it to identify which files to fetch, rather than loading everything. Includes cache freshness metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds cache freshness metadata but doesn't contradict annotations. It doesn't elaborate on other behaviors like pagination or response structure, but annotations cover safety profile adequately.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, front-loading the core purpose and usage guidance. Every sentence adds value; no wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only index tool with no output schema, the description covers purpose, contents (table of contents, files, freshness metadata), and usage order. Could specify output structure details but is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema has zero parameters (schema description coverage 100%). Baseline for 0 params is 4. No param info needed; description is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a structured table of contents covering Bear notes, external files, and inbox. It distinguishes itself from siblings by positioning itself as a preliminary step before fetching specific files.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs to read this FIRST before answering questions, and to use it to identify which files to fetch instead of loading everything. Provides clear when-to-use and why, differentiating from sibling fetch tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_ingestA
Read-onlyIdempotent

Scan the inbox/ directory and list all untriaged files. Returns filename, size, content preview (first 500 chars), and any detected YAML front matter for each file. Does NOT modify anything — use bear_context_triage to act on files.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, destructiveHint, idempotentHint. Description adds non-contradictory details about return content (first 500 chars, YAML front matter) but no extra safety context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no extraneous words. First sentence states action and results, second clarifies non-destructive nature and alternative tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool is simple with no params or output schema; description covers all needed context: what it does, returns, and relevant sibling for actions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist; description explains tool operation clearly. Baseline 4 as zero params. Schema coverage 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'scan' and resource 'inbox/ directory' for untriaged files, lists return fields, and distinguishes from sibling 'bear_context_triage'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use for listing untriaged files and directs to 'bear_context_triage' for acting on files, with a clear 'does NOT modify anything'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_push_to_bearA
Idempotent

Push an external file to Bear as a new note. Creates a Bear note from the file content, tags it with #context (+ optional subtag), and removes the original external file. Use when external content has matured enough to become a permanent Bear note.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesFilename in external/ to push
subtagNoSub-tag (e.g., 'architecture' → #context/architecture)
titleNoOverride note title (defaults to title extracted from content)

TDQS

A3.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description says it 'removes the original external file,' which is a destructive action, but annotations set destructiveHint=false. This contradiction makes the description misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with action and resource, no redundant words. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema, but description does not mention return value or error cases. Lacks completeness for a mutation tool, though core behavior is covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all parameters described in schema). Description adds value by explaining filename path ('external/'), subtag format ('#context/subtag'), and title override, going beyond schema details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Push') and resource ('external file to Bear as a new note'), clearly distinguishing it from sibling tools like bear_context_add or bear_create_note. It states the action and context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use: 'when external content has matured enough to become a permanent Bear note.' This provides clear guidance, though it does not list alternatives or when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_removeA
DestructiveIdempotent

Remove a Bear note from the context library by removing its #context tag. Triggers a sync to delete the local file.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID (uniqueIdentifier)

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds important behavioral details beyond annotations: it triggers a sync and deletes a local file. This complements the destructiveHint annotation and provides clear expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that efficiently convey the core action and a key side effect. No unnecessary information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the input, action, and side effect. Without an output schema, the agent might need to infer return behavior, but for a destructive tool this is generally sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema is simple with one parameter (id) and 100% coverage. The description does not add any additional semantics beyond the schema's own description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: removing a Bear note from the context library by removing its #context tag. This distinguishes it from siblings like bear_context_add and bear_remove_tag.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives. With many sibling tools like bear_remove_tag, the description lacks context for appropriate use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_remove_externalA
DestructiveIdempotent

Remove a file from the external/ directory in the context library. Deletes the file and regenerates the index. Use when external content is no longer needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesFilename in external/ to remove

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds behavioral context beyond annotations: 'deletes the file and regenerates the index'. Annotations already indicate destructive hint, so the description complements well. Could mention permanence or permissions but sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler: first states action, second gives usage guideline. Front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers action, purpose, and usage. No output schema, so return values not needed. Minor gap: doesn't mention error handling or confirmation of success, but overall adequate for a simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so description adds no new parameter info. The schema already describes 'filename' adequately. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'remove', resource 'file from external/ directory', and additional actions (deletes file, regenerates index). Differentiates from sibling 'bear_context_remove' by specifying the external directory.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Use when external content is no longer needed', providing clear usage context. Does not explicitly state when not to use or alternatives, but the purpose is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_set_prefixA
Idempotent

Change the context library's tag prefix and re-tag every Bear note that currently uses the old prefix. Sub-tags are preserved — #context/research becomes #<new>/research. Updates both the markdown body and the CloudKit tag index, and persists the new prefix to the context config. Useful when aligning the qualifier tag with a broader naming scheme like Johnny Decimal (e.g. '10-projects'). Run bear_context_sync afterwards to refresh the library.

ParametersJSON Schema
NameRequiredDescriptionDefault
new_prefixYesNew tag prefix without the leading #. Example: '10-projects'.

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that the operation is not read-only (readOnlyHint=false), not destructive (destructiveHint=false), and idempotent (idempotentHint=true). The description details side effects: re-tagging all notes, updating markdown body and CloudKit tag index, and persisting the new prefix. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two densely informative sentences with no wasted words. Front-loaded with the action and scope, then details effects and usage context efficiently.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key behavioral aspects (sub-tag preservation, index/config updates) and post-step. However, missing information about return value or confirmation, and could mention reversibility or undo strategy for a bulk operation. Still, adequate for the tool's complexity given annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage for the single parameter is 100% with a clear description and example. The description adds no additional semantic information about the parameter beyond what the schema provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the verb 'change' and the resource 'tag prefix', with scope ('re-tag every Bear note that currently uses the old prefix') and sub-tag preservation. Distinguishes from sibling tools like bear_rename_tag by describing a bulk prefix change across all notes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides a concrete use case ('aligning with broader naming scheme like Johnny Decimal') and a post-step ('Run bear_context_sync afterwards'). Does not explicitly mention when not to use or alternative tools, but the context is clear enough for the intended scenario.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_setupA
Idempotent

Initialize a context library — a curated, synced folder of Bear notes optimized for LLM consumption. Creates the directory structure and config. After setup, tag Bear notes with #context (or a custom prefix) and use bear_context_sync to pull them in. One-time operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
dirNoOutput directory for the context library (default: ~/.bear-context)
tag_prefixNoTag prefix for qualifying notes (default: context). Notes tagged #context or #context/subtag will be included.
use_frontmatterNoAlso include notes with context: true in YAML front matter (default: true)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds that it creates directory structure and config, but says 'one-time operation,' which could conflict with idempotency. It does not detail behavior if the directory already exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the primary purpose, then usage instructions. Every sentence is informative with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has optional parameters and no output schema, the description explains the concept and workflow. It could be more explicit about idempotent behavior (already in annotations) and what happens on re-run, but overall it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with clear descriptions for each parameter. The description mentions defaults (dir, tag_prefix) but does not add significant meaning beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it initializes a context library, creates directory structure and config. It distinguishes from siblings by describing it as a one-time setup, while siblings like bear_context_sync are for ongoing synchronization.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage context: run this first, then tag notes and use bear_context_sync. It implies this is for initial setup, not for regular use. However, it does not explicitly exclude scenarios where re-running is necessary or appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_statusA
Read-onlyIdempotent

Get context library health and stats: Bear note count, external file count, inbox count, total tokens, last sync time, group breakdown, and warnings (stale cache, expired externals, oversized files, untriaged inbox items).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, indicating a safe read operation. The description adds value by detailing what health and stats are returned, including warnings like stale cache and oversized files, which goes beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that efficiently lists multiple health metrics in a structured comma-separated format. It is concise but could be slightly shorter; however, it earns its place by providing essential details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description covers the tool's functionality comprehensively, listing all major health indicators and warnings. It is complete for a health-status tool, though it could clarify return format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so schema coverage is 100%. The description compensates fully by explaining the tool's behavior and output structure, leaving no ambiguity about what the tool does without parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('Get') and resources ('context library health and stats'), listing concrete items such as note count, file count, inbox count, etc. It clearly distinguishes from siblings like 'bear_health_check' by focusing on the context library specifically.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking context library status but does not explicitly state when to use this tool versus alternatives such as 'bear_health_check' or 'bear_context_search'. No exclusions or alternatives are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_syncA
Idempotent

Sync qualifying Bear notes to the local context library. Adds new notes, updates changed notes, and removes notes that no longer qualify (tag removed, trashed, etc.). Regenerates the index. Only touches the bear/ directory — external/ and inbox/ are untouched. Call this when the user asks to sync, refresh, or update their context.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoForce full re-sync (re-download all notes)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds details beyond annotations: adds/updates/removes notes, regenerates index, scoped to bear/ directory. Annotations already indicate idempotent, non-destructive, non-read-only. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four concise sentences, each essential. No fluff, front-loaded with purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers action, scope, and usage. Minor gap: does not define 'qualifying notes', but overall sufficient for a low-complexity tool with one optional parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with clear description for 'force'. Description adds no extra meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Sync' and resource 'qualifying Bear notes to local context library'. Distinguishes from siblings like bear_sync and bear_context_* by specifying it only touches bear/ directory and regenerates index.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Call this when the user asks to sync, refresh, or update their context.' No when-not-to-use but implies alternatives like individual context tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_context_triageA
Idempotent

Triage a file in the inbox. Three actions: 'keep' moves it to external/ with optional group/summary metadata. 'push_to_bear' creates a Bear note tagged #context (+ optional subtag) and deletes the inbox file. 'discard' deletes the file. All actions regenerate the index.

ParametersJSON Schema
NameRequiredDescriptionDefault
filenameYesFilename in inbox/ to triage
actionYesTriage action: keep (move to external/), push_to_bear (create Bear note), or discard (delete)
groupNoGroup label (used with 'keep' action)
subtagNoSub-tag for Bear note (used with 'push_to_bear' action, e.g., 'jira' → #context/jira)
summaryNoShort summary (used with 'keep' action)

TDQS

A3.7/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description contradicts annotations: idempotentHint=true clashes with actions that delete files (non-idempotent), and destructiveHint=false conflicts with discard deleting a file. The description adds useful context (index regeneration) but fails to align with annotations, creating confusion.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences cover all essential information: actions, effects, and side effects. No filler or redundancy. Well-structured and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers actions and index regeneration, but lacks details on return values, error handling, or behavior when prerequisites are unmet (e.g., file not found). Given the complexity (5 params, no output schema), more context would be helpful, especially to resolve annotation contradictions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, parameters are already described. The description adds value by explicitly linking each optional param (group, subtag, summary) to their respective actions (keep, push_to_bear, keep), enhancing clarity beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly defines the tool's purpose: triage a file in the inbox with three distinct actions (keep, push_to_bear, discard). Each action is explained concisely, and the scope (inbox files) is specified. This differentiates it from sibling tools like bear_context_push_to_bear or bear_context_remove, which are more specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description outlines when to use each action and notes that the index is regenerated. However, it does not explicitly state when NOT to use this tool or provide alternatives (e.g., using bear_context_push_to_bear directly). Still, the guidance is sufficiently clear for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_create_noteA

Create a new Bear note with a title, optional body text, tags, and YAML front matter. Hashtags written inline in the body (e.g. '#my_tag' or '#parent/child') are extracted and registered as real tags on the note, matching Bear's desktop-app behaviour. Tags from the 'tags' array are indexed regardless of whether they appear in the body. Hierarchical tags like '#parent/child' also index every ancestor (so they show up under #parent in Bear's sidebar). Front matter is stored as a collapsed metadata block at the top of the note. Returns the new note's ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesNote title
bodyNoNote body text (markdown)
tagsNoTags to assign to the note
frontmatterNoYAML front matter fields as key-value pairs (e.g. {status: 'draft', project: 'alpha'})

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses hashtag extraction, hierarchical tag indexing, front matter storage, and return value. Annotations already indicate write operation, but description adds critical behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single, well-structured paragraph that front-loads purpose and includes necessary details without excess.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all aspects of note creation, tag handling, and front matter. No output schema, but describes return value. Complete for a creation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Adds meaning beyond schema by explaining tag extraction from body, hierarchical indexing, and front matter behavior. Schema coverage is 100% but description enriches understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Create a new Bear note' with specific elements (title, body, tags, front matter). Differentiates from siblings like bear_edit_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage as creation tool, but no explicit when-to-use or comparison with alternatives like bear_edit_note.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_delete_tagA
DestructiveIdempotent

Delete a tag from all Bear notes. The tag text is removed but notes are preserved.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag to delete (without #)

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds meaningful context beyond annotations: it confirms tags are removed but notes are preserved (mitigating the destructiveHint). Annotations already state destructiveHint=true, but description clarifies the scope of destruction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise – two sentences that pack the essential information without any fluff. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema, clear annotations), the description is fully sufficient. It covers the action, effect, and parameter details, leaving no gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description for the 'tag' parameter. The description does not add extra meaning beyond what the schema already provides, so baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (delete), the resource (tag from all Bear notes), and a key behavioral nuance (notes are preserved). The description is specific and leaves no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives like 'bear_remove_tag'. The description does not mention use cases, prerequisites, or exclusions, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_edit_noteA

Edit an existing Bear note. Provide 'append_text' to add text, 'body' to replace content, or 'set_frontmatter'/'remove_frontmatter' to edit YAML front matter fields. Front matter edits can be combined with each other but not with body/append.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID (uniqueIdentifier)
append_textNoText to append to the end of the note
bodyNoNew content to replace the entire note body
afterNoInsert appended text after the line containing this text (use with append_text)
replace_sectionNoReplace content under this heading (replaces until next heading of same or higher level)
section_contentNoNew content for the section (use with replace_section)
set_frontmatterNoFront matter fields to set or update (key-value pairs)
remove_frontmatterNoFront matter field keys to remove

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are sparse (readOnlyHint=false, destructiveHint=false). Description adds constraint on combining edits but doesn't disclose other behaviors like side effects or response format. Adequate but not extensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences. First sentence sets purpose, second elaborates on parameters and constraints. No redundant words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers key use cases and limitations for an edit tool with 8 parameters and no output schema. Missing details on error handling or return behavior, but acceptable given complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but description adds value by explaining parameter relationships and combination rules (e.g., 'after' with append_text, front matter edits exclusive of body/append).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Edit an existing Bear note' with specific actions (append, replace, front matter edits). Differentiates from sibling tools like bear_create_note and bear_trash_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit instructions on when to use each parameter and notes incompatibility between front matter edits and body/append. Lacks explicit contrast with alternatives but is contextually clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_find_duplicatesA
Read-onlyIdempotent

Find notes with duplicate titles. Returns groups of notes sharing the same title with their IDs and modification dates. Useful for cleaning up after imports or sync conflicts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds that it returns groups with IDs and modification dates, but does not disclose additional behavioral traits like handling of case sensitivity or empty results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences front-loaded with the core action and result, no filler. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description adequately covers purpose and return value. It could mention limitations like case-insensitivity, but for a simple read-only tool, it is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has no parameters, and schema coverage is 100%. The description does not need to add parameter details; it correctly focuses on the tool's purpose.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies exactly what the tool does: find notes with duplicate titles, returning groups with IDs and modification dates. It clearly distinguishes from siblings like 'bear_find_untagged' and 'bear_search'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a clear use case: cleaning up after imports or sync conflicts. While it does not explicitly state when not to use or name alternatives, the context is sufficient for a simple, parameterless tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_find_untaggedA
Read-onlyIdempotent

List Bear notes that have no tags assigned.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of notes to return (default 30)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description does not add further behavioral context beyond the tool's purpose, which is acceptable given the safety info already present.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, directly stating the tool's purpose with no unnecessary words. It is front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and no output schema, the description fully covers the needed information. The annotations complement it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the single parameter (limit) with description, so the description adds no additional meaning. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (List) and the specific resource (Bear notes with no tags). It is distinct from sibling tools like bear_list_notes (all notes) and bear_search (by query).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for untagged notes but does not explicitly state when to use this over alternatives or provide exclusions. Siblings are present but no guidance is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_get_noteA
Read-onlyIdempotent

Get a single Bear note's full content and metadata by ID. Returns the note title, tags, full markdown text, and dates. The response includes 'tags' (CloudKit index, may contain ancestor tags like 'parent' for a note tagged '#parent/child') and 'attached_tags' (leaves only). If the note is locked/private, 'locked: true' will be included in the response. Use the 'raw' option to get just the markdown without metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID (uniqueIdentifier)
rawNoReturn only the raw markdown content

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, idempotentHint), the description adds important behavioral details: tag CloudKit index behavior, locked note indicator, and the effect of the 'raw' option. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four sentences long, each serving a distinct purpose: stating the action, listing return values, explaining special flags, and describing an option. No redundant or irrelevant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description adequately explains return values (title, tags, markdown, dates) and handles edge cases (locked notes, raw option). It is complete for the tool's functionality.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers 100% of parameters, but the description adds extra meaning for 'raw' (explains it returns only markdown without metadata) and clarifies 'id' as uniqueIdentifier. This goes beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get', the resource 'a single Bear note's full content and metadata', and the method 'by ID'. It differentiates from sibling tools like bear_list_notes and bear_search by focusing on individual note retrieval.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when a specific note ID is known, but it does not explicitly state when not to use or mention alternatives. However, given sibling names and context, it is clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_get_tagsA
Read-onlyIdempotent

Get the full tag hierarchy from Bear. Returns all tags with their note counts and pin status. Useful for understanding how notes are organized.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool returns tag hierarchy with note counts and pin status, which is beyond the annotations, but no further behavioral details are needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the action ('Get the full tag hierarchy'), and every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and comprehensive annotations, the description fully explains what the tool does and returns, making it complete for selection and invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters (0 parameters), so the baseline is 4. No additional parameter info is needed, and the description does not need to add anything.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Get the full tag hierarchy from Bear' with specific outputs: all tags with note counts and pin status. This distinguishes it from sibling tools like bear_add_tag or bear_delete_tag.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'Useful for understanding how notes are organized', which provides a general usage context but lacks explicit guidance on when not to use or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_get_todosA
Read-onlyIdempotent

Get all TODO items from a specific Bear note. Returns each item's text, completion status, and index number (use the index with bear_toggle_todo to toggle items).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID (uniqueIdentifier)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, so no hidden effects. Description adds value by explaining return format (text, completion, index) which is not in output schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, no fluff. First sentence states purpose, second adds return details and cross-reference to sibling tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description sufficiently explains return data and how index relates to bear_toggle_todo. No missing context for this simple getter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema covers 100% of parameter id with clear description. Description adds no extra parameter info beyond schema, so baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it gets all TODO items from a specific Bear note, specifies returned fields (text, completion status, index), and implicitly distinguishes from bear_list_todos by being per-note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly describes use case (get todos from a note) and links to bear_toggle_todo via index. Lacks explicit 'when not to use' but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_health_checkA
Read-onlyIdempotent

Run a health check on the Bear notes library. Reports duplicate titles, empty notes, notes stuck in trash, sync conflicts, orphaned tags, untagged notes, and oversized notes. Use this to identify cleanup opportunities or diagnose sync issues.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds specific details about what the health check reports (e.g., duplicate titles, sync conflicts), which goes beyond the annotation's safety profile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action and resource, followed by a list of checks and a usage suggestion. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no output schema, and the annotations covering safety, the description fully explains the tool's purpose, the nature of its output, and its use case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters and schema coverage is 100%, so the description doesn't need to add parameter details. It effectively describes the tool's output without omitting any parameter info.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Run a health check') and the resource ('Bear notes library'), and enumerates specific checks (duplicate titles, empty notes, etc.), making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use it to 'identify cleanup opportunities or diagnose sync issues', providing clear context for when to invoke this tool versus others.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_list_notesA
Read-onlyIdempotent

List Bear notes with optional tag filtering. Returns an array of notes with IDs, titles, tags, pin status, and modification dates. Each note includes two tag fields: 'tags' mirrors Bear's CloudKit index verbatim (includes ancestor expansions — a note tagged #parent/child will show both 'parent' and 'parent/child'); 'attached_tags' shows only leaf tags (the most-specific tag on each branch). Notes with 'locked: true' are private/encrypted in Bear and their body content is not searchable — if a search returns no results, check whether the relevant note is locked. Use bear_get_note to read the full content of a specific note.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoFilter notes by tag (partial match)
include_archivedNoInclude archived notes in results
include_trashedNoInclude trashed notes in results
limitNoMaximum number of notes to return (default 30)

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, destructiveHint, idempotentHint), the description adds valuable behavioral context: locked notes are not searchable, body content is not searchable if locked, and explains the difference between 'tags' and 'attached_tags' fields. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (about 5 sentences) and front-loaded with the main purpose. It could be slightly more streamlined, but it efficiently covers key points without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (4 parameters, no output schema), the description is quite complete. It explains nuanced tag behavior, locked note implications, and directs users to bear_get_note for full content. This level of detail adequately supports an AI agent in selecting and using the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all parameters described in schema). The description clarifies that tag filtering is a partial match, which adds some meaning. However, it does not significantly enhance understanding beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: listing Bear notes with optional tag filtering. It specifies the return fields (IDs, titles, tags, pin status, modification dates) and distinguishes itself from sibling tools like bear_get_note and bear_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear guidance on tag filtering (partial match, two tag fields), handling of locked notes, and suggests using bear_get_note for full content. It does not explicitly state when not to use this tool, but the context is sufficiently covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_list_todosB
Read-onlyIdempotent

List Bear notes that have incomplete TODO items (markdown checkboxes like '- [ ]'). Returns each note's title, tags, and counts of complete/incomplete items.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of notes to return (default 30)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the agent knows it's safe. The description adds that it filters for incomplete TODOs and returns counts, which is helpful but does not disclose any other behavioral nuances like sorting or pagination.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the core action and return format with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description adequately describes return values (title, tags, counts). It is sufficiently complete for a simple listing operation, though it lacks performance or ordering details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the schema already explains the 'limit' parameter with a default. The description does not add any additional meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists Bear notes with incomplete TODO items and specifies return fields (title, tags, counts). It differentiates from a generic list tool but does not explicitly distinguish from the sibling 'bear_get_todos' which may have similar functionality.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'bear_list_notes' or 'bear_get_todos'. The description does not specify prerequisites or preferred contexts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_note_statsA
Read-onlyIdempotent

Get statistics about the Bear notes library: total notes, words, tags, pinned, archived, trashed, notes with TODOs, oldest/newest dates, and top 10 tags by note count.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint (true), destructiveHint (false), and idempotentHint (true). The description adds that it returns statistics but does not disclose additional behavioral traits (e.g., caching, performance impact) beyond what annotations cover.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the purpose, and lists all returned stats efficiently. No redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, read-only tool with annotations covering safety, the description is complete. It enumerates the exact statistics returned, so an agent knows what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so schema coverage is 100%. The description does not need to add parameter info; it effectively describes the tool's output. Baseline 4 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get statistics about the Bear notes library' and lists specific metrics (total notes, words, tags, etc.), making it distinct from sibling tools like bear_list_notes or bear_get_note.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving summary statistics but does not explicitly state when to prefer this tool over alternatives or mention any exclusions. No guidance on when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_remove_tagA
DestructiveIdempotent

Remove a tag from a specific Bear note. Works on any tag visible in 'tags' on the note — including ancestor tags like 'parent' that exist only as hierarchical expansions. Removing a hierarchical leaf like 'parent/child' also drops orphaned ancestors from the tag index.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID (uniqueIdentifier)
tagYesTag to remove (without #)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate destructive (destructiveHint=true) and idempotent (idempotentHint=true) behavior. The description adds value by explaining how ancestor tags are handled and that orphaned ancestors are dropped from the index, which is beyond annotation info. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: the first clearly states the primary function, the second provides nuanced hierarchical details. No filler, front-loaded, every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple removal tool without output schema, the description adequately covers the action, scope, and side effects (orphaned ancestors). It could mention error cases (e.g., if tag doesn't exist on note) but overall complete given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema fully documents both parameters (id, tag). The description adds meaning by noting that tag should be provided without '#' and that it works on any visible tag, including ancestor expansions. This extra context elevates it above baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove a tag from a specific Bear note') and specifies the resource (note and tag). It provides distinction from siblings like bear_delete_tag (which deletes tags globally) by focusing on note-level removal. The additional hierarchy detail further clarifies scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use (remove a tag from a note) and explains hierarchical behavior. However, it does not explicitly mention when not to use it or compare to sibling bear_delete_tag for global deletion, missing some usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_rename_tagA
Idempotent

Rename a tag across all Bear notes. Every note containing the old tag will be updated.

ParametersJSON Schema
NameRequiredDescriptionDefault
old_nameYesCurrent tag name (without #)
new_nameYesNew tag name (without #)

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations, specifying that the rename applies across all notes containing the old tag. Annotations already indicate it's not read-only and not destructive, but the description clarifies the bulk nature of the operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at two sentences, with no unnecessary words. It is front-loaded and delivers the core functionality immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple operation with two well-documented parameters and no output schema, the description is fairly complete. It could mention error conditions (e.g., if the old tag doesn't exist), but overall it adequately covers the use case.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% coverage with descriptions for both parameters. The tool description adds no additional meaning beyond what the schema provides, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool renames a tag across all Bear notes, using a specific verb and resource. This distinguishes it from sibling tools like bear_add_tag and bear_delete_tag.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. Usage is implied by the name and purpose, but no guidance is provided on prerequisites or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_syncA
Idempotent

Trigger a sync of Bear notes from iCloud. Normally an incremental sync fetching only changes. Use 'full' to force a complete re-sync. Most read operations auto-sync when the cache is stale, so manual sync is rarely needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
fullNoForce a full re-sync instead of incremental

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate idempotentHint=true, destructiveHint=false, and readOnlyHint=false. The description aligns perfectly, explaining that an incremental sync is the norm and that a full re-sync is an option. It adds crucial context about auto-sync behavior, which is not captured in annotations, enhancing transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the core purpose, and every sentence adds value without fluff. It efficiently covers usage, parameter, and behavioral context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite lacking an output schema, the description is complete for a simple sync tool with one optional parameter. It explains the sync behavior, frequency, and parameter options, enabling an agent to decide when to invoke it without ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one boolean parameter described. The description clarifies that the default is incremental and setting 'full' forces a complete re-sync, adding meaning beyond the schema's basic type definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool triggers a sync of Bear notes from iCloud, distinguishes between incremental and full re-sync, and notes that manual sync is rarely needed due to auto-sync on read operations. It specifically identifies the resource (Bear notes) and action (sync), setting it apart from sibling tools like bear_context_sync.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit context on when to use the tool (rarely needed) and when not to (most read operations auto-sync). It explains the 'full' parameter option for a complete re-sync, but does not explicitly name alternatives or exclusions beyond the auto-sync behavior, which is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_toggle_todoA

Toggle a specific TODO item in a Bear note between complete and incomplete. The item_index is 1-based — use bear_get_todos first to see the list with index numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID (uniqueIdentifier)
item_indexYes1-based index of the TODO item to toggle

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate this tool is not read-only and not destructive. The description adds the detail that it toggles between states, which is consistent. However, it does not disclose further traits like rate limits or response behavior beyond what annotations already provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no extraneous information. The key points (toggle action, 1-based index, prerequisite) are front-loaded and clearly presented.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description is reasonably complete: it explains what the tool does, how to use the index, and a prerequisite. It could mention the expected response or success indication, but for a simple toggle this is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes both parameters with 100% coverage. The description adds value by explaining the 1-based indexing and the recommended workflow (use bear_get_todos), which aids correct usage beyond the schema alone.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Toggle' and the resource 'specific TODO item in a Bear note', with the effect 'between complete and incomplete'. It distinguishes itself from sibling tools like bear_get_todos by referencing the prerequisite, making its purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly advises to use bear_get_todos first to get the correct index, and notes that item_index is 1-based. This provides clear guidance on prerequisites. It lacks explicit 'when not to use' but is otherwise strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

bear_trash_noteA
DestructiveIdempotent

Move a Bear note to the trash. This is a soft delete — the note can be recovered from Bear's trash. The note is identified by its ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesNote ID (uniqueIdentifier)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already show destructiveHint=true; description adds context that it's a soft delete and recoverable from trash, which exceeds annotation info.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, clear and front-loaded. Could be slightly more concise by merging first two sentences, but still efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Low complexity tool with single param and no output schema; description fully explains behavior (soft delete, recoverable, ID requirement). No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a clear description of 'id'. The description only redundantly says note is identified by ID, adding no new meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verb ('Move') and resource ('Bear note'), immediately clarifies it is a soft delete, and distinguishes from siblings like bear_archive_note (archive) and bear_create_note (creation).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

States when to use (soft delete) and implies recoverability, but does not explicitly mention when not to use (e.g., for permanent deletion) or alternatives like archiving.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 23 tool updatesv0.4.26
    • Addedbear_add_tag
    • Addedbear_attach_file
    • Addedbear_context_add
    • Addedbear_context_import
    • Addedbear_context_index
    • Addedbear_context_ingest
    • Addedbear_context_remove
    • Addedbear_context_remove_external
    • Addedbear_context_set_prefix
    • Addedbear_context_setup
    • Addedbear_context_triage
    • Addedbear_create_note
    • Addedbear_delete_tag
    • Addedbear_edit_note
    • Addedbear_find_untagged
    • Addedbear_get_note
    • Addedbear_get_tags
    • Addedbear_health_check
    • Addedbear_list_todos
    • Addedbear_remove_tag
    • Addedbear_rename_tag
    • Addedbear_search
    • Addedbear_toggle_todo
  2. 12 tool updatesv0.4.19
    • First observedbear_archive_note
    • First observedbear_context_fetch
    • First observedbear_context_push_to_bear
    • First observedbear_context_search
    • First observedbear_context_status
    • First observedbear_context_sync
    • First observedbear_find_duplicates
    • First observedbear_get_todos
    • First observedbear_list_notes
    • First observedbear_note_stats
    • First observedbear_sync
    • First observedbear_trash_note

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct operation on Bear notes, tags, todos, or the context library. Even within similar domains like tag management, the verbs clearly differentiate (add, remove, rename, delete). No two tools appear to overlap in purpose.

Naming Consistency5/5

All tools use the consistent 'bear_verb_noun' pattern in snake_case. The verb comes first and accurately describes the action. Sub-domains like context tools are grouped with a common prefix (bear_context_*), maintaining clarity across 35 tools.

Tool Count4/5

35 tools is on the higher end but justified by the full feature set: note CRUD, tag management, search, todos, sync, health, and a substantial context library subsystem. Each tool serves a clear purpose, though the context library could potentially be simplified.

Completeness5/5

The tool surface covers the entire Bear note lifecycle: create, read, update, delete, archive, trash, tag operations, todo management, search, sync, health checks, and a sophisticated context library. No obvious gaps for typical note-taking workflows.

Maintenance

ActivityInactive
ResponsivenessResponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    A Model Context Protocol server that integrates with Bear App, enabling AI assistants to create, search, modify, and organize notes and tags through X-callback-URL scheme.
    16
    32
    1
    ISC
  • A
    license
    A
    quality
    D
    maintenance
    A Python-based MCP server that provides read and write access to Bear Notes on macOS using SQLite for data retrieval and x-callback-url for modifications. It enables users to search, create, archive, and manage notes and tags directly through a Model Context Protocol interface.
    16
    1
    ISC

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/KuvopLLC/better-bear'

If you have feedback or need assistance with the MCP directory API, please join our Discord server