🎬 YARR 媒体堆栈 MCP 服务器
一个全面的模型上下文协议 (MCP) 服务器,它弥合了大型语言模型 (LLM) 和您自托管的媒体技术栈之间的差距。该项目支持媒体服务的智能自动化和自然语言控制,同时保留传统的编程访问方式。
🎯 主要特点
- 🤖 由 LLM 提供支持的媒体服务自然语言控制
- 🔌模块化架构,方便服务集成
- 🔄 传统访问的统一 API 网关
- 🎮 用于可视化控制的 Web UI(计划中)
- 🔐 无需 LLM 中间件即可直接访问 API
- 🧩 可扩展的新服务插件系统
📚 文档
🏗️ 项目结构
这个 monorepo 被组织成模块化包,每个包都有特定的用途:
- 📦
packages/server
:核心 MCP 服务器实现 - 🌐
packages/web
:Web UI 界面(计划中) - 💬
packages/chatbot
:LLM 聊天界面(计划中) - 🔀
packages/api-gateway
:API 路由和服务协调(计划中)
🔧 综合服务
✅ 目前支持
- Gotify - 通知管理
- Sonarr - 电视节目管理
- Prowlarr - 索引器管理
- Overseerr - 请求管理
🚧 计划中的集成
- Radarr - 电影管理
- qBittorrent - Torrent 管理
- SABnzbd - Usenet 下载
- Plex - 媒体服务器
- Tautulli - 服务器统计
- TMDB——媒体数据库
📖 服务文档
🟢 目前已集成
📋 计划整合
🧪 开发
测试工具
🛠️ SDK 参考
🏛️ 建筑
该项目采用模块化架构,其中每个服务包包含:
- 🔌 API 客户端实现
- 📝 类型定义
- 🛠️ 用于服务交互的 MCP 工具
- 🛣️ API 路由
该架构支持多种交互方式:
- LLM-Powered Control :用于直观媒体管理的自然语言处理
- 传统 API 访问:通过统一网关直接调用 API
- Web 界面:用于服务管理的可视化控制面板(计划中)
- 聊天机器人界面:用于服务控制的对话式 UI(计划中)
模块化设计允许:
- 轻松添加新服务
- 独立服务部署
- 灵活的交互方式
- 跨服务的一致 API 模式
🚀 入门
先决条件
# Clone and setup repository
git clone https://github.com/jmagar/yarr
cd yarr
pnpm install
配置
- 从模板创建
.env
文件:
然后添加您的服务 API 密钥:
# Sonarr Configuration
SONARR_URL=http://localhost:8989
SONARR_API_KEY=your_sonarr_api_key
# Prowlarr Configuration
PROWLARR_URL=http://localhost:9696
PROWLARR_API_KEY=your_prowlarr_api_key
# Overseerr Configuration
OVERSEERR_URL=http://localhost:5055
OVERSEERR_API_KEY=your_overseerr_api_key
# Gotify Configuration
GOTIFY_URL=http://localhost:8080
GOTIFY_APP_TOKEN=your_gotify_app_token
GOTIFY_CLIENT_TOKEN=your_gotify_client_token # Optional, for receiving messages
- 配置Claude桌面:
重要提示:在配置中使用完整路径以确保 Claude Desktop 可以找到可执行文件和项目目录。
{
"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
替换为您的实际项目目录路径。
可用工具
声纳
// Series Management
sonarr:search - Search for TV shows
sonarr:list-series - List all monitored TV series
sonarr:series-details - Get detailed information about a series
sonarr:add-series - Add a new series to monitor
sonarr:monitor-season - Monitor or unmonitor a season
sonarr:list-profiles - List quality and language profiles
sonarr:upcoming - Get upcoming episodes
sonarr:queue - Get current download queue
sonarr:remove-from-queue - Remove item from download queue
普罗拉尔
prowlarr:search - Search across all indexers
prowlarr:list-indexers - List configured indexers
prowlarr:indexer-stats - Get indexer performance stats
prowlarr:check-config - Validate Prowlarr connection
监督者
overseerr:search - Search for movies and TV shows
overseerr:request - Request a movie or TV show
overseerr:list-requests - List media requests
overseerr:update-request - Update request status
overseerr:trending - Get trending media with recommendations
overseerr:available - Get popular available media
overseerr:status - Get system status
Gotify
gotify:messages:list - List messages with pagination
gotify:messages:send - Send a new message
gotify:messages:delete - Delete a message by ID
gotify:messages:cleanup - Delete old messages
gotify:apps:list - List all applications
gotify:apps:create - Create a new application
gotify:clients:list - List all clients
gotify:clients:create - Create a new client
gotify:health - Check Gotify server health
gotify:stats - Get Gotify statistics