README
🚀 Anybox MCP 服务器
Anybox MCP 服务器是为适用于 macOS 的书签管理器 Anybox 打造的一个模型上下文协议(MCP)服务器。借助该服务器,Claude Desktop 及其他 MCP 客户端能够与你的 Anybox 书签实现交互。
✨ 主要特性
- 🔍 按关键词、标签、文件夹或收藏状态搜索书签
- 🏷️ 列出所有标签,包含标签 ID、名称和书签数量
- 📁 列出所有文件夹,包含文件夹 ID、名称和书签数量
- ➕ 保存新书签,可设置标签、文件夹、备注和收藏状态
- 🔗 与 Claude Desktop 直接集成,实现无缝书签管理
📦 安装指南
前提条件
- 已安装并运行 Anybox 的 macOS 系统
- Python 3.10 或更高版本
- Anybox API 密钥(获取方法见下文)
获取 Anybox API 密钥
- 打开 Anybox 应用程序。
- 前往 偏好设置 → 通用(或 设置 → 通用)。
- 复制显示的 API 密钥。
安装步骤
- 克隆或下载本仓库
cd ~/coding/anyboxTidier
- 创建虚拟环境并安装依赖项
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
- 设置 API 密钥 你需要在 Claude Desktop 配置中设置 API 密钥(见下文),无需全局导出。
💻 使用示例
与 Claude Desktop 配合使用
配置
选项 1:自动设置(推荐) 运行设置脚本,它将引导你完成配置:
./setup_claude_desktop.sh
此脚本将执行以下操作:
- 测试你的 Anybox API 连接
- 自动配置 Claude Desktop
- 验证一切是否正常工作
选项 2:手动配置
- 找到你的 Claude Desktop 配置文件:
- macOS 系统:
~/Library/Application Support/Claude/claude_desktop_config.json
- macOS 系统:
- 添加 MCP 服务器配置:
{
"mcpServers": {
"anybox": {
"command": "/Users/tommertron/coding/anyboxTidier/venv/bin/python",
"args": [
"/Users/tommertron/coding/anyboxTidier/anybox_mcp_server.py"
],
"env": {
"ANYBOX_API_KEY": "your-api-key-here"
}
}
}
}
重要提示:
- 将
/Users/tommertron/coding/anyboxTidier替换为你克隆此仓库的实际路径。 - 将
your-api-key-here替换为你实际的 Anybox API 密钥。 - 确保在
venv/bin目录中使用 Python 解释器的完整路径。
- 重启 Claude Desktop
可用工具
配置完成后,Claude 可以使用以下工具:
search_bookmarks
使用各种过滤器搜索书签。 参数:
query(可选):搜索关键词tag_id(可选):按标签 ID 过滤folder_id(可选):按文件夹 ID 过滤starred(可选):"yes" 或 "no"limit(可选):最大结果数(默认值:50) 示例提示:- "在我的 Anybox 中搜索关于 Python 的书签"
- "查找所有收藏的书签"
- "搜索 '工作' 文件夹中的书签"
list_tags
获取所有标签及其 ID 和书签数量。 示例提示:
- "列出我所有的 Anybox 标签"
- "我有哪些标签?"
list_folders
获取所有文件夹及其 ID 和书签数量。 示例提示:
- "列出我所有的 Anybox 文件夹"
- "我在 Anybox 中有哪些文件夹?"
save_bookmark
保存带有可选元数据的新书签。 参数:
url(必需):URL 或笔记内容comment(可选):关于书签的备注tag_ids(可选):标签 ID 数组folder_id(可选):文件夹 IDstarred(可选):布尔值(默认值:false) 示例提示:- "将 https://example.com 保存到 Anybox"
- "将此 URL 保存到 Anybox 并添加 '编程' 标签"
- "将 https://github.com 添加到我 Anybox 中的 '工作' 文件夹"
示例工作流程
以下是与 Claude Desktop 的典型对话示例:
你:"列出我所有的 Anybox 标签"
Claude:[使用 list_tags 工具]
"你有 15 个标签。以下是其中一些:编程、设计、研究..."
你:"搜索带有编程标签的书签"
Claude:[使用 list_tags 获取标签 ID,然后使用 search_bookmarks]
"找到 23 个带有编程标签的书签:
1. Python 文档 - https://docs.python.org
2. ..."
你:"将 https://github.com/anthropics/anthropic-sdk-python 保存到 Anybox 并添加编程标签"
Claude:[使用 list_tags 获取标签 ID,然后使用 save_bookmark]
"✅ 书签保存成功!"
📚 详细文档
故障排除
连接错误
错误信息:Connection refused 或 Error searching bookmarks
解决方案:
- 确保 Anybox 正在运行。
- 验证 API 是否在
http://127.0.0.1:6391上运行。 - 检查你的 API 密钥是否正确。
- 手动测试连接:
curl -H "x-api-key: YOUR_KEY" http://127.0.0.1:6391/tags
API 密钥问题
错误信息:401 Unauthorized 或 Incorrect API Key
解决方案:
- 从 Anybox 偏好设置中复制一个新的 API 密钥。
- 确保环境变量设置正确。
- 更新配置后重启 Claude Desktop。
Python/MCP 问题
错误信息:mcp module not found
解决方案:
pip install mcp httpx
错误信息:Python 版本不兼容 解决方案:确保安装了 Python 3.10 或更高版本:
python3 --version
API 参考
此服务器使用运行在 http://127.0.0.1:6391 上的 Anybox 本地 HTTP API。
已发现的端点
GET /search?q=&tag=&folder=&starred=&limit=- 搜索书签GET /tags- 列出所有标签GET /folders- 列出所有文件夹POST /save- 使用{note, comment, tags[], folder, starred}保存书签
身份验证
所有请求都使用带有你的 API 密钥的 x-api-key 标头。
开发
直接运行服务器
用于测试:
python3 anybox_mcp_server.py
服务器通过标准输入输出使用 MCP 协议进行通信。
添加新工具
要添加新功能,请按以下步骤操作:
- 在
list_tools()中添加工具定义。 - 在
call_tool()中实现处理程序。 - 将任何新的 API 方法添加到
AnyboxAPI类中。
📄 许可证
本项目采用 MIT 许可证。有关 Anybox API 文档来源,请参阅 claude.md。
贡献说明
欢迎贡献代码!如果你发现了额外的 Anybox API 端点或功能,请提交拉取请求。
注意:这是一个非官方集成。Anybox 未提供官方公开的 API 文档。此服务器基于对 Raycast 扩展和其他社区资源的逆向工程。
微信扫一扫