Bear MCP Server

Bear MCP Server

Provides comprehensive access to Bear notes using a hybrid sync-safe approach - direct database reads for performance and Bear's official API for writes, enabling natural language note management, search, organization, and analysis while maintaining iCloud sync compatibility.

Category
Visit Server

README

Bear MCP Server

A Model Context Protocol (MCP) server that provides Claude with comprehensive access to your Bear notes using a hybrid sync-safe approach - combining direct database reads with Bear's API for writes.

๐Ÿ”„ Sync-Safe Hybrid Mode: All operations now work safely with iCloud sync!

โš ๏ธ Disclaimer

This tool uses a hybrid approach: direct database reads + Bear API writes. While comprehensive safety measures are implemented:

  • Read operations access Bear's database directly (read-only, safe)
  • Write operations use Bear's official API (sync-safe)
  • The tool is not affiliated with Bear's developers
  • Always maintain regular Bear backups as good practice

๐Ÿš€ Quick Start (5 minutes)

Prerequisites

  • Bear app installed on macOS
  • Claude Desktop app
  • Node.js 18+ installed

Installation

  1. Clone and setup:
git clone <repository-url>
cd bear-notes-mcp
npm install
npm run build
  1. Add to Claude Desktop configuration: Edit ~/Library/Application Support/Claude/claude_desktop_config.json:
{
  "mcpServers": {
    "bear": {
      "command": "node",
      "args": ["/path/to/bear-notes-mcp/dist/index.js"],
      "env": {}
    }
  }
}
  1. Start using:
  • Restart Claude Desktop
  • Ask Claude: "What Bear notes do I have?"
  • Begin managing your notes with natural language!

โœจ What You Can Do

๐Ÿ“– Read Operations (26 tools) - โœ… ACTIVE

  • Search & Discovery: Full-text search, find similar notes, get suggestions
  • Organization: Browse by tags, analyze note relationships, get statistics
  • Content Analysis: Extract metadata, analyze attachments, find patterns
  • Advanced Queries: Complex filtering, date ranges, content criteria

โœ๏ธ Write Operations (6 tools) - โœ… ACTIVE (Sync-Safe)

  • Create Notes: โœ… Via Bear API (sync-safe)
  • Edit Notes: โœ… Via Bear API (sync-safe)
  • Organize: โœ… Via Bear API (sync-safe)
  • Tag Management: โœ… Via Bear API (sync-safe)
  • Hashtag Parsing: โœ… Via Bear API (sync-safe)

How it works: Uses Bear's x-callback-url API for writes, database for reads!

๐Ÿ›ก๏ธ Safety Features

  • Hybrid Architecture: Database reads + API writes for maximum safety
  • iCloud Sync Safe: All write operations use Bear's API
  • Conflict Detection: Prevents overwriting concurrent changes
  • Tag Validation: Automatic tag sanitization with warnings
  • Error Handling: Robust error management for all operations

๐Ÿ“Š Capabilities Overview

Category Tools Status Key Features
Basic Operations 6 โœ… Active Get notes, search, browse tags, database stats
Advanced Search 8 โœ… Active Full-text search, similarity matching, complex queries
Analytics 6 โœ… Active Content analysis, relationship mapping, usage patterns
Metadata 6 โœ… Active File attachments, content structure, organization insights
Write Operations 6 โœ… Active Sync-safe via Bear API - full write capability restored!

๐Ÿ”ง Configuration

Database Location

The server automatically finds your Bear database at:

~/Library/Group Containers/9K33E3U3T4.net.shinyfrog.bear/Application Data/database.sqlite

Environment Variables

  • BEAR_DB_PATH: Override default database location (for reads)
  • NODE_ENV: Set to 'development' for debug logging

๐Ÿ“š Usage Examples

Basic Note Management

"Show me my recent notes"
"Find all notes tagged with 'project'"  
"Create a new note about today's meeting"
"Search for notes containing 'API documentation'"
"Update my project notes with the latest status"

Advanced Operations

"Analyze my note-taking patterns this month"
"Find notes similar to my current project"
"Show me notes with attachments"
"What are my most-used tags?"

Organization & Cleanup

"Archive old notes from last year"
"Find duplicate or similar notes"
"Show me notes that might need better tags"
"Duplicate this note with a new title"
"Add tags to organize my notes better"

๐Ÿ›ก๏ธ Safety & Best Practices

โš ๏ธ Safety Guidelines

  1. Bear can run during operations - Write operations use Bear's API safely
  2. Automatic tag validation - Tags are sanitized with warnings
  3. iCloud sync compatible - No conflicts or sync issues
  4. Keep Bear updated - Ensure API compatibility

