内容
# raindrop-mcp
[](https://github.com/kunal-singh/raindrop-mcp/actions/workflows/ci.yml)
一款给予AI助手完全访问您 [Raindrop.io](https://raindrop.io) 书签的 [模型上下文协议](https://modelcontextprotocol.io) (MCP) 服务器 — 搜索、保存、组织和总结,全都通过自然对话。
---
## 为什么选择 raindrop-mcp?
大多数 Raindrop MCP 服务器都提供原始API访问就算完事了。而这款服务器则更进一步。
**提示** 是其突出功能。它们教会您的AI如何 _思考_ 您的书签 — 而不仅仅是获取它们。在搜索之前,AI会将您的查询重写为更好的术语。在保存之前,它会检查重复项并建议符合您现有分类法的标签。它可以总结整个阅读列表,匹配模糊的收藏名称,并生成每周摘要 — 所有这些都来自纯语言请求。
**缓存** 让一切保持快速和API友好。收藏会被本地缓存并自动刷新,因此重复请求不会轰炸 Raindrop API 或耗尽您的速率限制。
---
## 开始使用
**要求:** Node.js ≥ 22,pnpm(或npm),Raindrop.io 账户。
**获取您的 Raindrop API令牌:** 登录 → [设置 → 集成 → API](https://app.raindrop.io/settings/integrations) → 创建或复制您的令牌。
**安装:**
```bash
git clone https://github.com/kunal-singh/raindrop-mcp.git
cd raindrop-mcp
pnpm install && pnpm build
```
---
<details>
<summary><strong>配置您的MCP客户端</strong></summary>
服务器通过stdio进行通信。 将您的MCP客户端指向已构建的二进制文件,并通过环境变量传递您的令牌。
### Claude 桌面版
编辑您的配置文件:
- **macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"raindrop": {
"command": "/path/to/node",
"args": ["/path/to/raindrop-mcp/dist/main.js"],
"env": {
"RAINDROP_TOKEN": "your-raindrop-api-token"
}
}
}
}
```
### Cursor
添加到 `.cursor/mcp.json` 或 Cursor 设置 → MCP:
```json
{
"mcpServers": {
"raindrop": {
"command": "node",
"args": ["/path/to/raindrop-mcp/dist/main.js"],
"env": {
"RAINDROP_TOKEN": "your-raindrop-api-token"
}
}
}
}
```
### 任意其他MCP客户端
| 选项 | 值 |
| ------- | ------------------------------------ |
| 命令 | `node` |
| 参数 | `/path/to/raindrop-mcp/dist/main.js` |
| 环境变量 | `RAINDROP_TOKEN=your-api-token` |
可选:设置 `LOG_LEVEL` 为 `debug`、`info` 或 `error`(默认:`info`)。
</details>
---
## 工具
您的AI可以直接对您的Raindrop账户执行的操作。
### 书签
| 工具 | 参数 |
| ------------------ | --------------------------------------------------------------- |
| `search_bookmarks` | `query`、`collectionId`、`sort`、`page`、`perpage` |
| `create_bookmark` | `link` (必填)、`title`、`excerpt`、`tags`、`collectionId` |
| `update_bookmark` | `id` (必填)、`title`、`excerpt`、`tags`、`collectionId` |
| `delete_bookmark` | `id` (必填) |
### 收藏
| 工具 | 参数 |
| ------------------- | -------------------------------------- |
| `list_collections` | — |
| `create_collection` | `title` (必填)、`view`、`public` |
| `delete_collection` | `id` (必填) |
### 标签
| 工具 | 参数 |
| ---------- | -------------- |
| `get_tags` | `collectionId` |
---
## 资源
服务器将您的Raindrop数据作为可读资源暴露给AI,以便进行上下文处理:
- **`raindrop://bookmarks/all`** — 您的所有书签
- **收藏** — 您的收藏列表(缓存,自动刷新)
- **标签** — 您的完整标签分类法(缓存,自动刷新)
---
## 提示
> 这是raindrop-mcp超越简单API包装的地方。
提示是智能工作流,引导AI完成多步骤任务 — 应用领域逻辑、转换输入和返回结构化输出。您可以用自然语言触发它们;AI处理其余部分。
---
### `augment_search_query`
在调用API之前,将您的粗略查询重写为优化的搜索术语。去除填充词,展开缩写(ML → 机器学习,JS → JavaScript),并分解复合查询。
**使用场景:** 简单搜索结果不佳时。
```
使用augment_search_query进行“关于加快应用开发的资料”
```
```
我正在寻找有关分布式系统的笔记 — 先增强我的查询,然后再搜索
```
```
查找“我书签的那个React Hooks相关的内容”
```
---
### `summarise_bookmarks`
获取并总结书签内容。单个链接获取丰富、详细的总结。多个链接(最多5个)每个获取一个聚焦的段落。获取失败会在内联中注明,如果您发送超过5个,则会告诉您它选择了哪些。
**单个链接:**
```
为我总结以下内容:{ "title": "Attention Is All You Need", "url": "https://arxiv.org/abs/1706.03762" }
```
**多个链接:**
```
在机器学习收藏中搜索我的AI书签,然后总结排名前5的
```
```
查找我的“系统设计”标签书签并总结它们,重点关注可扩展性模式
```
**超出限制(测试上限):**
```
获取我的前端收藏中的所有书签并总结它们
```
---
### `match_collection`
将模糊或非正式的收藏名称解析为正确的名称。行为随置信度调整 — 明显的匹配会默默进行,不确定的匹配会标记,模糊的匹配会显示顶部候选项供您选择。
| 置信度 | 行为 |
| ---------- | ---------------------------------------- |
| 高 | 默默进行 — 明确匹配 |
| 中 | 返回匹配结果,标记以供确认 |
| 低 | 列出2-3个候选项,要求您选择 |
```
将https://github.com/vitejs/vite保存到我的JavaScript工具收藏中
```
```
将此内容保存到我的“开发资料”收藏中
```
```
将https://arxiv.org/abs/1706.03762保存到我的论文文件夹中
```
---
### `suggest_tags`
查看您现有的标签分类法,并建议哪些标签适合新的书签 — 优先重复使用而不是混乱。只有当没有现有的标签适合时,才会提出新标签。
```
我正在保存https://css-tricks.com/a-guide-to-flexbox/ — 为其建议标签
```
```
为“PostgreSQL大型表索引策略”建议标签,尽可能重复使用我的现有标签
```
```
我正在保存有关“在自定义数据集上微调LLM”的内容 — 我应该使用哪些标签?
```
---
### `weekly_digest`
将最近保存的书签按收藏或主题分组,编写每个分组的简短主题摘要,并以“亮点”部分收尾,列出2-3个最有趣的项目。
```
获取我最近7天的所有书签,并给我一个每周摘要
```
```
在研究和AI收藏中运行weekly_digest,获取我本周保存的所有内容
```
```
我想要2026年2月我的最近保存的摘要
```
---
### `detect_duplicates`
检查您即将保存的URL或主题是否已存在于您的书签中。将匹配项分类为 **完全匹配** (相同URL或内容)、**近似重复** (实质上重叠)或 **相关** (主题相似但不同)。
```
在我保存https://martinfowler.com/articles/microservices.html之前,检查我是否已经有类似的内容
```
```
我想为“React性能优化”添加书签 — 我是否已经有重复项?
```
```
在保存之前检查重复项:“Clean Code by Robert Martin summary”
```
---
### 链式工作流
真正的强大之处在于在单个请求中组合提示。如果链式调用中断,通常意味着一个提示的输出格式与下一个提示的预期输入不匹配 — 一个有用的调试信号。
**搜索 → 总结:**
```
搜索我的“ML基础设施”书签,先增强查询,然后总结排名前5的,关注生产部署
```
**完整保存工作流:**
```
我想要将https://roadmap.sh/system-design保存到我的架构收藏中 — 先检查重复项,建议标签,然后如果不是重复项且匹配收藏名称,则保存它
```
**摘要 → 分析:**
```
给我本周我的AI收藏的摘要,然后告诉我这些书签中最常见的标签是什么
```
> **提示:** 在链接前验证每个提示。如果链式调用失败,错误将指出需要调整的步骤。
---
## 开发
```bash
pnpm install
pnpm dev # 监视模式
pnpm build # 生产构建
pnpm clean # 删除dist/
pnpm inspect # 运行MCP检查器进行调试
```
## 许可证
MIT