mcpField
B
bear-mcp

bear-mcp

Local
github.com/zmainenProductivity0Updated 36w ago

About bear-mcp

bear-mcp is an MCP server and Python library for accessing Bear notes on macOS. It supports note search and editing, using direct SQLite reads and Bear URL actions for writes.

Key features

  1. 01Search notes by text or tag
  2. 02Read notes and list recent edits
  3. 03Create and edit note content
  4. 04Move notes to trash
  5. 05Lock or unlock notes

Use cases

  1. 01Capture meeting notes in Bear
  2. 02Find and summarize tagged research notes
  3. 03Add inline tags to note content
  4. 04Make reviewed notes read-only

MCP support

The server exposes Bear note operations as MCP tools and can be added to an MCP configuration. Locking notes uses AppleScript UI automation.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

bear-mcp

An MCP server that gives AI assistants (Claude, etc.) full access to your Bear notes on macOS. Search, read, create, edit, and lock notes — all from your AI workflow.

Why?

Bear has no official API. This project bridges the gap using two strategies:

  • Reads go through Bear's SQLite database directly — fast, silent, works even when Bear is closed.
  • Writes use Bear's x-callback-url scheme — opens Bear briefly for each operation, but reliable and non-destructive.
  • Lock/unlock uses AppleScript UI automation — the only way, since Bear doesn't expose this in its URL scheme.

What can it do?

ToolWhat it does
bear_searchFind notes by text and/or tag
bear_getRead a note's full content
bear_recentList recently modified notes
bear_tagsList all tags
bear_createCreate a new note
bear_prependAdd text to the top of a note
bear_appendAdd text to the bottom of a note
bear_replaceReplace the entire body of a note
bear_trashMove a note to trash
bear_lockToggle read-only (lock/unlock)

Notes are identified by UUID (or the first 8 characters of one), not titles.

Setup

1. Install
git clone https://github.com/zmainen/bear-mcp.git
cd bear-mcp
pip install -e .
2. Add to your MCP config

In your project's .mcp.json (or equivalent):

{
  "bear-notes": {
    "command": "python",
    "args": ["/path/to/bear-mcp/mcp_server.py"]
  }
}
3. Grant Accessibility permissions (for lock only)

bear_lock uses AppleScript to click Bear's menu items. macOS will prompt you to grant Accessibility access the first time. This is a one-time setup in System Settings > Privacy & Security > Accessibility.

Use cases

AI-assisted note-taking. Have your AI assistant capture ideas, meeting notes, or research directly into Bear with proper tags.

Automated tagging. Bear's add-tags URL action is broken. This server works around it by writing inline #tags into note bodies, which Bear recognizes automatically. Nested tags like #project/docs work.

Search and summarize. Ask your AI to find and synthesize information across your notes — it can search by text, filter by tag, and read full content.

Lock finished work. Use bear_lock to make notes read-only after review, preventing accidental edits.

Library usage

The underlying Python library works independently of MCP:

from bear_app import BearNotesAPI

bear = BearNotesAPI()  # auto-detects Bear's database

notes = bear.search_notes("query", tag="project")
note = bear.get_note(note_id="83779062-...")
print(note.title, note.is_locked, note.locked_date)

bear.create_note(title="New note", text="body", tags=["project"])
bear.toggle_read_only(note_id=uuid)

Gotchas

  • IDs are UUIDs, not row numbers. Bear's internals use ZUNIQUEIDENTIFIER.
  • add-tags is broken in Bear's URL scheme. Use inline #tag text instead.
  • Spaces must be %20, not +. Bear interprets + literally. The library handles this automatically.
  • Lock requires Bear running and Accessibility permissions. It's UI automation under the hood — reliable but not invisible.
  • Never write to the SQLite database. All writes go through Bear's URL scheme.

License

MIT — Zach Mainen, 2025

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.