๐Ÿ’ก Best Practices

  • Read operations are instant - direct database access
  • Write operations work with Bear running or closed
  • Tag warnings show when tags are auto-corrected
  • Use specific search terms for better results
  • Archive notes instead of deleting when possible

๐Ÿท๏ธ Tag Formatting Guidelines

โœ… RECOMMENDED TAG FORMATS:

  • Simple tags: work, personal, urgent, meeting
  • Nested categories: work/projects, personal/health, study/math
  • Time-based: 2024, january, q1
  • Project codes: proj001, alpha, beta

โŒ AVOID THESE FORMATS (auto-corrected):

  • Hyphens: project-alpha โ†’ becomes projectalpha
  • Spaces: work meeting โ†’ becomes workmeeting
  • Mixed case: ProjectAlpha โ†’ becomes projectalpha

๐Ÿ”ง Automatic Tag Sanitization: The server automatically validates and sanitizes all tags:

  • Lowercase only: Project โ†’ project
  • No spaces: tag name โ†’ tagname
  • No hyphens: project-alpha โ†’ projectalpha
  • No commas: tag,name โ†’ tagname
  • โœ… Forward slashes preserved: project/alpha โ†’ project/alpha (for nested tags)

Tag warnings are returned when tags are modified, so you'll know exactly what changes were made.

๐Ÿ—๏ธ REFACTORED SERVICE ARCHITECTURE

โœ… Completely refactored from monolith to modern service-oriented architecture!

Transformation Overview

We've completely rebuilt the system from a 2,589-line monolithic BearService into a modern, testable, service-oriented architecture:

๐Ÿ”ง Service-Based Design

  • 7 specialized services with clear responsibilities
  • Dependency injection for testability and flexibility
  • Interface-driven development for maintainability
  • 384 comprehensive tests across all services

๐Ÿ›ก๏ธ Hybrid Sync-Safe Architecture

  • Read Operations: Direct SQLite database access for maximum performance
  • Write Operations: Bear's x-callback-url API for sync safety
  • Perfect coordination using ZUNIQUEIDENTIFIER bridge

๐Ÿ“Š Quality & Performance

  • 100% TypeScript with strict type checking
  • Comprehensive error handling and validation
  • Multi-level caching for performance optimization
  • Structured logging and health monitoring

Service Architecture

ServiceContainer (Dependency Injection)
โ”œโ”€โ”€ DatabaseService      (SQLite operations & connection management)
โ”œโ”€โ”€ CacheService        (Performance optimization & intelligent caching)
โ”œโ”€โ”€ LoggingService      (Structured logging with Winston)
โ”œโ”€โ”€ HealthService       (System monitoring & health checks)
โ”œโ”€โ”€ ValidationService   (Input validation & data sanitization)
โ”œโ”€โ”€ NoteService         (Note CRUD & lifecycle management)
โ”œโ”€โ”€ SearchService       (Advanced search & content discovery)
โ””โ”€โ”€ TagService          (Tag management & organization)

Why This Architecture Works

The Problem: Monolithic code was hard to test, maintain, and extend.

The Solution: Service-oriented architecture with clear separation of concerns.

The Result:

  • โœ… Maintainable code - Clear service boundaries and responsibilities
  • โœ… 100% test coverage - 384 tests across all services
  • โœ… Type safety - Eliminated 50+ any types
  • โœ… Performance optimized - Multi-level caching and query optimization
  • โœ… Production ready - Comprehensive logging, monitoring, and error handling
  • โœ… Sync-safe operations - Hybrid approach eliminates iCloud conflicts

Current Status

  • โœ… All read operations - Direct database access (26 tools)
  • โœ… All write operations - Sync-safe Bear API (6 tools)
  • โœ… Full feature parity - Everything works as designed
  • โœ… iCloud sync compatible - No conflicts or issues
  • โœ… Duplicate title fix - Notes display titles correctly (no duplication)

๐Ÿ™ Thanks to Bear Team

Special thanks to Danilo from the Bear team who provided the key insight that led to this solution!


๐Ÿค Contributing & Community

The iCloud sync challenge has been solved! ๐ŸŽ‰ Now we're focused on making this the best Bear integration possible. Whether you're a:

  • macOS/iOS developer with API experience
  • Database expert familiar with SQLite optimization
  • Bear power user with workflow insights
  • Developer wanting to contribute to MCP ecosystem

