Skip to main content
Glama
samcrudge

bearnotes-mcp

by samcrudge

bearnotes-mcp

A tiny local MCP server that lets any local MCP client on macOS — Claude Code, Claude Desktop, Cursor, VS Code — read and edit your Bear notes: search, read, create, append, and overwrite (e.g. tick a checkbox).

No Bear API token is needed. Reads use Bear's local database (opened read-only); writes use Bear's bear://x-callback-url scheme. Neither requires a token, and nothing here ever touches the network.

Requirements

  • macOS with Bear installed and opened at least once (the database only exists after Bear has run).

  • uv — install with curl -LsSf https://astral.sh/uv/install.sh | sh (or brew install uv).

No Python setup, no token.

Related MCP server: Bear App MCP Server

Install — Claude Code

1. Warm the cache (first run downloads ~30 packages — may take a minute; ends with selfcheck ok):

uvx bearnotes-mcp --selfcheck

2. Register — one command, at user scope so it's available in every project:

claude mcp add bear -s user -- uvx bearnotes-mcp

3. Verify:

claude mcp list        # → bear: ✔ Connected

If the very first connect times out, just retry (the cache is warm after one attempt), or start Claude once with MCP_TIMEOUT=60000 claude.

Install — Claude Desktop, Cursor, VS Code

Add an mcpServers entry. Use the full path to uvx — GUI apps don't see your shell PATH (which uvx, e.g. /opt/homebrew/bin/uvx):

{
  "mcpServers": {
    "bear": {
      "command": "/opt/homebrew/bin/uvx",
      "args": ["bearnotes-mcp"]
    }
  }
}
  • Claude Desktop — Settings → Developer → Edit Config (creates ~/Library/Application Support/Claude/claude_desktop_config.json); paste, then fully quit and restart. Logs: ~/Library/Logs/Claude/mcp-server-bear.log.

  • Cursor — same block in ~/.cursor/mcp.json.

  • VS Code (Copilot).vscode/mcp.json, but the top-level key is servers (not mcpServers).

  • Windsurf / Cline / Zed / LM Studio — same stdio pattern; check their docs for the exact file.

Cannot work: claude.ai in the browser, mobile apps, remote/hosted connectors, and non-Mac machines — they can't spawn a local process, and Bear lives only on your Mac.

Latest main without waiting for a release (builds from GitHub each install):

claude mcp add bear -s user -- uvx --from git+https://github.com/samcrudge/bearnotes-mcp bearnotes-mcp

Clone it to read/hack the code first:

git clone https://github.com/samcrudge/bearnotes-mcp
claude mcp add bear -s user -- uv --directory /absolute/path/to/bearnotes-mcp run bearnotes-mcp

To point at a non-default Bear database, add -e BEAR_DB=/path/to/database.sqlite to the claude mcp add command.

How it works

  • Reads — Bear's local SQLite DB, opened read-only (mode=ro).

  • Writes — Bear's x-callback-url scheme (create, add-text in append / replace_all mode).

The DB is never written directly (that corrupts Bear's sync). Before any full-body overwrite, the note's current text is snapshotted to ~/.bear-mcp-backups/ as a timestamped .md file.

Tools

Tool

What it does

search_notes(query="", tag="", limit=20)

Search non-trashed notes, optional tag filter (incl. subtags); returns id, title, tags, pinned, modified

read_note(id)

Full note + tags, pinned, and open/done checkbox counts

list_tags()

Every tag with its live-note count

get_backlinks(id)

Notes linking to this one, and notes it links to (Bear [[wiki-link]] graph)

create_note(title, text="", tags=[])

Create a new note

append_note(id, text)

Append to a note

prepend_note(id, text)

Prepend to a note (after the title line)

replace_note(id, text)

Overwrite a note's entire text; backs up first

toggle_task(id, match, done=None)

Check/uncheck one checkbox line by substring (done None=flip); errors if ambiguous

open_note(id)

Open and focus a note in the Bear app

Resources (read-only, @-mentionable): bear://notes (index of recent notes) and bear://note/{id} (a note's full text).

What this can access

Once connected, the client can read every non-trashed note (encrypted notes are refused) and create, append to, or overwrite notes. Everything runs locally with no network calls; the database is opened strictly read-only; and before any full-body overwrite the current text is backed up to ~/.bear-mcp-backups/. Tools carry MCP annotations (reads marked read-only, replace_note marked destructive) so clients can surface the right warnings.

Troubleshooting

  • First connect times out — retry (cache is warm now), or MCP_TIMEOUT=60000 claude.

  • Desktop fails instantly"command" must be the full path to uvx (which uvx).

  • No notes found — open Bear at least once so its database exists.

License

Apache-2.0. See LICENSE.

Available Tools

10 tools
append_noteA

Append text to the end of an existing note.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description's mention of appending provides context but does not add significant behavioral detail. It does not disclose what happens if the note does not exist, nor any other constraints.

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

Conciseness4/5

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

The description is a single sentence, concise and front-loaded. However, it could include additional useful information without becoming verbose.

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

Completeness4/5

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

For a simple append operation with two parameters, the description is mostly complete. The existence of an output schema compensates for not describing returns. However, a mention that the note must exist would improve completeness.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain the parameters beyond their names and types. It implies that 'id' identifies the note and 'text' is the content to append, but lacks details on format, constraints, or behavior.

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

Purpose5/5

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

The description clearly states the action ('Append text') and the resource ('existing note'). The verb is specific, and the tool name 'append_note' together with siblings like 'prepend_note' and 'replace_note' provides clear differentiation.

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

Usage Guidelines3/5

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

The description does not explicitly state when to use this tool versus alternatives (e.g., prepend_note, replace_note). There is no guidance on prerequisites or exclusion criteria. Usage is implied but not articulated.

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

create_noteB

Create a new note (its title becomes the H1 line). No token required.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
textNo
titleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false. The description adds 'No token required' as an extra behavioral detail. However, it omits potential side effects or prerequisites beyond authentication.

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

Conciseness5/5

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

The description is extremely concise with two sentences, each serving a purpose: stating the core function and adding a behavioral note. It is front-loaded and efficient.

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

Completeness3/5

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

Given the tool has 3 parameters (1 required) and an output schema exists, the description is minimal. It doesn't specify return value format or behavior with optional params. It is adequate but incomplete for a creation tool.

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

Parameters2/5

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

Schema description coverage is 0%. The description only implies that title becomes H1, which adds some semantic value for that parameter, but no information is given about tags or text. Parameters remain largely undocumented.

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

Purpose5/5

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

The description clearly states the verb 'create' and the resource 'note', and adds a specific detail about the title becoming the H1 line, distinguishing it from siblings like read_note or search_notes.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as append_note or replace_note. The mention 'No token required' is a minor hint but does not address selection criteria.

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

list_tagsA
Read-only

List every tag with the number of non-trashed notes it holds.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare the tool is read-only, so the description's mention of 'non-trashed' adds context beyond that. However, it doesn't disclose whether there is pagination, sorting, or any limits on the returned list, which would be helpful. The description is adequate but not rich.

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

Conciseness5/5

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

The description is a single, well-formed sentence that front-loads the action and resource. It contains no superfluous words and efficiently conveys the necessary information.

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

Completeness5/5

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

Given that the tool has zero parameters and an output schema exists to describe the return format, the description sufficiently covers what the tool does and the scope (all tags, non-trashed notes). No additional context is needed for an agent to invoke it correctly.

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

Parameters4/5

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

There are no parameters, and schema coverage is 100%, so the description does not need to provide additional parameter meaning. The baseline for 0 parameters is 4, and the description does not detract from that.

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

Purpose5/5

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

The description clearly states the tool lists every tag with the count of non-trashed notes. It specifies both the resource (tags) and the action (list) with a meaningful detail (count of non-trashed notes), which distinguishes it from the sibling tools that focus on notes.

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

Usage Guidelines4/5

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

While no explicit when-to-use or alternatives are mentioned, the tool's purpose is self-explanatory given there are no competing sibling tools for listing tags. The description is clear enough that an agent can infer when to use it, but it lacks explicit 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.

open_noteB

Open and focus a note in the Bear app window.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already indicate it is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false). The description adds the 'focus' behavior, which is consistent. No contradiction or additional behavioral traits disclosed.

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

Conciseness5/5

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

A single, clear sentence that is well front-loaded and contains no redundancy. Every word is necessary.

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

Completeness2/5

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

The description is minimal and lacks parameter documentation and usage guidance. Although the tool is simple and an output schema exists, the lack of parameter explanation and context for use makes it incomplete for an AI agent.

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

Parameters1/5

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

The sole parameter 'id' is not explained in the description. Schema description coverage is 0%, so the description adds no meaning beyond the schema. An agent has no guidance on what the 'id' represents.

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

Purpose5/5

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

The description clearly states the verb 'Open and focus' and the resource 'a note in the Bear app window'. It distinguishes from siblings like 'read_note' (which reads content without focusing) and 'search_notes' (which finds notes).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. There is no mention of prerequisites, context, or when not to use it. The description is purely functional without usage context.

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

prepend_noteB

Prepend text to a note (Bear inserts it just after the title line).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior4/5

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

Annotations indicate a write operation (readOnlyHint=false) and nondestructive (destructiveHint=false). The description adds the specific behavioral detail 'just after the title line', which is beyond annotations. 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.

Conciseness3/5

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

Description is a single sentence (12 words) and front-loaded. However, it omits parameter explanations, which would add value without much length increase.

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

Completeness3/5

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

With an output schema present, return value explanation is not needed. However, the description lacks usage guidelines and parameter details, making it somewhat incomplete for a tool with two required params.

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

Parameters2/5

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

Schema coverage is 0% and description does not explain the 'id' parameter (likely note identifier) or 'text' parameter beyond implying it's the text to prepend. The description only partially compensates for the lack of schema documentation.

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

Purpose5/5

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

The description specifies the action 'prepend text' to a note and clarifies the exact insertion point 'just after the title line'. This clearly distinguishes it from sibling tools like append_note and replace_note.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like append_note or replace_note. The description only describes behavior but does not provide usage context or exclusion criteria.

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

read_noteA
Read-only

Return a note's {id, title, text, tags, pinned, todo_open, todo_done}.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description confirms read-only behavior by stating it returns fields. However, the description does not add behavioral details beyond what annotations provide, such as error handling or response format.

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

Conciseness5/5

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

The description is a single concise sentence that front-loads the verb and resource, with no wasted words.

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

Completeness4/5

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

Given the simplicity of the tool and the presence of readOnlyHint annotation, the description is fairly complete. It lists all returned fields, compensating for the lack of output schema. Minor gap: no mention of error behavior if id is not found.

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

Parameters3/5

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

There is only one parameter, 'id', and the description implies it is a note identifier but does not provide additional meaning beyond the schema. Since schema coverage is 0% but the parameter is simple, the description meets baseline expectations.

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

Purpose5/5

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

The description clearly states the verb 'Return' and the resource 'a note', and lists the exact fields returned. It distinguishes itself from sibling tools like search_notes (search/filter), list_tags (only tags), and mutation tools.

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

Usage Guidelines3/5

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

The description implies usage when you have a note ID and need its details, but it does not explicitly state when to use this tool versus alternatives like search_notes or list_tags, nor does it mention prerequisites or exclusions.

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

replace_noteA
Destructive

Overwrite a note's ENTIRE text, including its title line — pass the full text as returned by read_note (not body-only), or the title changes.

Backs up the current text first to ~/.bear-mcp-backups/. Note the backup is a read-only DB snapshot and may lag edits still open unsaved in Bear's UI.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
textYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.6/5.0
Behavior5/5

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

Discloses backup location (~/.bear-mcp-backups/), backup nature (read-only DB snapshot), and potential lag with unsaved Bear edits. Adds substantial context beyond destructiveHint annotation.

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

Conciseness5/5

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

Two well-structured sentences, each adding value: first states purpose and key constraint, second adds backup detail. No unnecessary words.

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

Completeness4/5

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

Covers operation, input constraints, and backup behavior. With an output schema, return values need not be explained. Lacks mention of id requirement (though in schema), but overall adequate for a 2-param tool.

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

Parameters4/5

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

Given 0% schema description coverage, the description compensates by clarifying that 'text' must be the full note including title line, not just body. No additional info for 'id', but the text guidance is crucial.

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

Purpose5/5

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

Description clearly states 'Overwrite a note's ENTIRE text, including its title line', specifying the verb (overwrite), resource (note), and scope (entire text). This distinguishes it from partial update siblings like append_note and prepend_note.

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

Usage Guidelines4/5

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

Explicitly instructs to pass the full text from read_note to avoid title changes, implying the proper usage flow. Lacks explicit 'when not to use', but the constraint is clear enough.

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

search_notesA
Read-only

Search non-trashed notes by title/body, optionally filtered to a tag (matches the tag and its nested subtags). Empty query = most recent. Returns id, title, tags, pinned, modified.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNo
limitNo
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

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

The description reveals that only non-trashed notes are searched, and empty queries return most recent results. It lists return fields. Annotations already declare readOnlyHint=true, and the description adds meaningful behavioral context beyond that.

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

Conciseness5/5

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

The description is two sentences with no superfluous information. Key details (scope, tag behavior, empty query, return fields) are front-loaded and concise.

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

Completeness4/5

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

Given the presence of an output schema and read-only annotations, the description covers the search functionality well. Missing explanation of the 'limit' parameter is a minor gap, but overall it's sufficiently complete for a search tool.

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

Parameters3/5

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

The schema has 0% parameter description coverage, so the description must compensate. It explains the 'tag' parameter (matches nested subtags) and 'query' behavior (empty = most recent), but does not mention the 'limit' parameter, leaving a gap.

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

Purpose5/5

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

The description clearly states it searches non-trashed notes by title/body, with optional tag filtering and nested subtag support. It specifies behavior for empty queries and lists return fields, distinguishing it from sibling tools like read_note and list_tags.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool (searching notes with optional tag filter). It implies usage by describing tag nesting and empty query behavior, but does not explicitly compare to alternatives or state 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.

toggle_taskA

Check/uncheck one checkbox line in a note, found by substring match. done=None flips it, True checks, False unchecks. Errors if match is ambiguous (rather than guessing). Backs the note up first.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
doneNo
matchYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior5/5

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

Beyond annotations (readOnlyHint false indicating mutation), the description adds key behaviors: backing up the note, error on ambiguous match, and the flipping behavior of done parameter. This provides rich context for safe invocation.

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

Conciseness5/5

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

The description is concise (3 sentences) and front-loaded with the core action. Every sentence adds value: purpose, behavior details, and safety (backup). No wasted words.

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

Completeness4/5

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

Given the output schema exists, return type is covered. The description explains input, behavior, and edge cases (ambiguity). Minor gap: what happens if match not found? But overall sufficient for a simple toggle tool.

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

Parameters4/5

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

With 0% schema description coverage, the description explains 'match' (substring to find checkbox) and 'done' (flip/check/uncheck) in detail. However, 'id' is not described, leaving its meaning implicit (presumably note ID).

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

Purpose5/5

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

The description clearly states 'Check/uncheck one checkbox line in a note' using a substring match, which is a specific verb and resource. It distinguishes from sibling tools like read_note or replace_note by its focused task toggling purpose.

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

Usage Guidelines2/5

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

The description lacks explicit guidance on when to use this tool versus alternatives. It does not mention siblings or scenarios where other tools (e.g., replace_note) would be more appropriate, leaving decision-making to the agent.

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

Tool Schema Changelog

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

  1. 10 tool updatesv0.3.0
    • First observedappend_note
    • First observedcreate_note
    • First observedget_backlinks
    • First observedlist_tags
    • First observedopen_note
    • First observedprepend_note
    • First observedread_note
    • First observedreplace_note
    • First observedsearch_notes
    • First observedtoggle_task

TDQS

A3.9/5.0
Disambiguation5/5

Each tool targets a distinct operation: reading, searching, listing tags, backlinks, creating, appending, prepending, replacing, toggling tasks, and opening. No two tools have overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (e.g., read_note, search_notes, create_note), making them predictable and easy for an agent to infer.

Tool Count5/5

With 10 tools covering core note operations, tagging, backlinks, and task management, the count is well-scoped for a Bear notes server—neither sparse nor overwhelming.

Completeness4/5

Covers essential CRUD-like operations (read, create, update via replace, append, prepend), search, tags, backlinks, and task toggling. Minor missing features like explicit delete/trash or tag management are gaps but workable.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

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

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/samcrudge/bearnotes-mcp'

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