Skip to main content

MCP server for accessing Bear Notes

Project description

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/yourusername/mcp-bear
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 notes
  • get_tags: Lists all tags
  • get_notes_like: Searches for notes containing specific text

Read Operations (Advanced)

  • get_note_by_id: Get a specific note by its unique identifier
  • get_notes_by_tag: Get all notes with a specific tag
  • get_archived_notes: Get all archived notes

Note Management

  • create_note: Create a new note with optional title, text, tags, and pin status
  • add_text: Add text to an existing note (append, prepend, or replace)
  • trash_note: Move a note to trash
  • archive_note: Archive a note (removes from main list, keeps searchable)
  • unarchive_note: Unarchive a note

Tag Management

  • add_tags: Add tags to an existing note
  • open_tag: Open Bear and show all notes with a specific tag
  • rename_tag: Rename a tag across all notes

Bear Integration

  • open_note: Open a specific note in Bear
  • search_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 implementation
  • mcp_bear/database.py: SQLite database access for read operations
  • mcp_bear/bear_url.py: Bear x-callback-url operations for write operations
  • Uses Python's built-in sqlite3 module (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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_bear-1.0.0.tar.gz (9.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_bear-1.0.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file mcp_bear-1.0.0.tar.gz.

File metadata

  • Download URL: mcp_bear-1.0.0.tar.gz
  • Upload date:
  • Size: 9.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for mcp_bear-1.0.0.tar.gz
Algorithm Hash digest
SHA256 938ccd75eea20bfcb55179e968414cf899e0716037f66c8e95c4b55473f3972d
MD5 7ef64d5126e627cef6eb776b58aef274
BLAKE2b-256 9952bf7e784e18acbe8ecd5296a5d5a909780de690c1bc684dfd96cb08fc4248

See more details on using hashes here.

File details

Details for the file mcp_bear-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: mcp_bear-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for mcp_bear-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 64d587446d3fe20df1a4c206717b4bc46dce1fff502945a589b7dedde4498acb
MD5 c51021cbe5771cd4316dc75c78669385
BLAKE2b-256 5cb71ea38f94af48bbbc47ad2e72fe2081145f3c1ac2528103e75fbd1ec8573d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page