Bear Notes MCP Server with RAG

by ruanodendaal
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Integrations

  • Integrates with Bear Notes on macOS, providing semantic search and RAG capabilities for accessing personal notes.

  • Uses Node.js as the runtime environment for the MCP server, required for version 16 or higher.

  • Connects to Bear Notes' SQLite database to access and search notes content for retrieval and context enhancement.

Bear Notes MCP サーバー(RAG 搭載)

AIアシスタントでBear Notesの体験をさらに充実させたいと思いませんか?この小さなツールは、セマンティック検索とRAG(検索拡張生成)を使って、個人の知識ベースをAIシステムに接続します。

AIアシスタントに、単なるテキストマッチングではなく、メモの内容を実際に理解してもらいたかったので、これを作りました。自分で言うのもなんですが、結果はかなり素晴らしいです。

はじめる

設定は簡単です:

git clone [your-repo-url] cd bear-mcp-server npm install

スクリプトを実行可能にします (権限が重要になるため)。

chmod +x src/bear-mcp-server.js chmod +x src/create-index.js

まずはノートにインデックスをつける

始める前に、メモのベクトル埋め込みを作成する必要があります。

npm run index

注意:私のようにメモをよく取る人の場合、この処理には数分かかるかもしれません。メモをすべて数学的なベクトルに変換して意味を捉えているのです。実に巧妙な処理です😉。

構成

MCP 構成ファイルを更新します。

{ "mcpServers": { "bear-notes": { "command": "node", "args": [ "/absolute/path/to/bear-mcp-server/src/bear-mcp-server.js" ], "env": { "BEAR_DATABASE_PATH": "/Users/yourusername/Library/Group Containers/9K33E3U3T4.net.shinyfrog.net.bear/Application Data/database.sqlite" } } } }

🚨パスを実際のインストール場所に置き換えてください。残念ながら、例のパスをそのまま使用しても特典はありません。

何が特別なのでしょうか?

  • セマンティック検索:キーワードだけでなく、意味に基づいてメモを検索します。「生産性向上システム」と検索すると、GTDやポモドーロに関するメモが、その単語が正確に含まれていなくても見つかります。
  • RAG サポート: AI アシスタントは、明示的に言及していない場合でも、メモから関連するコンテキストを取得できるようになりました。
  • すべてローカル処理:すべてはあなたのマシン上で実行されます。データはコンピューターから出ず、APIキーは不要、インターネットへの依存もありません(初期設定後)。
  • 万全なフォールバック:何らかの理由でセマンティック検索が利用できない場合は、自動的に従来の検索にフォールバックします。万全を期しています。

仕組み

賢い点

このサーバーは、all-MiniLM-L6-v2 モデルを使用した transformers.js の Xenova 実装を使用します。

  • ノートの意味的エッセンスを捉える384次元ベクトルを作成します
  • すべての処理はローカルマシン上で行われます
  • 最初の起動はモデルをロードしている間は少し遅いかもしれませんが、その後は高速です。

流れ

  1. クエリはトランスフォーマーモデルを使用してベクトルに変換されます
  2. このベクトルは、あなたのノートの事前にインデックスされたベクトルと比較されます
  3. キーワードの正確な一致に関係なく、同様の意味を持つメモが返されます。
  4. AIアシスタントはこれらの関連メモを応答の文脈として利用します

プロジェクト構造

あまり複雑なことはありません。

bear-mcp-server/ ├── package.json ├── readme.md └── src/ ├── bear-mcp-server.js # Main MCP server ├── create-index.js # Script to index notes ├── utils.js # Utility functions ├── lib/ # Additional utilities and diagnostic scripts │ └── explore-database.js # Database exploration and diagnostic tool ├── note_vectors.index # Generated vector index (after indexing) └── note_vectors.json # Note ID mapping (after indexing)

AIアシスタントで利用可能なツール

このサーバーに接続する AI アシスタントは次のツールを使用できます。

  1. search_notes : クエリに一致するノートを検索する
    • パラメータ: query (必須)、 limit (オプション、デフォルト: 10)、 semantic (オプション、デフォルト: true)
  2. get_note : IDで特定のノートを取得する
    • パラメータ: id (必須)
  3. get_tags : Bear Notes で使用されているすべてのタグを一覧表示します
  4. retrieve_for_rag : クエリと意味的に類似したメモを、特に RAG 用にフォーマットして取得します。
    • パラメータ: query (必須)、 limit (オプション、デフォルト: 5)

要件

  • Node.js バージョン 16 以上
  • macOS用Bear Notes
  • MCP対応AIアシスタントクライアント

制限事項と注意事項

  • Bear Notes への読み取り専用アクセス (貴重なメモは変更されません)
  • macOSのみ(WindowsとLinuxの方はごめんなさい)
  • 大量の新しいノートを追加した場合は、 npm run indexでインデックスを再構築する必要があります。
  • 最初の起動は、埋め込みモデルがロードされる間にやかんが沸騰するのを待つようなものです

トラブルシューティング

何か問題が起きた場合:

  1. Bearデータベースパスを再確認してください
  2. npm run indexでインデックス作成プロセスを実行したことを確認してください。
  3. Bear Notesデータベースの権限を確認する
  4. サーバースクリプトが実行可能であることを確認する
  5. ログ内のエラーメッセージを探す

不安な場合は、電源をオフにしてからオンにしてみてください。意外と頻繁に動作します。

ライセンス

MIT (自由にいじったり、共有したり、改善したりしてください)

-
security - not tested
F
license - not found
-
quality - not tested

セマンティック検索と RAG (検索拡張生成) を使用して Bear Notes を AI アシスタントに接続し、AI システムが単なるキーワード マッチングではなく意味のある検索を通じて個人の知識ベースにアクセスして理解できるようにします。

  1. Getting Started
    1. First Things First: Index Your Notes
      1. Configuration
        1. What Makes This Special?
          1. How It Works
            1. The Clever Bits
            2. The Flow
          2. Project Structure
            1. Available Tools for AI Assistants
              1. Requirements
                1. Limitations & Caveats
                  1. Troubleshooting
                    1. License
                      ID: 4ok9u922cb