better-bear
better bear
MCP-сервер и CLI для заметок Bear через CloudKit. Включает библиотеку контекста — курируемую синхронизированную папку заметок, оптимизированную для использования LLM, вдохновленную шаблоном базы знаний LLM Карпатого.
Полная документация: better-bear.com
Установка
Установите CLI, затем подключитесь к Claude:
curl -sL https://raw.githubusercontent.com/KuvopLLC/better-bear/main/install.sh | bash
bcli auth
bcli mcp installЭто установит бинарный файл bcli, выполнит аутентификацию в iCloud и настроит MCP-сервер как для Claude Desktop (через пакет .mcpb), так и для Claude Code.
Другие способы установки
Метод | Команда |
Только Claude Desktop |
|
Только Claude Code |
|
Claude Code (прямая) |
|
Файл конфигурации |
|
Пакет .mcpb | Скачайте из последнего релиза и дважды щелкните |
Управление
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 binaryRelated MCP server: Bear Notes MCP Server
CLI
Все команды также работают автономно из терминала:
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Полный справочник команд см. на сайте better-bear.com.
Библиотека контекста
Превратите часть своих заметок Bear в синхронизированную, курируемую папку контекста, по которой Claude может перемещаться, используя поиск по индексу. Пометьте заметки тегом #context в Bear, синхронизируйте их, и Claude прочитает компактный индекс, чтобы найти нужные файлы — загружая только то, что необходимо, а не всё подряд.
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Или скажите Claude: "Set up a context library" — и он выполнит всё через инструменты MCP.
Архитектура следует трехпапочному шаблону Карпатого: bear/ (синхронизируется из CloudKit), external/ (PDF, экспортированные файлы, общие документы) и inbox/ (зона для сортировки). Манифест index.md связывает всё воедино. Полную документацию см. на better-bear.com.
Инструменты MCP
34 инструмента, охватывающих заметки, теги, TODO, вложения, поиск, метаданные (front matter), статистику, проверки работоспособности и библиотеку контекста. Полный список см. в README MCP-сервера.
Участники
Available Tools
35 toolsbear_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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID (uniqueIdentifier) | |
| tag | Yes | Tag to add (without #) |
TDQS
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.
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.
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.
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.
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.
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_noteAIdempotent
Archive a Bear note. Archived notes are hidden from the main list but not deleted. Use 'undo' to unarchive.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID (uniqueIdentifier) | |
| undo | No | Unarchive the note instead of archiving |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID (uniqueIdentifier) | |
| file_path | Yes | Absolute path to the file to attach | |
| after | No | Insert after the line containing this text | |
| before | No | Insert before the line containing this text | |
| prepend | No | Insert after the title line instead of at the end |
TDQS
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.
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.
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.
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.
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.
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_addAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID (uniqueIdentifier) | |
| subtag | No | Optional sub-tag for grouping (e.g., 'architecture', 'jira') |
TDQS
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.
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.
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.
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.
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.
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_fetchARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| paths | Yes | File paths relative to context directory (e.g., 'bear/my-note.md') |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Target filename in external/ (e.g., 'jira-ticket-123.md') | |
| content | Yes | Markdown content to import | |
| group | No | Group label for organizing (e.g., 'jira', 'slack', 'docs') | |
| source | No | Source description (e.g., URL, tool name) | |
| summary | No | Short summary of the content |
TDQS
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.
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.
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.
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.
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.
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_indexARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_ingestARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_bearAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Filename in external/ to push | |
| subtag | No | Sub-tag (e.g., 'architecture' → #context/architecture) | |
| title | No | Override note title (defaults to title extracted from content) |
TDQS
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.
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.
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.
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.
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.
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_removeADestructiveIdempotent
Remove a Bear note from the context library by removing its #context tag. Triggers a sync to delete the local file.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID (uniqueIdentifier) |
TDQS
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.
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.
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.
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.
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.
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_externalADestructiveIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Filename in external/ to remove |
TDQS
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.
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.
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.
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.
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.
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_searchARead-onlyIdempotent
Full-text search across the entire context library (Bear notes + external files + inbox). Returns matching snippets with filenames and origin labels. Use when the index alone isn't enough to find the right file.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (case-insensitive substring match) | |
| limit | No | Maximum results (default: 5) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only, non-destructive, idempotent behavior. Description adds context about what is searched (full-text across context library) but does not disclose additional behavioral traits like ordering, pagination, or result format beyond 'snippets with filenames and origin labels.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first defines functionality, second offers usage guidance. No redundant words, efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only search tool with two parameters and no output schema, the description covers purpose and usage condition adequately. Missing details about return format specifics or ordering, but the tool is straightforward and the description is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. Description does not add extra meaning to query or limit beyond what schema provides, so baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states specific verb (full-text search) and resource (entire context library: Bear notes, external files, inbox). Distinguishes from siblings like bear_search by scope and mentions return of snippets with filenames and origin labels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when the index alone isn't enough,' providing a clear condition for use. Implies an alternative tool (index-based search) but does not name it or specify 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_set_prefixAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| new_prefix | Yes | New tag prefix without the leading #. Example: '10-projects'. |
TDQS
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.
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.
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.
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.
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.
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_setupAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dir | No | Output directory for the context library (default: ~/.bear-context) | |
| tag_prefix | No | Tag prefix for qualifying notes (default: context). Notes tagged #context or #context/subtag will be included. | |
| use_frontmatter | No | Also include notes with context: true in YAML front matter (default: true) |
TDQS
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.
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.
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.
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.
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.
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_statusARead-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).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_syncAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| force | No | Force full re-sync (re-download all notes) |
TDQS
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.
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.
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.
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.
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.
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_triageAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| filename | Yes | Filename in inbox/ to triage | |
| action | Yes | Triage action: keep (move to external/), push_to_bear (create Bear note), or discard (delete) | |
| group | No | Group label (used with 'keep' action) | |
| subtag | No | Sub-tag for Bear note (used with 'push_to_bear' action, e.g., 'jira' → #context/jira) | |
| summary | No | Short summary (used with 'keep' action) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Note title | |
| body | No | Note body text (markdown) | |
| tags | No | Tags to assign to the note | |
| frontmatter | No | YAML front matter fields as key-value pairs (e.g. {status: 'draft', project: 'alpha'}) |
TDQS
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.
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.
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.
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.
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.
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_tagADestructiveIdempotent
Delete a tag from all Bear notes. The tag text is removed but notes are preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | Tag to delete (without #) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID (uniqueIdentifier) | |
| append_text | No | Text to append to the end of the note | |
| body | No | New content to replace the entire note body | |
| after | No | Insert appended text after the line containing this text (use with append_text) | |
| replace_section | No | Replace content under this heading (replaces until next heading of same or higher level) | |
| section_content | No | New content for the section (use with replace_section) | |
| set_frontmatter | No | Front matter fields to set or update (key-value pairs) | |
| remove_frontmatter | No | Front matter field keys to remove |
TDQS
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.
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.
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.
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.
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.
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_duplicatesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_untaggedARead-onlyIdempotent
List Bear notes that have no tags assigned.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of notes to return (default 30) |
TDQS
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.
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.
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.
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.
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.
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_noteARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID (uniqueIdentifier) | |
| raw | No | Return only the raw markdown content |
TDQS
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.
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.
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.
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.
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.
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_tagsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_todosARead-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).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID (uniqueIdentifier) |
TDQS
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.
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.
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.
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.
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.
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_checkARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_notesARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter notes by tag (partial match) | |
| include_archived | No | Include archived notes in results | |
| include_trashed | No | Include trashed notes in results | |
| limit | No | Maximum number of notes to return (default 30) |
TDQS
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.
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.
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.
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.
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.
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_todosBRead-onlyIdempotent
List Bear notes that have incomplete TODO items (markdown checkboxes like '- [ ]'). Returns each note's title, tags, and counts of complete/incomplete items.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of notes to return (default 30) |
TDQS
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.
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.
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.
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.
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.
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_statsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_tagADestructiveIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID (uniqueIdentifier) | |
| tag | Yes | Tag to remove (without #) |
TDQS
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.
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.
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.
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.
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.
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_tagAIdempotent
Rename a tag across all Bear notes. Every note containing the old tag will be updated.
| Name | Required | Description | Default |
|---|---|---|---|
| old_name | Yes | Current tag name (without #) | |
| new_name | Yes | New tag name (without #) |
TDQS
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.
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.
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.
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.
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.
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_searchARead-onlyIdempotent
Full-text search across Bear note titles, tags, and body content. Returns matching notes ranked by relevance (title matches first, then tag, then body). Body matches include a text snippet with surrounding context. Locked/private notes will match by title but may not match body searches — results include 'locked: true' for these notes. If you can't find content you expect, try listing notes to check if the relevant note is locked.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query text | |
| limit | No | Maximum number of results (default 20) | |
| since | No | Only notes modified after this date (YYYY-MM-DD, or: today, yesterday, last-week, last-month) | |
| before | No | Only notes modified before this date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent. The description adds behavioral details: ranking order (title first, then tag, then body), locked note behavior (match by title, not body; 'locked: true' field), and inclusion of text snippets. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the main purpose in the first sentence. It covers key behaviors without unnecessary detail, though it could be slightly tighter by combining redundant clauses.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description sufficiently explains return values (ranking, snippet, locked flag). It also addresses edge cases (locked notes). However, it omits details about pagination or handling large result sets, which are partially addressed by the 'limit' parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage with clear parameter descriptions. The tool description does not add extra meaning beyond what the schema already provides for parameters like 'query', 'limit', 'since', and 'before', so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Full-text search across Bear note titles, tags, and body content' and specifies ranking by relevance. It distinguishes from sibling tools like bear_list_notes (listing without search) and bear_get_note (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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises that if expected content is not found, the agent should check if the note is locked by listing notes. While it doesn't explicitly state when not to use, it provides a practical alternative, which is helpful for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bear_syncAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| full | No | Force a full re-sync instead of incremental |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID (uniqueIdentifier) | |
| item_index | Yes | 1-based index of the TODO item to toggle |
TDQS
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.
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.
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.
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.
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.
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_noteADestructiveIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID (uniqueIdentifier) |
TDQS
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.
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.
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.
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.
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.
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.
23 tool updates
v0.4.26- Added
bear_add_tag - Added
bear_attach_file - Added
bear_context_add - Added
bear_context_import - Added
bear_context_index - Added
bear_context_ingest - Added
bear_context_remove - Added
bear_context_remove_external - Added
bear_context_set_prefix - Added
bear_context_setup - Added
bear_context_triage - Added
bear_create_note - Added
bear_delete_tag - Added
bear_edit_note - Added
bear_find_untagged - Added
bear_get_note - Added
bear_get_tags - Added
bear_health_check - Added
bear_list_todos - Added
bear_remove_tag - Added
bear_rename_tag - Added
bear_search - Added
bear_toggle_todo
12 tool updates
v0.4.19- First observed
bear_archive_note - First observed
bear_context_fetch - First observed
bear_context_push_to_bear - First observed
bear_context_search - First observed
bear_context_status - First observed
bear_context_sync - First observed
bear_find_duplicates - First observed
bear_get_todos - First observed
bear_list_notes - First observed
bear_note_stats - First observed
bear_sync - First observed
bear_trash_note
TDQS
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.
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.
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.
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
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
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Related MCP Servers
- AlicenseAqualityDmaintenanceA simple note-taking MCP server for recording and managing notes with AI models.42236GPL 2.0
- FlicenseBqualityDmaintenanceA Model Context Protocol server that provides Claude with access to search, retrieve, and analyze notes from the Bear App through natural language queries.78-
- AlicenseAqualityDmaintenanceA 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.16321ISC
- AlicenseAqualityDmaintenanceA 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.161ISC
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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