Skip to content
bear-notes-mcp mascot

Opinionated
Bear Notes MCP Server
for every AI assistant

Sharper search — ranked, hierarchical, with snippets. Reads run direct against your database. Offline-first and private.

  1. Download the .mcpb extension from GitHub Releases
  2. Double-click the file — Claude Desktop shows the install prompt
  3. Done. Start asking Claude about your Bear notes.

MCP settings

Demo

Searching, creating, and editing Bear notes from Claude Desktop

Who this is for

An unofficial, opinionated alternative to the native Bear MCP. It fits when:

You have years of notes and substring search isn’t enough.

Search ranks results by relevance — titles, bodies, and tag matches across your whole library — so the right note rises to the top, even when your phrasing has drifted.

You bounce between Claude, Codex, Gemini, and Cursor.

Stdio MCP transport — works with anything that speaks the protocol. No per-client glue code, no lock-in to one assistant.

You want to query notes without pulling Bear forward.

Reads run straight against Bear’s SQLite database. No need to keep Bear open — or even running — for a quick lookup mid-conversation.

You manage tags across the whole library.

Rename or delete a tag everywhere it appears, atomically. Hierarchical tag matching in search rolls up subtags automatically — work that’s tedious through Bear’s UI alone.

You don’t install unsigned third-party binaries.

Native node:sqlite — no Gatekeeper hassles, no signed-binary maintenance. Network-free server: no remote-fetch tools, no prompt-injection surface.

Built and maintained in personal time. If it saves you time, consider supporting its development.

Support this project

What you can do

Real things people do with a deep library one prompt away.

Knowledge search

You wrote it down somewhere — months ago, maybe under a tag you don’t quite remember. Search ranks by relevance, and rolls hierarchical tags up automatically.

> Find the spec I wrote about export pipelines, somewhere under #engineering/

Meeting notes

Append decisions to a running ops doc, not a fresh note every time. Section-targeted writes mean today’s notes land under today’s heading without rewriting yesterday’s.

> Append today's decisions to the 'Decisions' section of my Weekly Ops note

Research & writing

Pull every note under a tag subtree into a synthesis. Restructure a long draft section by section — leaving the rest of the note untouched.

> Pull every note under #research/llm-evals and outline a survey

Content creation

Draft from what you already wrote. The AI reads your sources, then creates new notes — or extends existing ones at a precise heading — without trampling anything.

> Find my notes tagged #blog/drafts and draft this week's post outline

Read-only by default. 8 more in Edit Mode.

4 tools always on for search and reading. 8 more unlock with Edit Mode (UI_ENABLE_CONTENT_REPLACEMENT=true) for creation, editing, and tag management.

Read & Search

Relevance-ranked search across titles, bodies, and tags. Filter by tag, date range, or pinned status. Available without Edit Mode.

Create & Edit

Section-aware writes in Edit Mode: append at a specific heading, replace a section, or scope edits without rewriting the whole note. Plus attachments and archive.

Tag Management

View the full tag hierarchy with note counts — available without Edit Mode. Rename, delete, or add tags across the whole library when Edit Mode is on.

Get started

One-click extension for Claude Desktop, one command for everything else.

  1. Download the .mcpb extension from GitHub Releases
  2. Double-click the file — Claude Desktop shows the install prompt
  3. Done. Start asking Claude about your Bear notes.

MCP settings

Two features are disabled by default. Enable them via environment variables or Claude Desktop extension settings.

UI_ENABLE_CONTENT_REPLACEMENT Edit Mode — enables all 8 write tools (create, edit, attach files, manage tags, archive). Off by default; the server is read-only without it.
UI_ENABLE_NEW_NOTE_CONVENTION Places tags right after the note title instead of at the bottom.

FAQ

Is this for me?
This is an unofficial, opinionated alternative to the native Bear MCP. It fits if you have years of notes, you've outgrown substring search, and you'd rather query without opening Bear. The value: relevance-ranked search with snippets and hierarchical tag matching, library-wide tag operations, and offline-first reads with no network or telemetry. If you have a small library and just want a quick notes integration, you may not need it yet.
Is my data safe?
The MCP server itself runs locally, makes no network calls, and collects no telemetry. However, your AI client (Claude, Cursor, etc.) sends note content to its API for inference — that's how AI assistants work. The server doesn't add any data exposure beyond what you'd get by pasting a note into the chat yourself.
What does the red warning about "access to everything on your computer" mean?
Claude Desktop's permission warning system doesn't distinguish between accessing a single file and accessing everything. The extension only needs one file: Bear's SQLite database. You can verify this yourself — the source code is fully open.
Does it work with AI assistants other than Claude?
Yes. It works as a standalone MCP server with any MCP-compatible client — Claude Code, Cursor, Codex, Windsurf, Gemini CLI, and others. The Claude Desktop extension (.mcpb) is Claude-specific, but the npm package works everywhere.
What are the requirements?
macOS only, since Bear is a macOS app. For the Claude Desktop extension, you just need Bear and Claude Desktop installed. For standalone npm usage, you also need Node.js 24.13.0 or later.
Can it search inside images and PDFs attached to notes?
Yes. Bear indexes text from attached images and PDFs via OCR. The MCP server searches that indexed text — it doesn't perform OCR itself.
Can it modify or delete my notes?
By default the server is read-only — it can search and read your notes (including OCR'd text from attached images and PDFs) but cannot modify them. Toggle "Edit Mode" in settings (or set UI_ENABLE_CONTENT_REPLACEMENT=true) to unlock the 8 write tools: create, add or replace text, attach files, manage tags, and archive. There is no delete tool — archive is the closest substitute, and it's reversible inside Bear.
Why does it read the database directly instead of using Bear's URL API?
Bear's x-callback-url API returns data in x-success responses, which requires a server or binary to handle — that's fragile and introduces security concerns. Direct read-only SQLite access is simpler and more reliable.
How can I report a bug or contribute?
Open an issue or start a discussion on the GitHub repository. Bug reports, feature requests, and pull requests are all welcome.
Are you affiliated with Bear? Why are you doing this?
Because I can 😀 and I am not affiliated with Bear development team. I am a regular user of Bear notes just like you and want to have it in my AI tools.