Beeper MCP服务器
一种模型上下文协议(MCP)服务器,在macOS上提供对Beeper消息的只读访问。此服务器允许Claude Desktop和其他MCP客户端搜索和读取您本地的Beeper消息历史记录。
特性
- 只读访问 到本地Beeper SQLite和IndexedDB(LevelDB)数据库
- 自动发现 常见macOS位置的Beeper数据库
- 支持双存储格式:SQLite和IndexedDB/LevelDB
- 跨版本兼容性 具有不同的Beeper/Element数据库模式
- 三个MCP工具:
- list_conversations:使用元数据查看最近的对话 - read_messages:阅读特定对话中的消息 - search_messages:搜索所有邮件内容
- 注重隐私:无网络请求,无数据持久性,仅本地操作
- 安全:SQL注入保护,只读数据库连接
快速开始
先决条件
- Python 3.8或更高版本
- 安装在macOS上的Beeper桌面应用程序
- Claude桌面(用于集成)
- 对于IndexedDB支持:LevelDB库(随附安装
brew install leveldb)
安装
- 克隆此存储库:
git clone https://github.com/yourusername/beeper-mcp-server.git
cd beeper-mcp-server- 安装依赖项:
pip install -r requirements.txt- 测试服务器:
python main.py服务器应启动并显示: Starting Beeper MCP server...
按Ctrl+C停止。
Claude桌面集成
- 打开克劳德桌面设置
- 导航到开发人员→ 模型上下文协议
- 添加具有以下配置的新MCP服务器:
{
"beeper": {
"command": "python",
"args": ["/path/to/beeper-mcp-server/main.py"]
}
}替换 /path/to/beeper-mcp-server 使用克隆此存储库的实际路径。
- 重新启动克劳德桌面
- 寻找🔌 图标确认服务器已连接
使用示例
与Claude Desktop集成后,您可以使用以下命令:
列出最近的对话
问克劳德:“用蜂鸣器工具列出我最近的对话”
从对话中读取消息
询问克劳德:“阅读对话\[conversation_id\]中的最后20条消息”
搜索邮件
问克劳德:“在我的Beeper邮件中搜索‘明天开会’”
配置
服务器使用 config.json 用于配置。默认设置:
{
"database_paths": [
"~/Library/Application Support/Beeper",
"~/Library/Application Support/Beeper/IndexedDB",
"~/.config/Beeper",
"~/Library/Application Support/Element",
"~/.config/Element"
],
"max_results": 50,
"log_level": "INFO"
}自定义数据库路径
如果Beeper安装在非标准位置,请将路径添加到 database_paths 在……里面 config.json.
环境变量
您还可以通过环境变量设置数据库路径:
export BEEPER_DB_PATH="/custom/path/to/beeper"
python main.py故障排除
服务器无法启动
- 确保已安装Python 3.8+:
python --version - 检查是否安装了所有依赖项:
pip install -r requirements.txt - 验证文件是否具有执行权限:
chmod +x main.py
未找到对话
- 确保Beeper桌面应用程序已被使用并具有消息历史记录
- 检查蜂鸣器是否安装在默认位置之一
- 尝试将Beeper安装路径添加到
config.json - 检查日志以了解数据库发现详细信息
- 对于IndexedDB:查找
.indexeddb.leveldb应用程序支持中的目录
权限错误
- 服务器只需要读取Beeper数据库
- 在macOS上,您可能需要在“系统首选项”中授予终端/Python磁盘访问权限→ 安全与隐私
找不到数据库
运行测试脚本以检查数据库发现:
python test_server.py测试
运行附带的测试实用程序:
# Test database discovery
python test_server.py --discover
# Test with sample data
python test_server.py --sample
# Full integration test
python test_server.py --full安全说明
- 只读:所有数据库连接都是只读的
- 仅限本地:无网络请求或外部通信
- 没有毅力:不缓存或存储任何数据
- 输入验证:所有用户输入都经过验证和参数化
- SQL注入保护:全程使用参数化查询
发展
项目结构
beeper-mcp-server/
├── main.py # MCP server entry point
├── beeper_reader.py # Database access logic
├── requirements.txt # Python dependencies
├── config.json # Configuration
├── README.md # This file
└── test_server.py # Testing utilities添加新功能
- 数据库查询:添加到
beeper_reader.py - 新的MCP工具:注册
main.py - 配置选项:更新
config.json和_load_config()
调试
启用调试日志记录:
{
"log_level": "DEBUG"
}或者通过命令行:
python main.py --debug已知限制
- 仅限macOS(使用macOS特定路径)
- 只读访问(按设计)
- 仅限于本地Beeper安装
- 消息格式可能因Beeper版本而异
- IndexedDB支持需要安装多层库和系统LevelDB
贡献
欢迎拉取请求!拜托:
- 保持只读操作
- 为新功能添加测试
- 更新文档
- 遵循现有代码样式
许可证
MIT许可证-有关详细信息,请参阅许可证文件
支持
对于问题或疑问:
- 检查上面的故障排除部分
- 查看调试日志
- 在GitHub上打开一个问题
