Transcodely について
Transcodelyは、AIエージェント向けのホスト型動画処理サービスで、トランスコード、ホスティング、字幕、動画インサイトに対応します。MCPツールではジョブ、出力、料金、利用状況も確認でき、削除やキャンセルの操作はありません。
主な機能
- 01URLから動画を変換してホスト
- 02字幕と動画インサイトの生成
- 03ジョブ状態と出力測定の確認
- 04料金と月間利用状況の参照
- 05エンコードプリセットの作成と管理
- 06削除・キャンセル用ツールなし
活用シーン
- 01動画URLから再生可能なホストリンクを作成
- 02ホスト済み動画の字幕とインサイトを生成
- 03出力が指定設定に合うか確認
- 04動画処理の費用と利用状況を確認
MCP 対応
ホスト型のストリーミングHTTP MCPサーバーで19個のツールを提供し、OAuth 2.1認証とローカルstdioブリッジに対応します。動画処理、アカウント内の情報参照や設定を扱い、削除やキャンセルはできません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.transcodely.com/mcpclaude mcp add --transport http com-transcodely https://mcp.transcodely.com/mcp{"mcpServers":{"com-transcodely":{"type":"http","url":"https://mcp.transcodely.com/mcp"}}}Cursor で開く{"servers":{"com-transcodely":{"type":"http","url":"https://mcp.transcodely.com/mcp"}}}VS Code で開く{"mcpServers":{"com-transcodely":{"type":"http","url":"https://mcp.transcodely.com/mcp"}}}{"mcpServers":{"com-transcodely":{"serverUrl":"https://mcp.transcodely.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Transcodely MCP Server
AI エージェント向けの動画パイプラインを、Model Context Protocol 経由で提供します。作業を削除する機能はありません。
エージェントに動画の URL を渡すと、再生可能なリンクが返ってきます。ABR ラダーにトランスコードしてホスティングし、必要であれば字幕も付けます。さらに、実際に生成したもの、かかった費用、アップロードがジョブにならなかった理由を読み取らせることもできます。削除、キャンセル、キー情報の操作はできません。OAuth をワンクリックで接続でき、作成や貼り付けが必要な API キーはありません。
- サーバー URL(ストリーミング可能な HTTP):
https://mcp.transcodely.com/mcp - 製品ページ: https://www.transcodely.com/mcp
- 接続ガイド: https://www.transcodely.com/docs/guides/mcp
- レジストリ識別子:
com.transcodely/mcp
ここはホスト型サーバーの公開ホームです。接続手順、ツール一覧、レジストリマニフェストを確認できます。サーバー自体はホスト型サービスなので、インストールも実行も必要ありません。
接続
Claude Code
claude mcp add --transport http transcodely https://mcp.transcodely.com/mcp
Claude Code 内で /mcp を実行し、Authenticate を選択してください。ブラウザーが開くので、承認するとツールを利用できます。Transcodely アカウントをまだお持ちでない場合は、認証時に作成されます。
claude.ai / Claude desktop — Settings → Connectors → Add custom connector → https://mcp.transcodely.com/mcp。
Cursor — ~/.cursor/mcp.json に追加します。
{
"mcpServers": {
"transcodely": { "type": "http", "url": "https://mcp.transcodely.com/mcp" }
}
}
ストリーミング可能な HTTP 経由でリモート MCP サーバーに対応する他のクライアントも、同じ方法で接続できます。ヘッドレス環境(CI、サーバー側エージェント)で使用する場合は、代わりに Transcodely API キーをベアラートークンとして指定してください。詳細は接続ガイドをご覧ください。
ツール(19)
ツールは全部で19個です。読み取り専用が12個、何かを作成するものが5個あります。そのうち4個は課金対象の処理を開始し、プリセットの保存は無料です。残る2個は、以降に作成する処理にのみ影響する設定を上書きします。このツール一覧には、削除、キャンセル、除去、ローテーションを行うツールはありません。
| ツール | 効果 | 説明 |
|---|---|---|
create_job | 作業を作成 · 有料 | トランスコードジョブを作成します。 |
create_preset | 作成 · 無料 | このアプリ用のカスタムエンコードプリセットを作成します。名前付きで再利用可能なエンコード設定のセットで、create_job からスラッグを指定して参照できます。 |
create_video_from_url | 作業を作成 · 有料 | リモートの https:// 動画を取り込み、1 回の呼び出しでホストします。「これをトランスコードしてホストし、リンクを教えて」という場合に使うツールです。 |
generate_captions | 作業を作成 · 有料 | ホスト済み動画(vid_...)の ID を指定して、AI キャプション(字幕)を生成します。 |
generate_insights | 作業を作成 · 有料 | ホスト済み動画(vid_...)の ID を指定し、既存の AI キャプションから AI インサイト(タイトル候補、要約、要点、チャプター、質問、キーワード、引用に適したハイライト、トピック)を生成します。再文字起こしは行いません。 |
get_ingest_rule | 読み取り | ID(ing_...)で取り込みルールを 1 件取得します。オリジン、有効状態、フィルター、送信するジョブ、およびイベント数とジョブ数を確認できます。 |
get_job_status | 読み取り | ID(job_...)でトランスコードジョブの簡潔なステータス概要を取得します。全体のステータスと進捗、エラーコード/メッセージ(ある場合)、出力ごとのステータス/進捗とエラーを確認できます。 |
get_output_report | 読み取り | 1 つのジョブ出力(job_... と out_...)の測定レポート全体を取得します。書き込まれたファイルから測定した生成ファイルの実際の内容と、ジョブで要求した内容との比較結果を確認できます。 |
get_pricing | 読み取り | このアプリに適用される価格を EUR で返します。課金対象となる項目(コーデックごとのエンコード、解像度、品質と機能の倍率、キャプション、インサイトと処理の料金、ホスティングのストレージと配信)ごとに、料金と単位を示します。このアカウントにカスタム料金がある場合は custom: true と公開価格も併記されます。 |
get_seo_markup | 読み取り | 自分のウェブページの watch_url にホスト済み動画(vid_...、ready、public または unlisted)を表示するための、すぐに貼り付けられる SEO マークアップを取得します。schema.org VideoObject JSON-LD(動画にインサイトがある場合はチャプターの重要な場面を含む)、動画サイトマップのエントリー、要約、チャプターリンク、全文のトランスクリプトを含むエスケープ済み HTML フラグメントが返されます。watch_url は出力に埋め込まれるだけで、取得されることはありません。 |
get_transcript | 読み取り | AI キャプションから生成された、ホスト済み動画(vid_...)のトランスクリプトを取得します。形式は txt(プレーンテキスト、デフォルト)、md(タイムスタンプ付きリンクを含む Markdown)、json(タイミング情報付きの段落、文、単語)から選べます。 |
get_usage | 読み取り | 請求月のホスティング使用量と料金を返します。エンコードした動画数、エンコード時間、平均ストレージ使用量、エグレス、リクエスト数、項目ごとの料金と合計金額を EUR で確認できます。 |
get_video | 読み取り | ID(vid_...)でホスト済み動画を取得します。ステータス、公開設定、タイトル、長さ、ポスター画像、エンコード済みの各バリエーション(解像度、コーデック、ビットレート、寸法)、およびステータスが "ready" になった後の再生ブロックを確認できます。 |
list_ingest_events | 読み取り | このアプリの取り込みルールが受信したストレージ配信を新しい順に一覧表示し、それぞれの結果を示します。バケットとオブジェクトキー、結果(受信、照合、作成、スキップ、失敗)、スキップまたは失敗の理由、ジョブが作成された場合はそのジョブ ID を確認できます。 |
list_ingest_rules | 読み取り | このアプリの取り込みルールを一覧表示します。ストレージオリジンにオブジェクトが配置されたときに、トランスコードジョブを作成するための常設の指示です。 |
list_jobs | 読み取り | 認証済みアプリのトランスコードジョブを新しい順に一覧表示します。 |
list_presets | 読み取り | このアプリで使用できるエンコードプリセットを一覧表示します。プラットフォームが提供する読み取り専用プリセットと、アプリ独自のカスタムプリセットが含まれます。 |
set_spend_limit | 設定を上書き | このアプリの月間トランスコード支出上限を EUR で設定または解除します。 |
update_preset | 設定を上書き | ID(pst_...)でカスタムプリセットの設定を更新します。 |
tools.json から npm run readme:gen で生成 — 手動で編集しないでください。読み取り専用:12 件。書き込み:7 件。有料:4 件。
このサーフェスでできないこと
その約束は限定的かつ字義どおりで、単に宣言されているのではなく、検証されています。test/vendored.mjs はすべての CI 実行時に tools.json からその内容を再導出し、名前が delete、cancel、remove、purge、rotate、または destroy で始まるツールが今後のリリースで追加されると失敗します。
- 削除もキャンセルもできません。 動画、ジョブ、出力、プリセット、ルールを削除するツールはなく、キューに追加済みまたは実行中の作業を停止するツールもありません。エージェントがタスクの途中で「後片付け」を決めても、そのための手段はありません。
- キーやシークレットの情報を読み取ることはできません。 API キー用のツールはありません。また、取り込みツールでは、REST API が公開するプレフィックスと末尾 4 桁のヒントさえ意図的に表示しません。ルールの受信用シークレットは作成時に一度だけ表示され、このサーバーから再び表示されることはありません。ツールの結果はエージェントのトランスクリプトに記録されるため、トランスクリプトに含めるべきでない情報は、そもそもこのサーフェスにありません。
- 組織に関する操作はできません。 メンバー、プラン、請求書、チーム設定、管理者向け機能に対応するツールはありません。
- 値を上書きする 2 つのツールが作用するのは、常にこれからの処理だけです。
update_presetとset_spend_limitにはdestructiveHint: trueが設定されています。プロトコル上、これは「値を追加する」のではなく「値を置き換える」という意味であり、何かが削除されるという意味ではありません。プリセットはジョブの作成時に読み込まれて展開されるため、編集しても既存のジョブには反映されません。支出上限を引き下げると次のジョブがブロックされますが、実行中のジョブが停止することはありません。
支出上限を変更できる人
set_spend_limit は、金銭に関するポリシーを変更する唯一のツールであるため、独自の認可ルールを持つ唯一のツールです。
- ブラウザーの OAuth フローでサインインした組織のオーナーまたは管理者である必要があります。これは REST API が適用するメンバーシップチェックに、REST API にはないルールを加えたものです。
- API キーによるセッションは一律で拒否されます。 これには、
ak_…で認証する以下の stdio ブリッジも含まれます。一般的な権限エラーとして失敗するのではなく、拒否された理由が明示的に示されます。このサーフェスはこの点で REST より意図的に厳格です。REST では、キーを使ってそのキー自身のアプリの上限を管理できます。 - 入力された値をそのまま返すのではなく、設定後の上限を読み戻します。プランまたはプラットフォームの上限を超える値を設定しても保存はされますが、より低い上限が引き続き適用されるため、何も変わりません。結果には、変更前と変更後の実効上限、およびその上限が適用される段階が含まれます。
認証とガードレール
- ブラウザーの同意フローを通じた PKCE 対応 OAuth 2.1。サーバーは RFC 9728 Protected Resource Metadata と RFC 8707 resource indicators を実装しています。
- すべてのツール呼び出しは、セッションから特定される 1 つの Transcodely アプリにスコープされ、ツール引数から特定されることはありません。 エージェントが別の ID を渡して自分のスコープを広げることはできません。別のアプリに属するジョブ、動画、プリセット、ルールを読み取ろうとすると、権限エラーではなく見つかりませんとして返されるため、対象が存在すること自体も明らかになりません。特定のアプリに固定するには
https://mcp.transcodely.com/mcp/app_…に接続してください。URL のみを指定すると、組織で最も古い有効なアプリが選択されます。 - 別のアプリの URL に提示された
ak_…キーは一律で拒否されます。 - すべての呼び出しで、同等の REST 呼び出しと同じ監査記録が残されます。
- MCP サーバーへの接続は無料です。課金対象の作業を開始するツールは 4 つあります。
create_job、create_video_from_url、generate_captions、generate_insightsです。料金はTranscodely の通常料金に基づきます。それ以外のツールは、書き込みを行うものも含めてすべて無料です。プリセットの保存や支出上限の設定にも料金はかかりません。
試してみる
- 「この動画をトランスコードしてホストし、リンクを教えてください:https://www.transcodely.com/videos/bbb-30s.mp4」
- 「その動画に英語の字幕を生成してください。」
- 「直近のジョブのステータスはどうなっていますか?」
- 「1080p の出力は本当に 1080p h264 でしたか?測定結果のレポートを見せてください。」
- 「バケットにファイルをアップロードしたのにジョブが表示されません。どうなりましたか?」
- 「今月の動画への支出額はいくらで、最も費用がかかった日はいつですか?」
ローカルで実行する(stdio ブリッジ)
リモートに対応したクライアントは、上記のホストされたエンドポイントに直接接続してください。これがワンクリック OAuth の方法です。stdio のみ対応したクライアント、サンドボックス、ヘッドレス環境で使用する場合、このリポジトリは同じツールを stdio 経由で提供し、呼び出しをホストされたサーバーに転送する実行可能なブリッジとしても利用できます。
# with an API key (create one in the Transcodely dashboard):
TRANSCODELY_API_KEY=ak_... npx github:transcodely/mcp
# or via Docker:
docker build -t transcodely-mcp .
docker run -i --rm -e TRANSCODELY_API_KEY=ak_... transcodely-mcp
TRANSCODELY_API_KEY がなくてもブリッジは起動し、イントロスペクション(initialize、tools/list)に応答します。ツールの呼び出しは、2 つの認証方法を案内するエラーを返します。set_spend_limit は一覧に表示されますが、この経路では常に拒否されます。上記のルールを参照してください。
tools.json の正確性を保つ方法
tools.json は生成されるものであり、手書きではありません。Transcodely API 独自のエクスポートである go run ./cmd/mcp --dump-tools の標準出力をバイト単位でそのまま保存したもので、api-pin.json で固定されたリリースのチェックアウト内で実行されます。上記の README の表も、そこから生成されています。この一連の流れは、次の 2 つのチェックで担保されます。
| チェック | コマンド | 実行タイミング |
|---|---|---|
| ベンダー化された内容の整合性 — 件数、注釈、「削除は一切しない」という約束、マニフェストのバージョン、README にすべてのツールが記載されていること | node test/vendored.mjs | push と PR のたび |
| ブリッジがベンダー化された機能を正確に提供し、キーなしの呼び出しを案内すること | node test/introspect.mjs | push と PR のたび |
README の表が tools.json から再生成されていること | node scripts/gen-readme.mjs --check | push と PR のたび |
tools.json が固定された api リリースとバイト単位で一致していること | npm run tools:check | トークンが利用可能な場合(下記を参照) |
ツールの機能に関する変更を取り込むには、次の手順を実行します。
# 1. point api-pin.json's "ref" at the release you are vendoring
# 2. read a DETACHED WORKTREE at that tag — never the shared api checkout,
# which other sessions commit to and which sits on master
git -C ~/git/transcodely/api worktree add --detach /tmp/api-pin v5.X.0
TRANSCODELY_API_PATH=/tmp/api-pin npm run tools:sync
npm run readme:gen
git -C ~/git/transcodely/api worktree remove /tmp/api-pin
# 3. bump the version in server.json + package.json, in the same commit
npm test
または、手順 2 を完全に省略できます。API_REPO_TOKEN が設定されており、TRANSCODELY_API_PATH が設定されていない場合、スクリプトが固定されたタグを直接クローンします。固定されたバージョンを検証するのはこのモードだけなので、こちらを優先してください。
正直な制約: transcodely/api はプライベートリポジトリのため、同等性チェックのジョブには API_REPO_TOKEN に設定した読み取りトークンが必要で、フォークからのプルリクエストでは実行できません。トークンがない場合、スクリプトは終了コード 78 で終了し、ジョブは成功扱いではなく not armed と報告します。チェックしていない同等性を主張することはありません。常時実行される上記のチェックでも、ここで実際に起きたドリフト、つまり README、マニフェスト、ブリッジが古い数値のままなのにエクスポートだけが変わる問題を検出できます。
マニフェスト
server.json は公式 MCP レジストリに公開されるマニフェストです。再公開を反映するには、その version を更新する必要があります。レジストリが提供するのは最後に公開されたバージョンの説明なので、バージョンを変更せずに説明だけを編集しても反映されません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。