内容
# Tubist MCP 服务器
**还记得上一次关闭标签页或退出浏览器时,YouTube 音频突然停止的情形吗?肯定会感到愤怒。**
**Tubist 就是为避免这种情况而存在的。** 它是一款轻量级的 macOS 菜单栏播放器,可以独立于浏览器继续播放 YouTube 视频。
[Tubist 在 Mac 应用商店中免费提供](https://apps.apple.com/app/id1603180719)。
**此 MCP 服务器允许 Claude 和其他 AI 助手在收到来自助手 macOS 应用的请求时控制 Tubist。**
只需自然地提出请求:
- _播放比莉·艾利什的小型桌面音乐会_
- _在 YouTube 上为我找一些适合专注的爵士乐,并在 Tubist 中播放_
- _在 YouTube 上查找超级马里奥音乐的管弦乐版本,并在 Tubist 中播放_
## 功能
- 🎬 通过简单的请求播放任何 YouTube 视频... (除非它不再存在 😞)
- 🎵 适合作为背景音频(音乐会、播客、音乐)
- 🤖 通过 AI 助手以自然语言控制
- ⚡ 即时播放 - 只需请求,播放时不会有任何 UI 中断
## 前提条件 / 最低要求
- **macOS 13 (Ventura) 及以上**
- **Tubist v1.3** 已安装([Tubist 在 Mac 应用商店中免费提供](https://apps.apple.com/app/id1603180719))
- **Node.js** 18.0.0 或更高版本
- **Claude Desktop** 或另一个兼容 MCP 的客户端
## 安装
1. **克隆此仓库:**
```bash
git clone https://github.com/dkasaj/tubist-mcp-server.git
cd tubist-mcp-server
```
2. **安装依赖项:**
```bash
npm install
```
3. **配置 Claude Desktop:**
编辑 Claude Desktop 配置文件:
```bash
# 在 macOS 上
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
```
添加 Tubist MCP 服务器,使用您安装它的路径:
```json
{
"mcpServers": {
"Tubist - YouTube 菜单栏播放器": {
"command": "/opt/homebrew/bin/node",
"args": ["/path/to/tubist-mcp-server/index.js"]
}
}
}
```
**重要:** 将 `/path/to/tubist-mcp/index.js` 替换为实际克隆此仓库的路径。
**查找您的 Node.js 路径:**
```bash
which node
```
如果路径不同,请使用此路径代替 `/opt/homebrew/bin/node`。
4. **完全重启 Claude Desktop** (退出并重新打开,不要只是关闭窗口)
## 使用
配置完成后,您可以自然地请求 Claude 播放 YouTube 视频:
**示例:**
- "播放比莉·艾利什的小型桌面音乐会"
- "在 YouTube 上为我找一些适合专注的爵士乐,并在 Tubist 中播放"
- "在 YouTube 上查找超级马里奥音乐的管弦乐版本,并在 Tubist 中播放"
## 工作原理
1. 您向 Claude 提出请求
2. Claude 使用 MCP 协议调用此服务器
3. 服务器使用 `tubist://play?` URL 方案在 Tubist 中打开 YouTube 视频
4. 视频自动开始播放
## 故障排除
### "MCP 服务器断开连接" 错误
- 检查 `claude_desktop_config.json` 中的路径是否正确
- 使用 `which node` 验证 Node.js 路径
- 确保您已完全重启 Claude Desktop
### 视频无法播放
- 确保 Tubist 已安装并且可以启动
- 尝试手动打开 Tubist 以验证它是否有效
- 检查 YouTube URL 是否有效。例如,Claude 有时会使用不再存在的视频链接。
### 工具未在 Claude 中显示
- 确认配置文件是有效的 JSON(使用 JSON 验证器)
- 检查 Claude Desktop 日志:`~/Library/Logs/Claude/`
- 确保您已保存配置文件并重启 Claude
## 技术细节
此 MCP 服务器使用 `Server` 类和 `setRequestHandler` 模式(而不是 `McpServer.tool()`),因为 MCP SDK 1.25.x 中存在一个已知错误,即参数未正确传递给工具处理程序。
**工具定义:**
- **名称:** `play`
- **参数:** `url` (YouTube 视频 URL)
- **操作:** 通过 `tubist://play?[url]` URL 方案在 Tubist 中打开视频
## 贡献
欢迎贡献!请随时提交拉取请求。
## 许可证
MIT © Daniel Kašaj
## 链接
- [Mac 应用商店上的 Tubist](https://apps.apple.com/app/id1603180719)
- [模型上下文协议文档](https://modelcontextprotocol.io)
- [Claude Desktop](https://claude.ai/download)
---
**充满 ❤️ 的背景 YouTube 听歌工具**