Manage Bear notes through MCP with CloudKit sync, search, tags, TODOs, attachments, and an LLM-focused context library.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent ā or use 1-click editor setup below.
This server is confirmed live ā we successfully called its tools/list endpoint directly (see the verified badge above). We haven't yet sandbox-tested the stdio install command below specifically, which is a separate, ongoing check.
š” Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by Better Bear.
bear_list_notesList 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.
bear_get_noteGet 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.
bear_searchFull-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.
bear_get_tagsGet the full tag hierarchy from Bear. Returns all tags with their note counts and pin status. Useful for understanding how notes are organized.
bear_create_noteCreate 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.
bear_edit_noteEdit 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.
KuvopLLC/better-bear MCP server connects an MCP client to a Bear notes library through CloudKit. It supports reading and changing notes, while also exposing operations for tags, TODO checkboxes, attachments, archives, statistics, duplicate detection, and library health checks.
Note retrieval includes titles, markdown content, tags, modification dates, and lock status. Search covers titles, tags, and body text, with relevance ordering and snippets for body matches. Bear's hierarchical tags are represented in two ways: the CloudKit index can include ancestor tags, while attached tags show only the leaf tags on each branch.
The server also includes a context library for preparing selected Bear notes for LLM use. Notes tagged with a configurable context prefix can be synchronized into a local bear/ directory. The library also supports external/ content and an inbox/ directory, with an index that helps clients locate relevant files before fetching their full contents.
The MCP tools communicate with Bear data through iCloud CloudKit. bear_sync can request an incremental update or a complete resynchronization, although normal read operations generally refresh stale cached data automatically. Creating or editing a note changes its Bear content, while tagging operations update the note markdown and tag index as appropriate.
For TODO work, first retrieve the items with bear_get_todos; the returned one-based index is then passed to bear_toggle_todo. Attachments are uploaded to iCloud and embedded in the note's markdown. Moving a note to the trash is a soft delete, and archiving hides a note without deleting it.
The context workflow is index-first. Initialize it once with bear_context_setup, synchronize qualifying notes with bear_context_sync, inspect the generated index using bear_context_index, and fetch only the files needed for a task. bear_context_search can search Bear-derived files, external files, and inbox content without loading the entire library.
The repository documents installation through the bcli command-line tool. The install script places the CLI, after which bcli auth authenticates with iCloud and bcli mcp install configures the MCP server. The setup supports Claude Desktop and Claude Code; desktop-only, code-only, JSON configuration, and release-bundle options are also documented.
The server can also be launched directly for an MCP client with npx -y better-bear. Authentication is still required for access to the Bear library. The context library is initialized separately and can then be managed through MCP tools or the corresponding CLI commands.
Locked or private Bear notes can be returned with metadata, but their body content is not searchable. A title-only search result or a missing body match may indicate that the note is locked. Use bear_get_note to inspect a specific note when appropriate.
Front matter changes cannot be combined with body replacement or text appending in the same edit operation. TODO indexes are one-based and should be obtained from the note's TODO listing before toggling an item.
The context synchronization process only manages the bear/ directory. It does not overwrite external/ or inbox/. Removing a context tag, trashing a note, or otherwise making it ineligible causes the corresponding synchronized file to be removed during a context sync. KuvopLLC/better-bear MCP server is licensed under MIT according to the repository badge.
Factual signals from GitHub, npm, and our automated checks ā not a rating.
No reviews yet ā be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/kuvopllc-better-bear)<a href="https://allmcps.com/mcp/kuvopllc-better-bear"><img src="https://allmcps.com/api/badge/kuvopllc-better-bear?style=directory" alt="Better Bear on AllMCPs" /></a>