MCP Bear
A Python-based Model Context Protocol (MCP) server that provides access to Bear Notes.
Bear stores notes in a SQLite database. This MCP server provides both read and write access to your notes. See: https://bear.app/faq/where-are-bears-notes-located
Features
Read Operations
- Read all notes (active and archived) from Bear's SQLite database
- Search notes by text content, tag, or unique ID
- List all tags
- Get notes by specific tag
- Get archived notes separately
Note Management
- Create new notes with title, content, and tags
- Append, prepend, or replace text in existing notes
- Archive/unarchive notes for organization
- Move notes to trash
Tag Management
- Add tags to existing notes
- Rename tags across all notes
- Open Bear showing notes with specific tag
Bear Integration
- Open specific notes in Bear
- Search within Bear app
- All operations integrate seamlessly with Bear's UI
Write operations use Bear's official x-callback-url API for safe, reliable modifications.
Requirements
- Python 3.10 or higher (tested with 3.14)
- Bear note application (macOS)
- Access to Bear database
Installation
Development Setup
# Clone the repository
git clone https://github.com/maxim-ist/mcp-bear.git
cd mcp-bear
# Install dependencies (using mise for Python version management)
mise install
mise exec -- python -m venv .venv
.venv/bin/pip install -e .
Install via pip (when published)
pip install mcp-bear
Claude Desktop Configuration
Add this to your claude_desktop_config.json:
Using Python directly
{
"mcpServers": {
"bear": {
"command": "python",
"args": [
"-m",
"mcp_bear.server"
],
"env": {
"PYTHONPATH": "/Users/YOUR_USERNAME/Work/mcp-bear/src"
}
}
}
}
Using installed package
{
"mcpServers": {
"bear": {
"command": "mcp-bear"
}
}
}
Available Tools
When the server is started, the following MCP tools become available:
Read Operations (Basic)
get_notes: Retrieves all non-archived notesget_tags: Lists all tagsget_notes_like: Searches for notes containing specific text
Read Operations (Advanced)
get_note_by_id: Get a specific note by its unique identifierget_notes_by_tag: Get all notes with a specific tagget_archived_notes: Get all archived notes
Note Management
create_note: Create a new note with optional title, text, tags, and pin statusadd_text: Add text to an existing note (append, prepend, or replace)trash_note: Move a note to trasharchive_note: Archive a note (removes from main list, keeps searchable)unarchive_note: Unarchive a note
Tag Management
add_tags: Add tags to an existing noteopen_tag: Open Bear and show all notes with a specific tagrename_tag: Rename a tag across all notes
Bear Integration
open_note: Open a specific note in Bearsearch_bear: Open Bear and show search results for a term
All write operations use Bear's official x-callback-url scheme, which requires Bear to be installed and running.
Configuration
You can override the default Bear database path by setting the DB_ROUTE environment variable:
export DB_ROUTE="/path/to/custom/database.sqlite"
Development
Running the server directly
cd /Users/borag/Work/mcp-bear
.venv/bin/python -m mcp_bear.server
Testing with MCP Inspector
# Install the MCP inspector
pip install mcp-inspector
# Run the inspector
mcp-inspector python -m mcp_bear.server
Architecture
mcp_bear/server.py: Main MCP server implementationmcp_bear/database.py: SQLite database access for read operationsmcp_bear/bear_url.py: Bear x-callback-url operations for write operations- Uses Python's built-in
sqlite3module (no native dependencies)
Security Note
This server uses parameterized SQL queries to prevent SQL injection attacks, improving upon the original TypeScript implementation.
License
ISC
Author
Bora Gonul me@boragonul.com
Metadata
Release files for mcp-bear 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| mcp_bear-1.1.0.tar.gz | 9.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| mcp_bear-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.4 kB
Release files / mcp_bear-1.1.0.tar.gz
| Download URL | mcp_bear-1.1.0.tar.gz |
|---|---|
| Size | 9.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2f4722704ac3f3b625a7a7bd99e54488a907d1ca01f6c27be4384593da539ef9
|
|
BLAKE2b-256 checksum How to use checksums |
c8b6396be768e4cccf8944a308b10bc0a7d6a665679c343fd55e6ff3a9299166
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|
Release files / mcp_bear-1.1.0-py3-none-any.whl
| Download URL | mcp_bear-1.1.0-py3-none-any.whl |
|---|---|
| Size | 8.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
120499b20467b68aee536e42ab34a06ccc06abe07813b13357e5d35b9b1002f8
|
|
BLAKE2b-256 checksum How to use checksums |
a9e8869e7bc8e17047b7d3e696fc056bf1c93328f0044f595309acac73538d0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.0
|