想要通过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密钥,也不依赖互联网(初始设置后)。
优雅的回退机制:如果由于某种原因无法使用语义搜索,它会悄悄地回退到传统的搜索。双保险。
该服务器使用Xenova实现的transformers.js以及all-MiniLM-L6-v2模型:
这里没有什么太复杂的内容:
bear-mcp-server/
├── package.json
├── readme.md
└── src/
├── bear-mcp-server.js # 主MCP服务器
├── create-index.js # 索引笔记的脚本
├── utils.js # 工具函数
├── lib/ # 额外的工具和诊断脚本
│ └── explore-database.js # 数据库探索和诊断工具
├── note_vectors.index # 生成的向量索引(索引后)
└── note_vectors.json # 笔记ID映射(索引后)
连接到此服务器的AI助手可以使用以下工具:
search_notes:查找与查询匹配的笔记
query(必需),limit(可选,默认值:110),semantic(可选,默认值:true)get_note:通过ID获取特定笔记
id(必需)get_tags:列出你在Bear Notes中使用的所有标签
retrieve_for_rag:获取与查询语义相似的笔记,特别为RAG格式化
query(必需),limit(可选,默认值:5)npm run index重建索引如果出现问题:
npm run index不确定时,尝试关闭再打开。比我们愿意承认的更有效。
喜欢容器吗?你也可以在Docker中运行所有内容。
docker build -t bear-mcp-server .
在任何有用的事情发生之前,你仍然需要运行索引步骤:
docker run \
-v /path/to/your/NoteDatabase.sqlite:/app/database.sqlite \
-e BEAR_DATABASE_PATH=/app/database.sqlite \
bear-mcp-server \
npm run index
🛠 替换
/path/to/your/NoteDatabase.sqlite为你实际的Bear数据库路径。
一旦完成索引,就可以启动了:
docker run \
-v /path/to/your/NoteDatabase.sqlite:/app/database.sqlite \
-e BEAR_DATABASE_PATH=/app/database.sqlite \
-p 8000:8000 \
bear-mcp-server
就这样——你的AI助手现在在一个容器中运行,并与你的笔记交流。
MIT(随意修改、分享和改进)