Jellyfin控制服务

通过HTTP API控制Jellyfin的MCP服务器,兼容Node.js 18,提供浏览、推荐、播放控制等功能。

  • by ZhenyaPav
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ZhenyaPav/jellyfin_mcp

使用说明

Jellyfin MCP服务器

MCP服务器(stdio),用于通过HTTP API控制Jellyfin,与Node.js 18兼容。

特性

已实施的工具:

  1. jellyfin_browse
  2. jellyfin_get_recommendations
  3. jellyfin_get_next_up
  4. jellyfin_play_by_name
  5. jellyfin_playback_control

包括在以下情况下用于播放工具的智能会话自动发现 sessionId 省略。 jellyfin_playback_control 需要一个活动的玩家会话,如果当前没有任何游戏,则返回错误。

工具输出有意紧凑,默认上限为 20 每次通话的物品。

对于“play breaking bad”风格的请求,请使用 jellyfin_play_by_name 在一次工具调用中搜索并开始播放。

需求

  1. Node.js 18+
  2. Jellyfin服务器URL
  3. Jellfin API密钥

环境变量

必修的:

  • JELLYFIN_API_URL (例如: http://192.168.1.50:8096)
  • JELLYFIN_API_KEY

可选:

  • JELLYFIN_USER_ID
  • JELLYFIN_SESSION_STRATEGY (active, recent, device, ask;默认 active)
  • JELLYFIN_DEVICE_ID_HINT (首选设备id/名称匹配)
  • JELLYFIN_TIMEOUT_MS (默认值 15000)

注:

  • 如果您的密钥是服务器API密钥(而不是用户身份验证令牌), /Users/Me 可能会回来 400.
  • 服务器通过回退来处理此问题 /Users 以及当只有一个用户存在时自动选择单个用户。
  • 如果存在多个用户,请设置 JELLYFIN_USER_ID 明确地。

安装

npm install

测试

npm test

跑

JELLYFIN_API_URL=http://YOUR_JELLYFIN_HOST:8096 \
JELLYFIN_API_KEY=YOUR_API_KEY \
node src/index.js

MCP客户端配置(否 cwd)

使用绝对脚本路径,以便客户端 cwd 行为并不重要。

克劳德桌面风格:

{
  "mcpServers": {
    "jellyfin": {
      "command": "node",
      "args": [
        "/ABSOLUTE/PATH/TO/jellyfin_mcp/src/index.js"
      ],
      "env": {
        "JELLYFIN_API_URL": "http://YOUR_JELLYFIN_HOST:8096",
        "JELLYFIN_API_KEY": "YOUR_API_KEY",
        "JELLYFIN_SESSION_STRATEGY": "active"
      }
    }
  }
}

通用MCP配置:

{
  "servers": {
    "jellyfin": {
      "type": "stdio",
      "command": "node",
      "args": [
        "/ABSOLUTE/PATH/TO/jellyfin_mcp/src/index.js"
      ],
      "env": {
        "JELLYFIN_API_URL": "http://YOUR_JELLYFIN_HOST:8096",
        "JELLYFIN_API_KEY": "YOUR_API_KEY"
      }
    }
  }
}

其他规划说明仍保留在 docs/IMPLEMENTATION_PLAN.md.