Shaka Packager MCP Server について
Shaka Packager MCP Serverは、Shaka PackagerをMCP対応クライアントに接続し、動画の分析やパッケージングを行います。メディア処理向けのプロトタイプで、一般的な作業用のツールとプロンプトを備えますが、変換とパッケージングは開発中です。
主な機能
- 01動画のストリームとコーデックの分析
- 02HLSとDASH向けのパッケージング
- 03Shaka Packagerコマンドの実行
- 04オプションとドキュメントの取得
- 05一般的なメディア作業用プロンプト
活用シーン
- 01動画のストリームとビットレートの確認
- 02VODまたはライブ配信のパッケージング準備
- 03MP4とTS形式の変換
- 04コマンドエラーの解釈支援
MCP 対応
動画分析、Shaka Packagerコマンドの実行、オプション取得、ドキュメント参照のツールと、メディア作業向けプロンプトを提供します。ローカル動画へのアクセスにはFilesystem MCP Serverとの連携を想定しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Shaka Packager MCP サーバー
ステータス:アルファ版です。 最も多く利用されているのは分析機能です。これを本番環境で依存するものではなく、動作するプロトタイプとしてお使いください。
既知の制限事項:
- パッケージ化と変換は現在も開発中です
- Docker 環境とホスト環境間のパス変換には、手動での設定が必要な場合があります
- リリースごとにインターフェースが変更される場合があります
問題の報告を歓迎します。報告は大変役立ちます。
動画のトランスコード、パッケージ化、分析のために、Shaka Packager を Claude AI アプリケーションと連携する MCP(Model Context Protocol)サーバーです。
このサーバーは Filesystem MCP サーバー と連携し、Claude Desktop がコンピューター上の動画ファイルにアクセスして処理できるようにすることで、Claude をメディア処理タスクに役立つ強力なアシスタントにします。
機能
- 動画分析:動画ファイルを分析して、ストリーム情報、コーデック、ビットレートなどの詳細を抽出します
- メディアのパッケージ化:VOD とライブストリーミングに対応し、動画を HLS および DASH 形式に変換します
- 高度なオプション:
- DRM 暗号化(Widevine、PlayReady、FairPlay)を適用します
- 広告挿入マーカーを設定します
- 形式間(MP4、TS など)で変換します
- インテリジェントなパス処理:Docker 環境とホスト環境間のパスを自動的に変換します
- 堅牢なエラー管理:解決方法の提案を含む、わかりやすいエラー分析を提供します
- コマンド支援:最適な結果が得られるよう、Shaka Packager のコマンドを適切な形式に整えるのを支援します
- インタラクティブなドキュメント:複雑な操作を案内する組み込みのヘルプとサンプルを提供します
- 詳細な出力:すべての操作について、包括的な概要と実行の詳細を提供します
前提条件
- Python 3.10 以降
- Shaka Packager がインストールされ、PATH から利用できること
- GitHub からダウンロード
- または、こちらの手順に従ってソースからビルド
- MCP 対応クライアント(Claude Desktop など)
インストール
ソースからインストール
このパッケージはまだ PyPI に公開されていないため、クローンからインストールしてください。
git clone https://github.com/coderjun/shaka-packager-mcp-server.git
cd shaka-packager-mcp-server
pip install -e .
または uv を使う場合:
git clone https://github.com/coderjun/shaka-packager-mcp-server.git
cd shaka-packager-mcp-server
uv pip install -e .
Claude Desktop との連携
Claude Desktop は動画ファイルのアップロードに直接対応していないため、2 つのサーバーを使います。
- コンピューター上の動画ファイルにアクセスするための、シンプルな filesystem MCP サーバー
- それらの動画を分析および処理するための Shaka Packager MCP サーバー
ステップ 1:MCP Filesystem サーバーをセットアップする
公式の MCP filesystem サーバーを使って、Claude が動画ファイルにアクセスできるようにします。
-
Docker を使って公式の filesystem サーバーをインストールします。
docker pull mcp/filesystem -
または、Filesystem MCP サーバーのリポジトリに記載されている手順に従って、ソースからビルドできます。
ステップ 2:設定ファイルを見つける
Claude Desktop の設定ファイルを見つけます。
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
ファイルが存在しない場合は、作成してください。
ステップ 3:両方のサーバーを設定に追加する
絶対パスを使用して、次の設定を追加します。
{
"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-server/shaka_packager_mcp.py"
],
"env": {
"VIDEO_PATH": "/Users/username/Videos",
"SHAKA_PACKAGER_PATH": "/Users/username/.shaka/packager"
}
}
}
}
ステップ 4:Claude Desktop を再起動する
設定ファイルを編集したら、変更を適用するために Claude Desktop を再起動します。
2 サーバー構成の使い方
-
まず、簡易ファイルシステムサーバーを使って動画ファイルを参照します。
- Claude に「動画ディレクトリ内のファイルを一覧表示して」と尋ねます
- 分析または処理する動画ファイルを探します
-
動画ファイルが見つかったら、そのパスを Shaka Packager ツールで使用します。
- 分析する場合:「この動画を分析してください:/Users/username/Videos/example.mp4」
- 処理する場合:「この動画を HLS 用にパッケージ化してください:/Users/username/Videos/example.mp4」
トラブルシューティング
問題が発生した場合:
- 両方のサーバーが絶対パスを使って正しく設定されていることを確認します
- Shaka Packager がインストールされ、アクセス可能であることを確認します
- ファイルシステムサーバーに指定したディレクトリが存在し、動画が格納されていることを確認します
- 次の場所で Claude Desktop のログを確認し、エラーがないか調べます。
- macOS:
~/Library/Logs/Claude/mcp*.log - Windows:
%APPDATA%\Claude\logs\mcp*.log
- macOS:
使い方
Filesystem MCP サーバーと Shaka Packager MCP サーバーの両方が Claude Desktop で実行されている状態で:
-
動画ファイルにアクセスします:
Please show me the files in my Videos directory -
動画ファイルを探します:
Please show me the files in the Movies subdirectory -
処理する動画の file:// URI パスをコピーします
-
ファイルパスを使って Shaka Packager ツールを使用します:
Please analyze this video: file:///Users/username/Videos/my_video.mp4または
Please package this video for HLS and DASH streaming: file:///Users/username/Videos/my_video.mp4 -
サーバーが適切な Shaka Packager コマンドを実行し、結果の詳細な概要を提示します
動画ファイルの正確な場所がわかっている場合は、直接ファイルパスを使用することもできます。
Please analyze this video: /Users/username/Videos/my_video.mp4
ツール
サーバーでは次のツールを利用できます。
- analyze_video:動画ファイルを調べ、インテリジェントなエラー処理を行いながら、ストリーム情報の詳細を提示します
- run_shaka_packager:カスタム引数と適切なパス処理を使って、任意の Shaka Packager コマンドを実行します
- get_shaka_options:利用可能なコマンドオプションとバージョン情報を取得します
- 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)
次の場所で設定できます。
- Claude Desktop の設定ファイル(
SHAKA_PACKAGER_PATHとVIDEO_PATHにはこちらを推奨) - 環境変数
- スクリプトと同じディレクトリにある
.envファイル
.env ファイルの例:
SHAKA_PACKAGER_PATH=/usr/local/bin/packager
VIDEO_PATH=/Users/yourusername/Videos
LOG_LEVEL=DEBUG
開発
開発環境のセットアップ
# Clone the repository
git clone https://github.com/coderjun/shaka-packager-mcp-server.git
cd shaka-packager-mcp-server
# Install development dependencies with pip
pip install -e ".[dev]"
# Or with 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 コードコパイロットを利用していますので、ぜひご活用ください。
問題が発生した場合や質問がある場合は、次の手順をお試しください。
- この README のトラブルシューティングのセクションを確認します
- Shaka Packager のドキュメントを確認します
- Claude 内での対話形式のサポートには、
get_shaka_documentationツールを使用します - GitHub でイシューを作成します
謝辞
- 強力な動画処理機能を提供している Shaka Packager
- 通信フレームワークを提供している Model Context Protocol (MCP)
- AI アシスタント機能を提供している Claude
- Claude と MCP 標準を開発した Anthropic
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
