MCP server for Bear App — fast read-only access via direct SQLite
Project description
bear-mcp
MCP server that gives LLMs fast, read-only access to your Bear notes by reading the SQLite database directly.
How it works
Bear stores notes in a Core Data SQLite file on disk. This server opens it read-only (?mode=ro) and queries it directly. No network calls, no CloudKit sync latency, no API keys. Queries against the tag index instead of scanning note content.
Why this exists
The existing Bear MCP options either go through Bear's x-callback-url scheme (slow, requires Bear to be running, macOS UI automation) or the akseyh implementation that builds SQL with string concatenation. I wanted something that's fast, read-only by design, and doesn't have SQL injection issues.
Limitations:
- macOS only — Bear is a macOS/iOS app, the SQLite file lives on macOS
- Read-only — this server cannot create, edit, or delete notes
- Needs Full Disk Access — the process reading Bear's database needs FDA granted in System Settings > Privacy & Security
Install
pip install git+https://github.com/mark-liu/bear-mcp.git
Or run without installing:
uvx --from git+https://github.com/mark-liu/bear-mcp.git bear-mcp
PyPI coming soon — pip install bear-mcp once published.
Configure in Claude Code
claude mcp add bear -s user -- uvx --from git+https://github.com/mark-liu/bear-mcp.git bear-mcp
Tools
| Tool | Description |
|---|---|
search_bear_notes |
Search notes by text and/or tag (uses tag index, not text scan) |
get_bear_note |
Get a specific note by UUID |
list_bear_tags |
List all tags (reads ZSFNOTETAG table directly) |
find_notes_by_title |
Find notes by title, exact or partial match |
get_recent_notes |
Get notes modified in the last N days |
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bear_mcp-0.2.0.tar.gz.
File metadata
- Download URL: bear_mcp-0.2.0.tar.gz
- Upload date:
- Size: 4.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ee1d01b5acc8a2eaa6b807ac63b841f775ce543be59902d73698096187d76b1
|
|
| MD5 |
3960e8d3cd172d7a8e5a2a5b35033b0d
|
|
| BLAKE2b-256 |
1bce7857ec47ebcafae0537800701b2c223407ca44a4397dcde8550250eee86b
|
Provenance
The following attestation bundles were made for bear_mcp-0.2.0.tar.gz:
Publisher:
publish.yaml on mark-liu/bear-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bear_mcp-0.2.0.tar.gz -
Subject digest:
3ee1d01b5acc8a2eaa6b807ac63b841f775ce543be59902d73698096187d76b1 - Sigstore transparency entry: 1190943501
- Sigstore integration time:
-
Permalink:
mark-liu/bear-mcp@916d7227553f6a98f8a2afa600939458c3f921fe -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/mark-liu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@916d7227553f6a98f8a2afa600939458c3f921fe -
Trigger Event:
push
-
Statement type:
File details
Details for the file bear_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: bear_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 5.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b700f16e5b920418cfafc73ed63fc771f0c749993ffb1295f9e066f8b9c6b127
|
|
| MD5 |
4dbc951e6e4d7866b2d8e0badbcdd6a7
|
|
| BLAKE2b-256 |
ebf18bf13ad2caf1e39243f3fb5491207790a38ba3dfc5dc2861984e8d3714de
|
Provenance
The following attestation bundles were made for bear_mcp-0.2.0-py3-none-any.whl:
Publisher:
publish.yaml on mark-liu/bear-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bear_mcp-0.2.0-py3-none-any.whl -
Subject digest:
b700f16e5b920418cfafc73ed63fc771f0c749993ffb1295f9e066f8b9c6b127 - Sigstore transparency entry: 1190943502
- Sigstore integration time:
-
Permalink:
mark-liu/bear-mcp@916d7227553f6a98f8a2afa600939458c3f921fe -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/mark-liu
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yaml@916d7227553f6a98f8a2afa600939458c3f921fe -
Trigger Event:
push
-
Statement type: