内容
# Cider MCP 服务器
一款 [MCP](https://modelcontextprotocol.io) 服务器,允许 Claude 通过 Cider 的 RPC API 控制 Apple Music 的播放。搜索目录,开始播放,管理队列,评分曲目 — 所有这些都来自对话。
为与 [Claude Desktop](https://claude.ai/download) 和 [Claude Code](https://docs.anthropic.com/en/docs/claude-code) 一起使用而构建。
## 前置条件
- **Node.js** 18+
- **[Cider](https://cider.sh)** (v2)运行并启用 RPC
- 一个 **应用令牌** — 在 Cider 的设置中配置,在“连接性”下找到“管理外部应用程序访问”
## 安装
```bash
git clone https://github.com/thetokencarlos/cider-mcp-server.git
cd cider-mcp-server
npm install
cp .env.example .env
```
打开 `.env` 并粘贴您的 Cider 应用令牌:
```
CIDER_API_TOKEN=您的令牌
```
构建:
```bash
npm run build
```
## 在 Claude 中注册
### Claude Code
将其添加到您的项目或用户设置中(`claude mcp add`),或手动在 `.claude/settings.json` 中:
```json
{
"mcpServers": {
"cider": {
"command": "node",
"args": ["/绝对路径/to/cider-mcp-server/dist/index.js"]
}
}
}
```
### Claude Desktop
将其添加到您的配置文件中:
- **macOS**:`~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**:`%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"cider": {
"command": "node",
"args": ["/绝对路径/to/cider-mcp-server/dist/index.js"]
}
}
}
```
## 可用工具
| 工具 | 描述 |
|------|-------------|
| `cider_status` | 当前播放状态 — 曲目,艺术家,专辑,位置,音量,随机/重复 |
| `cider_search` | 在 Apple Music 中搜索专辑,歌曲,艺术家或播放列表 |
| `cider_play` | 通过 Apple Music ID 或 URL 播放内容 |
| `cider_queue_add` | 将内容添加到队列(下次播放或稍后播放) |
| `cider_playback_control` | 播放,暂停,切换,下一个,上一个,停止 |
| `cider_volume` | 获取或设置音量(0-1) |
| `cider_add_to_library` | 将当前播放的曲目添加到库中 |
| `cider_rate` | 评分当前曲目(-1 不喜欢,0 中立,1 喜欢) |
| `cider_queue` | 查看当前播放队列 |
## 示例
```
您: 现在正在播放什么?
Claude: [调用 cider_status] 目前没有正在播放的曲目。
您: 搜索“Barry Can't Swim”的“When Will We Land”
Claude: [调用 cider_search] 找到了 — “When Will We Land?”(2023),共 11 首曲目。
您: 播放它
Claude: [调用 cider_play] 现在正在播放。
```
## 架构
- **`src/cider-client.ts`** — Cider RPC API 的类型化 HTTP 客户端。无 MCP 感知。
- **`src/index.ts`** — MCP 服务器,带有连接到客户端的工具定义。
- 使用 `@modelcontextprotocol/sdk` 和 stdio 传输。
- 搜索使用 Cider 的 Apple Music API 直通(`/api/v1/amapi/run-v3`)并将响应展平为干净的对象。
## 许可证
MIT