Skip to main content

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 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

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.1.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.1.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: mcp_bear-1.1.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.1.0.tar.gz
Algorithm Hash digest
SHA256 2f4722704ac3f3b625a7a7bd99e54488a907d1ca01f6c27be4384593da539ef9
MD5 0ce2225e7b18f25bd6f4d26b313038ee
BLAKE2b-256 c8b6396be768e4cccf8944a308b10bc0a7d6a665679c343fd55e6ff3a9299166

See more details on using hashes here.

File details

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

File metadata

  • Download URL: mcp_bear-1.1.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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 120499b20467b68aee536e42ab34a06ccc06abe07813b13357e5d35b9b1002f8
MD5 515ec9a10e2583f4478af0d5966b7246
BLAKE2b-256 a9e8869e7bc8e17047b7d3e696fc056bf1c93328f0044f595309acac73538d0e

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 files

1.0.0

2 files

Supported by

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