这是一个连接到 Jellyfin 媒体服务器并为对话式媒体推荐提供只读工具/资源的 MCP 服务器。
与 Claude 自然地讨论你的媒体库:
它实现了在 jellyfin-mcp.spec.yaml 中定义的契约。
🎈 只想试一试? → NPX 安装 🔧 本地开发? → 本地开发设置 🔒 需要最大安全性? → 安全配置指南
适合: 终端用户,快速测试,生产部署
前提条件:
设置(2分钟):
添加到 Claude Desktop 配置 (claude_desktop_config.json):
{
"mcpServers": {
"jellyfin": {
"command": "npx",
"args": ["-y", "jellyfin-suggestion-mcp@latest"],
"env": {
"JELLYFIN_BASE_URL": "http://your-jellyfin-server:8096"
}
}
}
}
完全重启 Claude Desktop
测试是否正常工作: 在新的 Claude 对话中尝试:
"我的 Jellyfin 库里有什么?"
当提示时进行身份验证: 第一次使用任何工具时,Claude 将显示:
错误:需要身份验证。请使用 authenticate_user 工具登录,然后您的请求将自动重试。
只需告诉 Claude:"请验证我" 并在被询问时提供你的 Jellyfin 凭据。 接下来会发生什么:
authenticate_user 工具🔒 安全注意事项:
✅ 成功: 你应该能看到你的库概览,并能够请求推荐!
❌ 遇到问题? 跳转至 快速故障排除
适合: 开发者,贡献者,定制,高级配置
前提条件:
设置(5分钟):
克隆并安装:
git clone https://github.com/PCritchfield/jellyfin-suggestion-mcp.git
cd jellyfin-suggestion-mcp
yarn install
# 或者:task install
配置环境:
cp .env.example .env
# 编辑 .env 文件以包含你的 Jellyfin 服务器详情
选择你的认证方式:
选项 A:交互式认证(推荐)
# .env 文件 - 最小配置
JELLYFIN_BASE_URL=http://your-jellyfin-server:8096
当 Claude 提问时,你需要使用用户名/密码进行认证。
选项 B:环境变量用户名/密码
# .env 文件 - 用户名/密码认证
JELLYFIN_BASE_URL=http://your-jellyfin-server:8096
JELLYFIN_USERNAME=your-jellyfin-username
JELLYFIN_PASSWORD=your-jellyfin-password
JELLYFIN_PROTOCOL=https # 可选:http 或 https(默认为 https)
选项 C:预配置令牌
# .env 文件 - 基于令牌的认证
JELLYFIN_BASE_URL=http://your-jellyfin-server:8096
JELLYFIN_USER_ID=your-user-id-guid-here
JELLYFIN_TOKEN=your-api-token-here
如何获取 API 令牌:
yarn get-users 查找你的用户 ID.env 文件中测试连接:
yarn test:connection
# 或者:task test:connection
预期输出:✅ Jellyfin 连接成功!
认证测试:
yarn test:auth
# 验证交互式和基于令牌的认证
添加到 Claude Desktop 配置:
{
"mcpServers": {
"jellyfin": {
"command": "node",
"args": ["--import", "tsx/esm", "/full/path/to/your/project/src/index.ts"],
"cwd": "/full/path/to/your/project",
"env": {
"JELLYFIN_BASE_URL": "http://your-jellyfin-server:8096"
}
}
}
}
重启 Claude Desktop 并测试:"我的 Jellyfin 库里有什么?"
🛠️ 开发命令:
task --list # 显示所有可用任务
task dev # 启动具有热重载的开发服务器
task test # 运行所有测试
task lint # 检查代码质量
适合: 关注安全性的用户,共享系统,生产环境
选择你喜欢的安全方法:
🔐 环境变量(推荐):
对于基于令牌的认证:
# 添加到你的 shell 配置文件(.bashrc, .zshrc 等)
export JELLYFIN_BASE_URL="http://your-jellyfin-server:8096"
export JELLYFIN_USER_ID="your-user-id-here"
export JELLYFIN_TOKEN="your-api-token-here"
对于用户名/密码认证:
# 用户名/密码环境设置
export JELLYFIN_BASE_URL="your-jellyfin-server:8096" # 不带协议
export JELLYFIN_USERNAME="your-jellyfin-username"
export JELLYFIN_PASSWORD="your-jellyfin-password"
export J
ELLYFIN_PROTOCOL="https" # 可选:http 或 https(默认为 https)
对于交互式认证:
# 最小环境设置
export JELLYFIN_BASE_URL="http://your-jellyfin-server:8096"
# 不需要凭据 - 当提示时使用用户名/密码进行认证
然后使用不含嵌入凭据的干净 Claude 配置:
{
"mcpServers": {
"jellyfin": {
"command": "npx",
"args": ["-y", "jellyfin-suggestion-mcp@latest"]
}
}
}
📁 本地配置文件:
# 将敏感配置与共享文件分开
cp claude_desktop_config.json claude_desktop_config.local.json
# 编辑本地版本中的凭据,分享示例版本
🔄 认证方法迁移:
从基于令牌到交互式:
JELLYFIN_USER_ID 和 JELLYFIN_TOKENJELLYFIN_BASE_URL从交互式到用户名/密码环境:
JELLYFIN_USERNAME 和 JELLYFIN_PASSWORDJELLYFIN_PROTOCOL 以偏好 HTTP/HTTPS从用户名/密码到基于令牌:
JELLYFIN_USER_ID 和 JELLYFIN_TOKEN 替换 JELLYFIN_USERNAME 和 JELLYFIN_PASSWORD🔑 API 令牌设置:
💡 想要更多安全选项? 请参阅下面的 完整安全指南
服务器无法启动?
# 检查错误
yarn build
yarn test:connection
Claude 无法连接?
yarn dev 或 npx 进程)claude_desktop_config.json 中的文件路径是否绝对且正确认证失败?
连接问题:
无法连接到 http://... 的 Jellyfin 服务器
JELLYFIN_BASE_URL 是否正确且可访问交互式认证问题:
无效的用户名或密码
基于令牌的认证问题:
无效或过期的令牌
JELLYFIN_USER_ID 是否匹配令牌所有者用户名/密码环境问题:
环境用户名/密码认证失败
JELLYFIN_USERNAME 和 JELLYFIN_PASSWORD 是否正确协议配置问题:
无效的 JELLYFIN_PROTOCOL "xyz"。必须是 "http" 或 "https"
http 或 https 作为 JELLYFIN_PROTOCOL(大小写不敏感)JELLYFIN_BASE_URL 包含协议,则优先级更高测试你的认证:
yarn test:auth # 测试交互式和基于令牌的认证
yarn test:connection # 基本连接测试
yarn tsx src/test-auth-env.ts # 测试环境变量认证优先级
yarn tsx src/test-protocol.ts # 测试协议配置
仍然卡住了? 请参阅上面的 快速故障排除 或 打开一个问题。
⚠️ 关键: 你的 Jellyfin 凭据应永远不提交到版本控制或公开分享。
🛡️ 实施的安全措施:
API 令牌范围:
网络暴露:
凭据存储:
完成此检查表以进行安全部署:
创建安全 API 令牌:
令牌轮换流程:
yarn test:auth 测试新令牌对于生产部署:
特定环境的考虑:
监控的内容:
警示标志: