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.jsRelated MCP server: Bear MCP Server
まずはノートにインデックスをつける
始める前に、メモのベクトル埋め込みを作成する必要があります。
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次元ベクトルを作成します
すべての処理はローカルマシン上で行われます
最初の起動はモデルをロードしている間は少し遅いかもしれませんが、その後は高速です。
流れ
クエリはトランスフォーマーモデルを使用してベクトルに変換されます
このベクトルは、あなたのノートの事前にインデックスされたベクトルと比較されます
キーワードの正確な一致に関係なく、同様の意味を持つメモが返されます。
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 アシスタントは次のツールを使用できます。
search_notes : クエリに一致するノートを検索する
パラメータ:
query(必須)、limit(オプション、デフォルト: 10)、semantic(オプション、デフォルト: true)
get_note : IDで特定のノートを取得する
パラメータ:
id(必須)
get_tags : Bear Notes で使用されているすべてのタグを一覧表示します
retrieve_for_rag : クエリと意味的に類似したメモを、特に RAG 用にフォーマットして取得します。
パラメータ:
query(必須)、limit(オプション、デフォルト: 5)
要件
Node.js バージョン 16 以上
macOS用Bear Notes
MCP対応AIアシスタントクライアント
制限事項と注意事項
Bear Notes への読み取り専用アクセス (貴重なメモは変更されません)
macOSのみ(WindowsとLinuxの方はごめんなさい)
大量の新しいノートを追加した場合は、
npm run indexでインデックスを再構築する必要があります。最初の起動は、埋め込みモデルがロードされる間にやかんが沸騰するのを待つようなものです
トラブルシューティング
何か問題が起きた場合:
Bearデータベースパスを再確認してください
npm run indexでインデックス作成プロセスを実行したことを確認してください。Bear Notesデータベースの権限を確認する
サーバースクリプトが実行可能であることを確認する
ログ内のエラーメッセージを探す
不安な場合は、電源をオフにしてからオンにしてみてください。意外と頻繁に動作します。
ライセンス
MIT (自由にいじったり、共有したり、改善したりしてください)