jmagar
服务介绍
🎬 YARR 媒体堆栈 MCP 服务器
这是一个全面的模型上下文协议(MCP)服务器,它填补了大型语言模型(LLMs)与您自托管媒体技术堆栈之间的空白。该项目使您的媒体服务能够通过智能自动化和自然语言控制进行管理,同时保持传统的编程访问。
🎯 主要功能
- 🤖 LLM 驱动的媒体服务自然语言控制
- 🔌 易于服务集成的模块化架构
- 🔄 统一的 API 网关以支持传统访问
- 🎮 可视化控制的 Web UI(计划中)
- 🔐 无需 LLM 中间件的直接 API 访问
- 🧩 新服务的可扩展插件系统
📚 文档
🏗️ 项目结构
此单一仓库被组织成多个模块包,每个包都有特定用途:
- 📦
packages/server: 核心 MCP 服务器实现 - 🌐
packages/web: Web UI 接口(计划中) - 💬
packages/chatbot: LLM 聊天接口(计划中) - 🔀
packages/api-gateway: API 路由和服务协调(计划中)
🔧 集成服务
✅ 当前支持
- Gotify - 通知管理
- Sonarr - 电视剧管理
- Prowlarr - 索引器管理
- Overseerr - 请求管理
🚧 计划中的集成
- Radarr - 电影管理
- qBittorrent - 种子管理
- SABnzbd - Usenet 下载
- Plex - 媒体服务器
- Tautulli - 服务器统计
- TMDB - 媒体数据库
📖 服务文档
🟢 当前已集成
📋 计划集成
- Radarr - 电影管理
- Plex - 媒体服务器
- Tautulli - 媒体服务器统计
- SABnzbd - Usenet 下载器
- qbittorrent - 种子下载器
- TMDB - 电影/电视剧数据库
🧪 开发
测试工具
🛠️ SDK 参考
🏛️ 架构
该项目遵循一种模块化架构,其中每个服务包包含:
- 🔌 API 客户端实现
- 📝 类型定义
- 🛠️ 用于服务交互的 MCP 工具
- 🛣️ API 路由
这种架构支持多种交互方式:
- LLM 驱动的控制:用于直观媒体管理的自然语言处理
- 传统 API 访问:通过统一网关直接调用 API
- Web 界面:用于服务管理的可视化控制面板(计划中)
- 聊天机器人界面:用于服务控制的对话式用户界面(计划中)
模块化设计允许:
- 轻松添加新服务
- 独立部署服务- 灵活的交互方式
- 跨服务的一致API模式
🚀 开始使用
前提条件
bash
克隆并设置仓库
git clone https://github.com/jmagar/yarr
cd yarr
pnpm install
配置
- 从模板创建
.env文件:
bash
cp .env.template .env
然后添加您的服务API密钥:
env
Sonarr 配置
SONARR_URL=http://localhost:8989
SONARR_API_KEY=your_sonarr_api_key
Prowlarr 配置
PROWLARR_URL=http://localhost:9696
PROWLARR_API_KEY=your_prowlarr_api_key
Overseerr 配置
OVERSEERR_URL=http://localhost:5055
OVERSEERR_API_KEY=your_overseerr_api_key
Gotify 配置
GOTIFY_URL=http://localhost:8080
GOTIFY_APP_TOKEN=your_gotify_app_token
GOTIFY_CLIENT_TOKEN=your_gotify_client_token # 可选,用于接收消息
- 配置Claude Desktop:
重要:在配置中使用完整路径以确保Claude Desktop能够找到可执行文件和项目目录。
json
{
"mcpServers": {
"yarr": {
"command": "C:\Program Files\nodejs\node.exe",
"args": ["C:\path\to\yarr\packages\server\dist\index.js"],
"cwd": "C:\path\to\yarr",
"transport": {
"type": "stdio"
},
"env": {
"NODE_ENV": "production",
"PROWLARR_URL": "http://localhost:9696",
"PROWLARR_API_KEY": "your_prowlarr_api_key",
"SONARR_URL": "http://localhost:8989",
"SONARR_API_KEY": "your_sonarr_api_key",
"OVERSEERR_URL": "http://localhost:5055",
"OVERSEERR_API_KEY": "your_overseerr_api_key",
"GOTIFY_URL": "http://localhost:8080",
"GOTIFY_APP_TOKEN": "your_gotify_app_token",
"GOTIFY_CLIENT_TOKEN": "your_gotify_client_token"
}
}
}
}
注意:将
C:\path\to\yarr替换为您的实际项目目录路径。
可用工具
Sonarr
typescript
// 系列管理
sonarr:search - 搜索电视剧
sonarr:list-series - 列出所有监控中的电视剧系列
sonarr:series-details - 获取关于某个系列的详细信息
sonarr:add-series - 添加一个新的系列进行监控
sonarr:monitor-season - 监控或取消监控一个季度
sonarr:list-profiles - 列出质量和语言配置文件
sonarr:upcoming - 获取即将播出的剧集
sonarr:queue - 获取当前下载队列
sonarr:remove-from-queue - 从下载队列中移除项目
Prowlarr
typescript
prowlarr:search - 在所有索引器中搜索
prowlarr:list-indexers - 列出已配置的索引器
prowlarr:indexer-stats - 获取索引器性能统计
prowlarr:check-config - 验证Prowlarr连接
Overseerr
typescript
overseerr:search - 搜索电影和电视剧
overseerr:request - 请求一部电影或电视剧
overseerr:list-requests - 列出媒体请求
overseerr:update-request - 更新请求状态
overseerr:trending - 获取带有推荐的热门媒体
overseerr:available - 获取流行的可用媒体
overseerr:status - 获取系统状态
Gotify
typescript
gotify:messages:list - 分页列出消息
gotify:messages:send - 发送新消息
gotify:messages:delete - 按ID删除消息
gotify:messages:cleanup - 删除旧消息
gotify:apps:list - 列出所有应用程序
gotify:apps:create - 创建新的应用程序
gotify:clients:list - 列出所有客户端
gotify:clients:create - 创建新的客户端
gotify:health - 检查Gotify服务器健康状况
gotify:stats - 获取Gotify统计信息