Your contribution can help thousands of Bear users get even more from their AI assistants!

Current Priorities

  1. ๐Ÿš€ Add new features - More ways to analyze and work with notes
  2. ๐Ÿ“– Improve documentation - Help others understand and contribute
  3. ๐Ÿงช Expand test coverage - Ensure reliability across Bear versions
  4. โšก Performance optimization - Make operations even faster

Quick Ways to Help

  • โญ Star the repo if you find it useful
  • ๐Ÿ› Report issues you encounter
  • ๐Ÿ’ก Share ideas for new features or solutions
  • ๐Ÿ”— Spread the word to developers who might help
  • ๐Ÿ“ Contribute documentation improvements

Together, we can build the most powerful Bear integration for AI assistants!

๐Ÿ” All Available Tools

<details> <summary><strong>๐Ÿ“– Read Operations (26 tools) - โœ… ACTIVE</strong></summary>

Basic Operations (6 tools)

  • get_database_stats - Overview of your Bear database
  • get_notes - List notes with filtering options
  • get_note_by_id - Get specific note by ID
  • get_note_by_title - Find note by exact title
  • get_tags - List all tags with usage counts
  • get_notes_by_tag - Find notes with specific tag

Advanced Search (8 tools)

  • get_notes_advanced - Complex filtering and sorting
  • get_notes_with_criteria - Multi-criteria search
  • search_notes_fulltext - Full-text search with relevance scoring
  • get_search_suggestions - Auto-complete for searches
  • find_similar_notes - Content similarity matching
  • get_related_notes - Find related notes by tags and content
  • get_recent_notes - Recently created or modified notes
  • get_note_counts_by_status - Statistics by note status

Analytics & Insights (6 tools)

  • get_note_analytics - Comprehensive note statistics
  • analyze_note_metadata - Content pattern analysis
  • get_notes_with_metadata - Filter by content characteristics
  • get_file_attachments - File attachment management
  • get_tag_hierarchy - Tag relationship analysis
  • get_tag_analytics - Tag usage patterns

Content Analysis (6 tools)

  • analyze_tag_relationships - Tag optimization suggestions
  • get_tag_usage_trends - Tag usage over time
  • search_notes_regex - Pattern matching (when available)
  • Advanced content categorization
  • Link and reference analysis
  • Writing pattern insights

</details>

<details> <summary><strong>โœ๏ธ Write Operations (6 tools) - โœ… ACTIVE (Sync-Safe)</strong></summary>

Note Management - SYNC-SAFE VIA BEAR API

  • create_note - โœ… Create new notes with tags and content
  • update_note - โœ… Update existing notes safely
  • duplicate_note - โœ… Create copies of existing notes
  • archive_note - โœ… Archive/unarchive notes
  • trigger_hashtag_parsing - โœ… Force hashtag reprocessing
  • batch_trigger_hashtag_parsing - โœ… Bulk hashtag processing

โœ… All operations are now sync-safe:

  • Uses Bear's x-callback-url API for all writes
  • No iCloud sync conflicts or data corruption
  • Respects Bear's internal sync coordination
  • Full write functionality restored

Perfect integration between database reads and API writes!

</details>

๐Ÿ”ง Troubleshooting

Common Issues

"Database not found" error:

  • Verify Bear is installed and has been opened at least once
  • Check database path: ~/Library/Group Containers/9K33E3U3T4.net.shinyfrog.bear/Application Data/

"Permission denied" error:

  • Ensure Claude Desktop has necessary file system permissions
  • Check that the database file is readable

Write operations not working:

  • Ensure Bear app is installed and has been opened at least once
  • Check that Bear's x-callback-url functionality is enabled
  • Try opening Bear manually to verify it's working

Slow performance:

  • Large databases (10,000+ notes) may take longer for reads
  • Use specific search terms instead of broad queries
  • Consider using pagination with limit parameters

Getting Help

  1. Check the troubleshooting guide
  2. Review common usage patterns
  3. Enable debug logging with NODE_ENV=development
  4. Test Bear's API directly: open "bear://x-callback-url/create?title=Test"

๐Ÿ“ˆ Performance

  • Read operations: Instant (direct database access)
  • Write operations: 1-2 seconds (Bear API processing)
  • Large databases: Tested with 10,000+ notes
  • Memory usage: ~50MB typical, ~100MB for complex operations
  • Concurrent operations: Read operations can run simultaneously
  • API operations: Processed through Bear's URL scheme

๐Ÿ“„ License

MIT License - see LICENSE file for details.


Made with โค๏ธ for the Bear community

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured