笔记查询服务

一个为Bear笔记应用提供的只读模型上下文协议(MCP)服务器,支持全文搜索、笔记详情获取和标签浏览功能。

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

使用说明

熊mcp

用于的只读模型上下文协议(MCP)服务器 熊 笔记,建立在 熊查询。此服务器允许像Claude这样的人工智能助手搜索、检索和探索您的Bear笔记库。

特性

  • 搜索笔记 -使用Bear的数据库索引进行高效的全文搜索
  • 获取笔记详细信息 -按ID直接查找钞票,无需提取所有钞票
  • 列表标记 -浏览Bear数据库中的所有标签
  • 只读访问 -仅限安全、非破坏性的查询
  • 快速SQLite访问 -以最小的开销优化查询
  • 空安全 -正确处理缺少内容或元数据的笔记

可用工具

search_notes

使用可选过滤器按标题或内容在Bear中搜索笔记。使用Bear的数据库搜索功能进行高效查询。

参数:

  • query (可选):搜索文本以匹配笔记标题和内容。如果提供,则执行高效的数据库搜索。如果省略,则返回最近的笔记。
  • pinned_only (可选):仅返回钉住的钞票
  • include_trashed (可选):在结果中包含被丢弃的笔记(默认值:false)
  • include_archived (可选):在结果中包含存档笔记(默认值:false)
  • limit (可选):返回的最大结果数(默认值:搜索50,列表10)

示例:

// Search for notes containing "rust programming"
{
  "query": "rust programming",
  "limit": 10
}

// List pinned notes only
{
  "pinned_only": true
}

// Get all notes including archived
{
  "include_archived": true,
  "limit": 100
}

get_note

通过特定笔记的唯一ID获取其全部内容。使用直接数据库查找进行快速检索。

参数:

  • note_id (必填):要检索的笔记的唯一标识符(UUID)

例子:

{
  "note_id": "ABC123-DEF456-GHI789"
}

注: 此方法通过ID执行直接查找,并且不会获取所有笔记,因此非常高效。

list_tags

列出Bear数据库中所有带有修改日期的标签。

参数: 无

安装

先决条件

  • 安装在macOS上的Bear notes应用程序
  • Claude Desktop或其他兼容MCP的客户端

选项1:从crates.io安装(推荐)

cargo install bear-mcp

二进制文件将安装到 ~/.cargo/bin/bear-mcp (如果你安装了Rust,它应该已经在你的PATH中了)。

选项2:从源头构建

# Clone the repository
git clone https://github.com/jakeswenson/bear-mcp
cd bear-mcp

# Build the project
cargo build --release

# The binary will be at target/release/bear-mcp

配置

克劳德桌面

将服务器添加到Claude Desktop配置文件中:

地点: ~/Library/Application Support/Claude/claude_desktop_config.json

如果通过货物安装:

{
  "mcpServers": {
    "bear": {
      "command": "/Users/YOUR_USERNAME/.cargo/bin/bear-mcp"
    }
  }
}

替换 YOUR_USERNAME 使用您的实际用户名。你可以通过跑步找到确切的路径 which bear-mcp 在你的终端。

如果从源代码构建:

{
  "mcpServers": {
    "bear": {
      "command": "/Users/YOUR_USERNAME/path/to/bear-mcp/target/release/bear-mcp"
    }
  }
}

替换 /Users/YOUR_USERNAME/path/to/bear-mcp 使用克隆存储库的实际路径。

环境变量

服务器使用 RUST_LOG 日志配置的环境变量:

{
  "mcpServers": {
    "bear": {
      "command": "/Users/YOUR_USERNAME/.cargo/bin/bear-mcp",
      "env": {
        "RUST_LOG": "info"
      }
    }
  }
}

日志级别:

  • error -只有错误
  • warn -警告和错误
  • info -信息性消息(默认)
  • debug -详细调试
  • trace -非常冗长的输出

日志将写入stderr,并显示在Claude Desktop的日志中。

用法示例

配置后,您可以让Claude与您的Bear笔记进行交互:

  • “在我的熊笔记中搜索有关Rust的任何信息”
  • “显示我的固定笔记”
  • “列出我的所有Bear标签”
  • “获取注释ABC123-DEF456-GHI789的全部内容”
  • “查找未存档的机器学习笔记”

运作原理

服务器以只读模式直接连接到Bear的SQLite数据库:

  • 数据库位置: ~/Library/Group Containers/9K33E3U3T4.net.shinyfrog.bear/Application Data/database.sqlite
  • 访问模式: SQLITE_OPEN_READ_ONLY 随着 PRAGMA query_only = ON
  • 连接策略: 为避免锁定问题,每个查询创建的连接时间较短

服务器使用 熊查询 图书馆提供:

  • Bear核心数据结构的标准化视图
  • 使用数据库索引高效搜索API
  • 对缺失或不完整数据的零安全处理
  • 按ID直接查找钞票,无需提取所有钞票

发展

在发展中奔跑

# Run with debug logging
RUST_LOG=debug cargo run

测试

您可以使用MCP检查器或通过管道传输JSON-RPC消息来测试服务器:

# Example: Call the list_tags tool
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_tags"}}' | cargo run

建筑

  • src/main.rs -入口点,设置日志记录和stdio传输
  • src/bear_service.rs -带工具定义的MCP服务器实现
  • Cargo.toml -依赖关系和构建配置

关键依赖关系

局限性

  • 只读: 无法创建、修改或删除笔记
  • 仅限macOS: Bear是一款macOS/iOS应用程序;此服务器需要macOS
  • 无实时更新: 服务器按需查询数据库,而不监视更改
  • 必须安装熊: 需要Bear的SQLite数据库存在

故障排除

“初始化Bear数据库失败”

  • 确保Bear已安装,并且您至少打开过一次
  • 检查数据库文件是否存在: ~/Library/Group Containers/9K33E3U3T4.net.shinyfrog.bear/Application Data/database.sqlite
  • 验证您是否具有数据库文件的读取权限

服务器未出现在Claude中

  • 检查路径 claude_desktop_config.json 是正确和绝对的
  • 确保二进制文件可执行: chmod +x target/release/bear-mcp
  • 修改配置后重新启动Claude Desktop
  • 查看克劳德的日志: ~/Library/Logs/Claude/

空结果

  • 确认您在Bear中有笔记
  • 检查笔记是否被丢弃/存档,并相应地调整搜索参数
  • 尝试 list_tags 首先确认数据库连接

许可证

[在此处添加您的许可证]

贡献

[在此处添加贡献指南]

致谢

  • 内置 rmcp -Rust MCP SDK
  • 用途 熊查询 用于数据库访问
  • 受模型上下文协议规范的启发