返回市场
沙卡打包器mcp服务器

沙卡打包器mcp服务器

作者:coderjun4 星标更新:2025-10-31

项目介绍

Shaka Packager MCP 服务器

MIT 许可证 Python 版本 状态:Alpha

⚠️ 实验性状态免责声明

该项目处于早期Alpha阶段,并且高度实验性。不建议在生产环境中使用。它也可能非常混乱!

当前限制:

  • 您可能会遇到不一致的行为
  • 高级功能(打包、转换等)仍在积极开发中
  • Docker与主机环境之间的路径转换可能需要手动配置
  • 预期频繁出现破坏性更改和潜在的不稳定

如果您遇到任何问题,请报告以帮助改进项目。

<a href="https://glama.ai/mcp/servers/@coderjun/shaka-packager-mcp-server"> <img width="380" height="200" src="https://gips2.baidu.com/it/u=3070397460,2295706959&fm=3081&app=3081&f=PNG?w=760&h=200" alt="Shaka Packager Server MCP 服务器" /> </a>

MseeP.ai 安全评估徽章 已在 MseeP 上验证

一个集成 Shaka Packager 的 MCP(模型上下文协议)服务器,用于与 Claude AI 应用程序进行视频转码、打包和分析。

此服务器与 Filesystem MCP 服务器配合工作,使 Claude Desktop 能够访问并处理计算机上的视频文件,从而将 Claude 转变为强大的媒体处理助手。

功能

  • 视频分析:分析视频文件以提取详细的流信息、编解码器、比特率等
  • 媒体打包:将视频转换为 HLS 和 DASH 格式的流媒体,支持点播和直播
  • 高级选项
    • 应用 DRM 加密(Widevine、PlayReady、FairPlay)
    • 配置广告插入标记
    • 在不同格式之间转换(MP4、TS 等)
  • 智能路径处理:自动在 Docker 和主机环境之间转换路径
  • 强大的错误管理:提供有意义的错误分析及解决建议
  • 命令辅助:帮助正确格式化 Shaka Packager 命令以获得最佳结果
  • 交互式文档:内置帮助和示例,引导用户完成复杂操作
  • 详细输出:对所有操作提供全面总结和执行细节

先决条件

  • Python 3.10 或更高版本
  • 已安装并添加到 PATH 中的 Shaka Packager
  • 与 MCP 兼容的客户端(如 Claude Desktop)

安装

使用 pip 或 uv(即将推出)

通过 pip 安装包:

pip install shaka-packager-mcp

或使用 uv:

uv pip install shaka-packager-mcp

从源代码安装(推荐)

git clone https://github.com/coderjun/shaka-packager-mcp.git
cd shaka-packager-mcp
pip install -e .

或使用 uv:

git clone https://github.com/coderjun/shaka-packager-mcp.git
cd shaka-packager-mcp
uv pip install -e .

Claude Desktop 集成

由于 Claude Desktop 不直接支持上传视频文件,我们将采用两台服务器的方法:

  1. 简化的 filesystem MCP 服务器 来访问计算机上的视频文件
  2. Shaka Packager MCP 服务器 来分析和处理这些视频

第一步:设置 MCP 文件系统服务器

使用官方 MCP 文件系统服务器允许 Claude 访问您的视频文件:

  1. 使用 Docker 安装官方文件系统服务器:

    docker pull mcp/filesystem
    
  2. 或者,您可以按照 Filesystem MCP 服务器仓库中的说明从源代码构建

第二步:找到配置文件

定位您的 Claude Desktop 配置文件:

  • macOS~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows%APPDATA%\Claude\claude_desktop_config.json

如果文件不存在,请创建它。

第三步:在配置中添加两个服务器

添加以下配置,确保使用绝对路径:

{
  "mcpServers": {
    "filesystem": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--mount", "type=bind,src=/PATH/TO/VIDEOS/DIRECTORY,dst=/projects/video-drop",
        "mcp/filesystem",
        "/projects"
      ]
    },
    "shaka-packager": {
      "command": "/ABSOLUTE/PATH/TO/uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "/ABSOLUTE/PATH/TO/shaka_packager_mcp.py"
      ],
      "env": {
        "VIDEO_PATH": "/PATH/TO/VIDEOS/DIRECTORY",
        "SHAKA_PACKAGER_PATH": "/PATH/TO/PACKAGER"
      }
    }
  }
}

替换:

  • /PATH/TO/VIDEOS/DIRECTORY 为包含您的视频文件的目录路径
  • /ABSOLUTE/PATH/TO/uv 为您的 uv 可执行文件的完整路径
  • /ABSOLUTE/PATH/TO/shaka_packager_mcp.py 为脚本文件的完整路径
  • /PATH/TO/PACKAGER 为您的 Shaka Packager 可执行文件的完整路径

例如:

{
  "mcpServers": {
    "filesystem": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "--mount", "type=bind,src=/Users/username/Videos,dst=/projects/video-drop",
        "mcp/filesystem",
        "/projects"
      ]
    },
    "shaka-packager": {
      "command": "/Users/username/.local/bin/uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "/Users/username/Development/shaka-packager-mcp/shaka_packager_mcp.py"
      ],
      "env": {
        "VIDEO_PATH": "/Users/username/Videos",
        "SHAKA_PACKAGER_PATH": "/Users/username/.shaka/packager"
      }
    }
  }
}

第四步:重启 Claude Desktop

编辑配置文件后,重启 Claude Desktop 以应用更改。

如何使用双服务器方法

  1. 首先,使用简化的文件系统服务器浏览您的视频文件:

    • 请求 Claude 列出“我的视频目录中的文件”
    • 导航到要分析或处理的视频文件
  2. 找到您的视频文件后,使用其路径与 Shaka Packager 工具一起使用:

    • 分析:“请分析这个视频:/Users/username/Videos/example.mp4”
    • 处理:“请将这个视频打包为 HLS:/Users/username/Videos/example.mp4”

故障排除

如果您遇到任何问题:

  1. 确保两个服务器都已使用绝对路径正确配置
  2. 验证 Shaka Packager 是否已安装并可访问
  3. 确保指定给文件系统服务器的目录存在并且包含视频
  4. 查看 Claude Desktop 日志中的错误:
    • macOS:~/Library/Logs/Claude/mcp*.log
    • Windows:%APPDATA%\Claude\logs\mcp*.log

使用

一旦 Filesystem MCP 服务器和 Shaka Packager MCP 服务器都在 Claude Desktop 上运行:

  1. 访问您的视频文件

    请显示我视频目录中的文件
    
  2. 导航到您的视频文件

    请显示电影子目录中的文件
    
  3. 复制您想要处理的视频的 file:// URI 路径

  4. 使用文件路径与 Shaka Packager 工具一起使用

    请分析这个视频:file:///Users/username/Videos/my_video.mp4
    

    请将这个视频打包为 HLS 和 DASH 流媒体:file:///Users/username/Videos/my_video.mp4
    
  5. 服务器将执行适当的 Shaka Packager 命令并提供结果的详细摘要

如果您知道视频文件的确切位置,也可以使用直接文件路径:

请分析这个视频:/Users/username/Videos/my_video.mp4

工具

该服务器提供了以下工具:

  1. analyze_video:检查视频文件并提供详细的流信息,具有智能错误处理
  2. run_shaka_packager:执行带有自定义参数的任何 Shaka Packager 命令,并正确处理路径
  3. get_shaka_options:检索可用的命令选项和版本信息
  4. get_shaka_documentation:提供使用 Shaka Packager 的综合文档和示例

提示模板

服务器包括以下提示模板:

  • MP4 到 TS 转换
  • HLS 和 DASH 格式的 VOD 打包
  • 直播流打包
  • 内容加密
  • 广告插入准备
  • 视频分析
  • 命令格式提醒
  • 错误解释指导

配置

服务器可以通过环境变量进行配置:

  • SHAKA_PACKAGER_PATH:指向 Shaka Packager 可执行文件的路径(对于 Claude Desktop 非常推荐)
  • VIDEO_PATH:指向本地视频目录的路径(用于在 Docker 和主机之间转换路径)
  • DOCKER_PATH:Docker 容器挂载路径(默认:"/projects/video-drop")
  • TEMP_DIR:用于文件上传的自定义临时目录
  • LOG_LEVEL:日志级别(DEBUG、INFO、WARNING、ERROR、CRITICAL)
  • COMMAND_TIMEOUT:Shaka Packager 命令的超时时间(秒,默认:300)

您可以在以下位置设置这些变量:

  1. 您的 Claude Desktop 配置文件(推荐用于 SHAKA_PACKAGER_PATHVIDEO_PATH
  2. 您的环境变量
  3. 脚本所在目录中的 .env 文件

示例 .env 文件:

SHAKA_PACKAGER_PATH=/usr/local/bin/packager
VIDEO_PATH=/Users/yourusername/Videos
LOG_LEVEL=DEBUG

开发

设置开发环境

# 克隆仓库
git clone https://github.com/coderjun/shaka-packager-mcp.git
cd shaka-packager-mcp

# 使用 pip 安装开发依赖项
pip install -e ".[dev]"

# 或使用 uv
uv pip install -e ".[dev]"

运行测试

pytest

代码格式化

black .
isort .

了解代码结构

Shaka Packager MCP 服务器的主要组件是:

  • shaka_packager_mcp.py:主要服务器实现,包含 MCP 工具和提示
  • tests/:验证功能的测试套件

此服务器旨在与官方 MCP 文件系统服务器配合使用,以访问视频文件。

实现中的关键特性

  • 强大的路径处理:自动在 Docker 和主机环境之间转换路径
  • 智能错误处理:提供有意义的错误消息和建议
  • 命令语法辅助:帮助正确格式化 Shaka Packager 命令
  • 文档整合:提供综合文档和示例

许可证

本项目基于 MIT 许可证发布 - 详情见 LICENSE 文件。

获取帮助

欢迎使用 AI 代码助手,作者就是这样做的。

如果您遇到任何问题或有疑问:

  1. 查看此 README 中的故障排除部分
  2. 查阅 Shaka Packager 文档
  3. 使用 get_shaka_documentation 工具在 Claude 中获取交互式帮助
  4. 在 GitHub 上 打开一个问题

致谢