内容
indrop.io MCP[](https://github.com/nnno/my-raindrop-io-mcp-server/actions/workflows/ci.yml)
[Raindrop.io](https://raindrop.io) 的书签操作 [Model Context Protocol (MCP)](https://modelcontextprotocol.io) 服务器,用 Go 实现。
## 提供工具
### 书签
| 工具 | 描述 | 注解 |
|--------|------|----------------|
| `search_bookmarks` | 搜索书签 |
| `get_bookmark` | 通过 ID 获取详情读 |
| `create` | 创建新的书签 | — |
| `update_bookmark` | 更新现有的书签 | — |
| `delete_bookmark 删除书签 | 危险 |
### 收藏
| 工具 | 描述 | 注解 |
|--------|------|----------------|
| `list_collections` | 获取收藏列表 | 只读 |
| `create_collection` | 创建新的收藏 | — |
|` | 更新现有的收藏 | — |
##### 前提条件
-indrop.io 测试](https://developer.raindrop.io/v1/authentication/token)
### 安装
安装脚本(放置在 `~/.local/bin/` 目录下):
curl -fsSL https://raw.githubusercontent.com/nnno/my-ra-io-mcp-server/main/install.sh | sh
```
对于 Go 用户(需要 Go 1.25+):
```sh
go install github.com/nnno/my-raindrop-io-mcp-server@latest
```
构建(需要 Go 1.25+):
```sh
make install
```
### MCP 客户端配置
对于 Claude Desktop(`claude_desktop_config.json`):
```json
"mcpServers "raind {
"command":local/bin/my-ra-io-mcp-server",
"env": {
ROP_TOKEN": "your-test-token"
}
}
```
对于 Claude Code:
```sh
mcp add raindrop ~/.local/binindrop-io-mcpe RAINDROPyour-test-token
```
## 架构
采用基于分层架构。
```
main.go # 入(DI・stdio 启动)
internal/
├── domain/
├── entity/ # Bookmark, Collection, DomainError └── repository/ # 接口定义
│ └── mock/ # mockgen 生成的模拟对象
├── application/
│ └── usecase/ # 验证・业务逻辑
├── infra/
│ └── raindrop/ indrop.io REST API 客户端
└── handler # MCP 工具注册・请求转换
```
依赖方向:`handler → usecase → (domain/entity + ← infra/raindrop`
## 开发
```sh
make build # 构建(嵌入版本信息)
make test # 测试
make test-race # 测试(带竞态检测)
make lint # 代码make mock # 重新生成模拟对象
```
## 许可证
MIT