使用说明
熊MCP服务器
一个模型上下文协议(MCP)服务器,用于访问您的Bear笔记。此服务器允许像Claude这样的AI助手搜索和阅读您的Bear笔记。
特点
读取操作
- 按标题、内容或标签搜索笔记
- 通过标题或ID打开特定笔记
- 浏览所有带有笔记数量的标签
- 按标签查看笔记以探索相关内容
- 直接执行 SQLite 查询以快速获得结果
写操作
- 创建带有标签和置顶选项的新笔记
- 在现有笔记中添加文本(追加、前置或替换)
- 将笔记移至垃圾桶
- 在所有笔记中重命名标签
- 从所有笔记中删除标签
安装
选项1:从npm安装(发布后)
npm install -g @mcp/bear-server
选项2:从源代码安装
# Clone the repository
git clone https://github.com/quanticsoul4772/bear-mcp
cd bear-mcp
# Install dependencies
npm install
# Build the project
npm run build
# Install globally
npm link
配置
对于Claude Desktop
在你的配置文件中添加以下内容: ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"bear-mcp": {
"command": "node",
"args": [
"--max-old-space-size=4096",
"--expose-gc",
"--max-semi-space-size=64",
"/Users/yourusername/Projects/mcp-servers/bear-mcp/dist/index.js"
],
"type": "stdio"
}
}
}
自定义数据库路径
如果您的Bear数据库位于非标准位置,您可以指定其位置:
{
"mcpServers": {
"bear-mcp": {
"command": "node",
"args": [
"--max-old-space-size=4096",
"--expose-gc",
"--max-semi-space-size=64",
"/path/to/bear-mcp/dist/index.js",
"--db-path",
"/custom/path/to/database.sqlite"
],
"type": "stdio"
}
}
}
可用工具
open_note
通过标题或唯一ID打开特定的笔记。
示例用法:
- “打开我名为‘项目创意’的笔记”
- “给我看看ID为123ABC-456DEF的便签”
search_notes
搜索包含特定术语或标签的笔记。
示例用法:
- “搜索关于机器学习的笔记”
- “查找所有标记为#工作 的笔记”
- 在标签为#documentation的笔记中搜索“API”
get_tags
列出你Bear笔记中的所有标签,并按频率排序。
示例用法:
- “我在Bear里用什么标签?”
- “给我展示我所有的熊标签”
open_tag
显示所有带有特定标签的笔记。
示例用法:
- “显示所有标记为#recipes的笔记”
- “列出带有#会议标签的笔记”
get_recent_notes
获取最近修改的笔记。
示例用法:
- “给我显示最近的10条笔记”
- “我今天修改了哪些笔记?”
get_pinned_notes
获取所有已固定(或置顶)的笔记。
示例用法:
- “显示我已固定的通知”
- “我钉了哪些便签?”
get_note_stats
获取关于您的Bear笔记的统计数据。
示例用法:
- “我有多少张钞票?”
- “给我看看我的Bear笔记统计”
get_notes_by_date
获取特定日期范围内的笔记。
示例用法:
- “给我看看上周的笔记”
- “查找1月1日至1月31日之间创建的笔记”
create_note
在Bear中创建一个新笔记。
示例用法:
- “创建一个标题为‘会议记录’的笔记,内容为‘讨论了项目时间表’”
- “创建一个带有‘工作、项目’标签的笔记,并将其固定”
add_text
在现有笔记中添加文本(追加、前置或替换)。
示例用法:
- “在ID为123ABC的备注中添加‘后续任务’”
- “在我的会议记录前加上今天的日期”
- “将笔记456DEF的内容替换为新文本”
trash_note
将笔记移至垃圾桶。
示例用法:
- “丢弃ID为789GHI的便条”
- “删除我标题为‘旧草稿’的笔记”
rename_tag
在所有笔记中重命名一个标签。
示例用法:
- 将标签“todo”重命名为“tasks”
- “将#work标签改为#office”
delete_tag
从所有笔记中删除一个标签。
示例用法:
- “删除‘临时’标签”
- “从所有笔记中移除#old-project标签”
发展
先决条件
- Node.js 18 或更高版本
- 在macOS上安装了Bear应用
- 为贡献所需的TypeScript知识
从源代码构建
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run in development mode
npm run dev
# Watch for changes
npm run watch
项目结构
bear-mcp/
├── src/
│ ├── index.ts # Main server entry point
│ ├── bearDB.ts # Database connection and queries
│ ├── types.ts # TypeScript type definitions
│ └── tools/ # Tool implementations
│ ├── index.ts
│ ├── openNote.ts
│ ├── searchNotes.ts
│ ├── getTags.ts
│ └── openTag.ts
├── dist/ # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── README.md
安全
这台服务器实施了多项安全措施:
- 仅限本地访问 - 通过标准输入输出运行,不可通过网络访问
- 过滤后的结果 - 已删除的笔记会被自动排除
故障排除
“未找到Bear数据库”
- 确保Bear已安装并且至少已打开过一次
- 检查数据库是否存在于
~/Library/Group Containers/9K33E3U3T4.net.shinyfrog.bear/Application Data/database.sqlite - 使用
--db-path如果您的数据库位于其他位置,请选择此选项
“权限被拒绝”
- 服务器需要对Bear数据库的读取访问权限
- 检查数据库文件的文件权限
未返回结果
- 确认你在Bear中有笔记
- 检查笔记是否不在回收站中
- 确保搜索词拼写正确
做出贡献
欢迎投稿!请:
- 克隆该仓库
- 创建一个特性分支
- 为新功能添加测试
- 确保所有测试都通过
- 提交拉取请求
许可证
MIT 许可证 - 详情请参阅 LICENSE 文件
致谢
- 受……的启发 熊应用 团队
- 感谢MCP社区提供的协议和SDKs(软件开发工具包)
- 基于其他MCP服务器实现中的模式
免责声明
此服务器与Bear(Shiny Frog Ltd.)无任何隶属或支持关系。它是一个独立的工具,可访问Bear数据库。
