Claude Media
Mux MCPサーバーをClaudeにつなぎ、動画アセットと再生分析を会話で扱う

Mux MCPサーバーをClaudeにつなぎ、動画アセットと再生分析を会話で扱う

動画配信基盤MuxのMCPサーバーをClaude CodeとClaude Desktopに追加し、アセット一覧や再生分析を会話で引く手順です。2つのツールの仕組みと、読み取り専用トークンで書き込みを止める方法も扱います。

動画配信基盤MuxのMCPサーバーをClaudeにつなぐと、動画アセットの一覧、アップロード、ライブ配信の管理、再生品質の分析までを会話で頼めます。接続先はホスト型の https://mcp.mux.com です。OAuthに対応したクライアントなら、ログインして環境を選ぶだけで使い始められます。

このサーバーは、個別のAPIごとにツールを並べる作りではありません。エージェントに渡るのは2つのツールだけで、そのうち1つはエージェントが書いたTypeScriptを実行します。便利な反面、削除のような破壊的な操作も特別扱いされません。この記事では接続、最初の依頼、権限の絞り方の順に説明します。

Mux MCPサーバーのツールは2つだけ

Mux MCPサーバーは「Code Mode」と呼ばれるツールの構成を採っています。数百のエンドポイントを個別のツールにせず、次の2つだけを公開します。

  • search_docs: MuxのAPIとSDKのドキュメントを検索する
  • execute: エージェントがMux公式SDK(@mux/ts)を使って書いたTypeScriptを実行し、返した値や出力を結果として戻す

ホスト型では、execute の呼び出しごとに、Mux管理の隔離されたサンドボックスが新しく用意されます。ネットワークはMuxのAPIホストにしか出られません。

この構成には利点が2つあります。1つは、複数手順の作業をコードにまとめて決まった順序で実行できること。もう1つは、巨大なAPI定義をツール説明としてコンテキストに載せずに済むことです。SDKの全体に届くので、次のような領域が対象に入ります。

領域触れるもの
Mux Video触れるものアセット、ダイレクトアップロード、再生ID、トラック、ライブ配信、配信使用量
Mux Data触れるものメトリクス、ディメンション、フィルタ、リアルタイムデータ、ビュー、エクスポート
Mux Robots触れるものジョブ、ワークフロー、ディレクティブ
System触れるもの署名キー、whoami などのアカウント系
Webhooks触れるものWebhookペイロードの検証と展開

対応範囲が広いことは、そのまま事故の範囲が広いことでもあります。ここは後の節で権限を絞る話につなげます。

接続前に用意するもの

前提は2つです。Muxのアカウントと、リモートMCPサーバーに対応したクライアント(Claude DesktopやCursorなど)の最新版です。Claude Codeは、リモートのHTTPサーバーを claude mcp add --transport http で追加できます。

認証は、接続の最初のリクエストから必要です。OAuth対応のクライアントでは、クライアントが次の2つを案内します。

  1. Muxダッシュボードにログインする(ログイン済みなら省略される)
  2. この接続で認可する環境(Environment)を選ぶ

アクセストークンをダッシュボードで発行する手間はありません。環境を選ぶ画面があるので、本番と検証を分けているアカウントでは、最初は検証側を選ぶのが無難です。

Claude Codeで追加する

リモートMCPの追加は、次のコマンドです。名前は任意で、ここでは mux にします。

claude mcp add --transport http mux https://mcp.mux.com

追加したら、Claude Codeのセッション内でMCPの状態を開きます。

/mcp

mux を選ぶと認証に進み、ブラウザでMuxのログインと環境の選択を済ませる流れです。完了後は、mux が接続済みになっているかを同じ画面で見られます。

Claude Desktopの場合は、コネクタの追加画面でURLに https://mcp.mux.com を入れます。Muxのドキュメントは、Claude・Claude Code・ChatGPTではMCPサーバーを「コネクタ」と呼ぶことがあると書いています。

最初に頼んでみる依頼

接続できたら、読み取りだけの依頼から始めます。Muxのドキュメントには、次のような依頼文が載っています。文頭か文中に「Mux MCPを使って」と添えると、エージェントが他のツールではなくMuxを選びやすくなります。

動画アセットの管理

  • 動画アセットの一覧と現在の状態を出してほしい
  • 直近にアップロードした動画の再生URLを教えてほしい
  • アセットID ASSET_ID の字幕トラックを生成してほしい
  • Muxに動画をアップロードできるWebページを作ってほしい

Mux Robots

  • アセットID ASSET_ID のチャプターを生成するRobotsジョブを実行してほしい
  • 直近の動画を要約して、タグ案を出してほしい

Mux Dataの分析

  • 直近1か月で、配信成績のよい国はどこか
  • 視聴数の多い動画の上位はどれか
  • アカウントで多い動画エラーは何か
  • 絞り込みに使えるディメンションの一覧を出してほしい

この中で、アップロード用のWebページを作る依頼は少し性質が違います。execute で完結せず、できあがるページのコードをローカルに書かせる作業になるからです。Claude Codeなら、生成したコードの置き場所と、使うトークンの権限を先に指定しておくと安全です。

実行結果を読む順番

execute はコードの返り値を結果にします。依頼が曖昧だと、エージェントは広い範囲を取得するコードを書きます。「直近の10件」「ステータスが errored のもの」のように、件数や条件を最初の依頼に含めるほうが、結果が小さく読みやすくなります。

書き込みを止める権限の絞り方

