笔记管理服务器

Bear MCP Server是一个模型上下文协议服务器,提供对Bear笔记的访问,允许AI助手搜索和读取笔记。

  • by quanticsoul4772
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 quanticsoul4772/bear-mcp

使用说明

熊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

安全

这台服务器实施了多项安全措施:

  1. 仅限本地访问 - 通过标准输入输出运行,不可通过网络访问
  2. 过滤后的结果 - 已删除的笔记会被自动排除

故障排除

“未找到Bear数据库”

  • 确保Bear已安装并且至少已打开过一次
  • 检查数据库是否存在于 ~/Library/Group Containers/9K33E3U3T4.net.shinyfrog.bear/Application Data/database.sqlite
  • 使用 --db-path 如果您的数据库位于其他位置,请选择此选项

“权限被拒绝”

  • 服务器需要对Bear数据库的读取访问权限
  • 检查数据库文件的文件权限

未返回结果

  • 确认你在Bear中有笔记
  • 检查笔记是否不在回收站中
  • 确保搜索词拼写正确

做出贡献

欢迎投稿!请:

  1. 克隆该仓库
  2. 创建一个特性分支
  3. 为新功能添加测试
  4. 确保所有测试都通过
  5. 提交拉取请求

许可证

MIT 许可证 - 详情请参阅 LICENSE 文件

致谢

  • 受……的启发 熊应用 团队
  • 感谢MCP社区提供的协议和SDKs(软件开发工具包)
  • 基于其他MCP服务器实现中的模式

免责声明

此服务器与Bear(Shiny Frog Ltd.)无任何隶属或支持关系。它是一个独立的工具,可访问Bear数据库。