get_database_statsLABSCO SUMMARY
The hybrid design is the reason writing is safe here.
Tools that write into Bear's database directly are the ones that produce sync conflicts and corrupted notes; routing writes through the x-callback-url API means Bear's own sync logic stays in charge, and reads still get the speed of direct SQLite. Two things to expect: tags are silently normalised (lowercased, spaces and hyphens stripped) with a warning in the response, and the author's disclaimer stands — this is not affiliated with Bear, so keep your usual backups.
What it is
An MCP server for Bear on macOS with a deliberately split architecture: read operations query Bear's SQLite database directly for speed, while every write goes through Bear's official x-callback-url API so that iCloud sync coordinates the change instead of fighting it. That split is why writes are safe to run while Bear is open.
What you get
- Basic access to the library: database statistics, note listing with filters, lookup by ID or exact title, and every tag with its usage count —
get_database_stats,get_notes,get_note_by_id,get_note_by_title,get_tags,get_notes_by_tag - Search beyond title matching: full-text with relevance scoring, similarity matching, related notes by tag and content, multi-criteria filtering and autocomplete —
search_notes_fulltext,find_similar_notes,get_related_notes,get_notes_advanced,get_notes_with_criteria,get_search_suggestions,get_recent_notes,get_note_counts_by_status,search_notes_regex - Analytics over your own writing: note statistics, content-pattern analysis, attachment inventory, tag hierarchy, tag usage patterns and trends over time —
get_note_analytics,analyze_note_metadata,get_notes_with_metadata,get_file_attachments,get_tag_hierarchy,get_tag_analytics,analyze_tag_relationships,get_tag_usage_trends - Writes that survive sync: create, update, duplicate and archive notes, plus forcing hashtag reprocessing singly or in bulk —
create_note,update_note,duplicate_note,archive_note,trigger_hashtag_parsing,batch_trigger_hashtag_parsing - Tag sanitisation with a warning attached:
Projectbecomesproject,tag namebecomestagname,project-alphabecomesprojectalpha, while forward slashes survive soproject/alphastays nested — and the response tells you what was changed - Conflict detection that prevents overwriting a concurrent change
Requirements
Bear installed on macOS and opened at least once, Node.js 18+, and a clone built with npm install and npm run build; register dist/index.js with node. No account and no key — the database is found automatically under ~/Library/Group Containers/9K33E3U3T4.net.shinyfrog.bear/Application Data/, and BEAR_DB_PATH overrides that for reads. NODE_ENV=development turns on debug logging. The package is bear-mcp-server 1.0.0. Read operations are instant; writes take 1-2 seconds because Bear's URL scheme processes them. Bear can stay running throughout.
Setup effort
Build from source — git clone https://github.com/bejaminjones/bear-notes-mcp
USE CASES
Finding a note you can only half remember
Run full-text search with relevance ranking, then pull the notes similar to the best match instead of guessing more keywords.
Capturing something into Bear mid-conversation
Create the note with its tags through Bear's own API, so it appears on your other devices the way a note typed in Bear would.
Cleaning up a tag system that grew by accident
Read the tag hierarchy and usage trends, get the optimisation suggestions, then apply changes knowing exactly how each tag will be normalised.
Auditing what is actually in the library
Pull database statistics, note counts by status and the attachment inventory before deciding what to archive.
29 tools
Listed in project docs. Your client may show a different list.
get_notesget_note_by_idget_note_by_titleget_tagsget_notes_by_tagget_notes_advancedget_notes_with_criteriasearch_notes_fulltextget_search_suggestionsfind_similar_notesget_related_notesget_recent_notesget_note_counts_by_statusget_note_analyticsanalyze_note_metadataget_notes_with_metadataget_file_attachmentsget_tag_hierarchyget_tag_analyticsanalyze_tag_relationshipsget_tag_usage_trendssearch_notes_regexcreate_noteupdate_noteduplicate_notearchive_notetrigger_hashtag_parsingbatch_trigger_hashtag_parsingBEFORE YOU INSTALL
What to know first
Tools you get
29 tools named in the project's documentation.
Requires
- Bear app installed on macOS
- Node.js 18+
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Server setup
git clone https://github.com/bejaminjones/bear-notes-mcp
cd bear-notes-mcp
npm install
npm run buildMCP Clients
Claude Desktop
{
"mcpServers": {
"bear": {
"command": "node",
"args": [
"<YOUR_PATH_TO_BEAR_NOTES_MCP>/dist/index.js"
],
"env": {}
}
}
}<YOUR_PATH_TO_BEAR_NOTES_MCP> is the full path of your clone. npm run build in the steps above creates dist/index.js there.