MCP.Market

Better Bear MCP server

by mreider·io.github.mreider/better-bear·v0.4.21·66 stars

MCP server for Bear notes — read, search, create, edit, tag, and manage notes via CloudKit

B83/100grade B
What users say
No reviews yet
Be the first
Safety scan
B83/100

full report

Adoption
Growing

66 stars108 downloads/wk

Reviews

Write one

Nobody has reviewed Better Bear yet.

If you have run it, two minutes of your experience saves the next person an afternoon.

Better Bear tools (34, 6 write)

write = sends, deletes, buys or posts

Read from the package source without running it. The installed server may list more.

  • bear_add_tag

    Add a tag to an existing Bear note. The tag is inserted into the note's markdown.

  • bear_archive_note

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

  • bear_attach_file

    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.

  • bear_context_add

    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.

  • bear_context_fetch

    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.

  • bear_context_import

    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.

  • bear_context_index

    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.

  • bear_context_ingest

    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.

  • bear_context_push_to_bear

    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.

  • bear_context_removewrite action

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

  • bear_context_remove_externalwrite action

    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.

  • bear_context_search

    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.

  • bear_context_setup

    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.

  • bear_context_status

    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).

  • bear_context_sync

    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.

  • bear_context_triage

    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.

  • bear_create_notewrite action

    Create a new Bear note with a title, optional body text, tags, and YAML front matter. Front matter is stored as a collapsed metadata block at the top of the note. Returns the new note's ID.

  • bear_delete_tagwrite action

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

  • bear_edit_note

    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.

  • bear_find_duplicates

    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.

  • bear_find_untagged

    List Bear notes that have no tags assigned.

  • bear_get_note

    Get a single Bear note's full content and metadata by ID. Returns the note title, tags, full markdown text, and dates. 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.

  • bear_get_tags

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

  • bear_get_todos

    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).

  • bear_health_checkwrite action

    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.

  • bear_list_notes

    List Bear notes with optional tag filtering. Returns an array of notes with IDs, titles, tags, pin status, and modification dates. 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.

  • bear_list_todos

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

  • bear_note_stats

    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.

  • bear_remove_tagwrite action

    Remove a tag from a specific Bear note.

  • bear_rename_tag

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

  • bear_search

    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 che

  • bear_sync

    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.

  • bear_toggle_todo

    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.

  • bear_trash_note

    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.

Public scan report

scanner v0.1.9 · 2026-09-27 · same rubric, same numbers if you re-run it

no findings
  • Code scan7 source files scanned25/25
  • –Live reliabilityno gateway calls yet and no remote to proben/a
  • –Tool poisoningtools not inspected (local package is not executed); not countedn/a
  • Auth qualitylocal package, no credentials required12/15
  • Maintenancelast push 158 days ago8/15
  • Maintainer identityregistry namespace matches repository owner; GitHub account older than a year9/10
Overall 83/100. Components that don't apply are left out of the denominator. Any critical finding is an F.RubricAppeal a findingJSON

How Better Bear compares

Against every graded Web search MCP server, from our own scans and uptime checks. Updated after each scan run.

Safety score
83/100
higher than 70% of 3,470 Web search servers
Tools
34
the typical Web search server has 5
Tools that change things
18%
typical: 0%. Fewer write tools means less an agent can break
GitHub stars
66
more than 93% of 1,786 Web search servers
Downloads a week
108
more than 58% of 827 Web search servers with a package

What its tools let an agent do: 28 read · 6 change

Install Better Bear in Claude Code, Cursor or VS Code

Runs npx -y better-bear on your machine. Read the scan report first; the gateway never runs local packages.

claude mcp add better-bear -- npx -y better-bear
Add to Cursor

What the publisher says

From the Better Bear repository's README, as published. We do not edit it. Read it on GitHub

better bear

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

Full docs: better-bear.com

Install

Install the CLI, then connect to Claude:

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

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

Other install methods

Manage

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

CLI

All commands also work standalone from the terminal:

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

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

Context Library

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

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

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

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

MCP Tools

Shortened. The full README is on GitHub.

Nothing above is checked by us. What we check is on the safety report.

Better Bear: common questions

Is Better Bear MCP server safe?
Mostly: it is graded B (83/100). Read the Better Bear safety report
How do I install Better Bear?
It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
Does Better Bear need an API key?
Not as far as the registry entry and our scan can tell: no credentials are declared or required.
Is Better Bear maintained?
The last commit was 195 days ago (2026-04-23). The latest release is v0.4.21.
What can I use instead of Better Bear?
Servers from other publishers that do the same job: Apple Notes MCP server, Vadivam Icons MCP server and Silica Core MCP server.
How does Better Bear compare with other Web search MCP servers?
safety score 83/100 (higher than 70% of 3,470 Web search servers); tools 34 (the typical Web search server has 5); tools that change things 18% (typical: 0%. Fewer write tools means less an agent can break). Full comparison.

Alternatives to Better Bear

Same job from other publishers: the closest match first, then the best rated.

  • Apple Notes
    Inspect, search, create, edit, move, and organize notes in Apple Notes on macOS.
    A
  • Vadivam Icons
    Search 24px outline icons by name, tag, or category and get SVG or framework code.
    A
  • Silica Core
    Retrieval over the folder the session opened: files, search, read, code_pack, write_note.
    A