Muxのドキュメントは、サーバーが「破壊的な操作を特別扱いしない」と明記しています。サーバーにできることは、認可した環境とアクセストークンの権限で決まります。変更させたくないなら、権限を絞るしかありません。

選択肢は2つあります。

権限

書き込みを止める2つの方法

  • Read権限だけのトークン

    Basic認証で接続すると、トークン自体が読み取りしかできなくなります。ドキュメントが挙げる確実な方法です。

  • ローカル版で許可メソッドを限定

    ローカルで動かすと、--code-allow-http-gets のようなフラグで実行可能なメソッドを絞れます。

Read権限のトークンで接続する

OAuthを使わず、トークンを直接渡す形です。ダッシュボードのSettings → Access Tokensで、Read権限だけのトークンを作ります。次に、トークンIDとシークレットを TOKEN_ID:TOKEN_SECRET の形でつなぎ、Base64にしたものを Authorization ヘッダーに載せます。

# 値は自分のトークンに置き換える。履歴に残さないよう環境変数から作る
CRED=$(printf '%s:%s' "$MUX_TOKEN_ID" "$MUX_TOKEN_SECRET" | base64)
claude mcp add --transport http mux https://mcp.mux.com \
  --header "Authorization: Basic $CRED"

--header の使い方は、Claude Codeのドキュメントにある Authorization: Bearer の例と同じ形式です。設定JSONで書くクライアントなら、Muxの例のとおり、url と headers を持つ mux のエントリになります。トークンは設定ファイルに平文で残るので、秘密情報として扱ってください。リポジトリに入るプロジェクト設定に書かないことが前提です。

ローカル版でメソッドを絞る

クライアントがリモートMCPに対応していない場合や、メソッド単位で絞りたい場合は、ローカル版の @mux/mcp を使います。Claude Codeには次のコマンドで追加します。

claude mcp add mux \
  --env MUX_TOKEN_ID="your_access_token_id" \
  MUX_TOKEN_SECRET="your_secret_key" \
  -- npx -y @mux/mcp@latest --code-allow-http-gets

--code-allow-http-gets を付けると、HTTPのGETを行うメソッドだけが許可され、サーバーは読み取り専用になります。ほかに次のフラグがあります。

フラグ働き
--no-tools=code / --no-tools=docs働き片方のツールを無効にする
--code-allowed-methods働き名前が正規表現に合うメソッドを許可する
--code-blocked-methods働き許可されていても、名前が合うメソッドをブロックする

資産管理だけを許して削除は止めたいときは、許可と拒否を組み合わせます。

"args": ["-y", "@mux/mcp@latest",
  "--code-allowed-methods=^video.assets.",
  "--code-blocked-methods=delete"]

削除メソッドの名前にはすべて delete が含まれるため、delete だけでまとめて止められます、とドキュメントは説明しています。

ローカル版だけにある条件

ローカル版では、execute のコードは自分のマシン上の隔離されたDenoのサンドボックスで動きます。Deno 2.9以上が必要で、@mux/mcp はオプションのnpm依存として自分用のDenoを入れます。入らない環境(Alpineなど、--omit=optional で入れた場合など)では、Denoを自分で入れて DENO_PATH にパスを指定します。

Denoが無い、または古いと、サーバー自体は起動し search_docs も動きますが、execute だけが失敗します。「ドキュメント検索はできるのにアセットが取れない」という症状なら、まず deno --version を確かめてください。MCPクライアントはシェルの PATH を引き継がずに起動することがあるため、DENO_PATH は絶対パスで指定します。

つながったか確かめる

動作確認は、読み取りの依頼で行います。ローカル版のドキュメントは、次の依頼を勧めています。

直近に作成したMuxのビデオアセットの詳細を教えてほしい(Muxのツールを使って)

詳細が返れば、MuxのAPIまで届いています。返ってこないときは、切り分けの順番があります。

  1. /mcp で mux が接続済みか見る(未接続なら認証をやり直す)
  2. トークン方式なら、IDとシークレットに余分な空白が無いか、権限が足りているかを見る
  3. ローカル版なら、deno --version と DENO_PATH を見る
  4. Claude Desktopなら、JSONの文法とアプリの完全な再起動を見る

使いどころと向かない場面

Mux MCPは、ダッシュボードを開いて数クリックで終わる確認や、SDKの呼び出しを調べながら書く作業に向きます。たとえば再生エラーの多い動画を調べ、その動画のアセットの状態を見て、字幕トラックを足す、といった一連の作業です。これらは1つのコードにまとまるため、会話の往復が少なくて済みます。

向かないのは、本番環境の書き込みを無人で任せる運用です。削除が特別扱いされない以上、エージェントが誤ったアセットIDを選んだときの歯止めは、権限しかありません。本番の環境には読み取り専用のトークンを渡し、書き込みは検証環境で試してから、手で本番に反映する形が堅実です。

同じように、会話から外部サービスの管理画面相当の操作を行う記事には、JamfのMCPサーバーでMac管理を行う手順や、RenderでWebサービスとDBを管理する手順があります。権限を最小にしてから書き込み系を開ける考え方は、どちらにも共通します。動画を生成する側のAPIをアプリへ組み込む話は、Runway Devプラグインの記事が扱っています。

まとめ

Mux MCPは、search_docs と execute の2ツールでMuxのSDK全体に届きます。OAuthで環境を選んで使い始められる一方、削除も含めた権限はトークンと環境で決まります。まず検証環境で読み取りの依頼から始め、書き込みが必要になった時点で、権限を段階的に開けてください。

この記事を共有:XはてブLinkedIn