OpenClip: サムネイルと画像編集
通常は一緒に使われる 2 つの無料ツール:
extract_thumbnails- 動画からフレームを抽出します。edit_image- 画像を圧縮、リサイズ、トリミング、またはフォーマット変換します。
どちらも無料で、OpenClip アカウントが必要ですが、サブスクリプションやクレジットは不要です。
セットアップ(最初の 1 回のみ)
OpenClip は https://openclip.app/mcp にあるリモート MCP サーバーです。OAuth プロンプトが表示されたら OpenClip アカウントでサインインしてください。コピーする API キーはありません。
- Claude Code:
claude mcp add --transport http openclip https://openclip.app/mcp、その後/mcpで認可。 - Claude Desktop / web: 設定、コネクタ、「カスタムコネクタを追加」、URL を貼り付け、サインイン。
- Cursor (
.cursor/mcp.json):{ "mcpServers": { "openclip": { "url": "https://openclip.app/mcp" } } } - ヘッダーのみのクライアント:
openclip.app/settings/connectで MCP トークンを発行し、Authorization: Bearer <トークン>を指定してhttps://openclip.app/mcp/keyに接続します。
動作確認: get_account を呼び出します。
ファイルの取り込み
create_upload(filename, content_type)はidとupload_urlを返します。- 生のバイト列を
upload_urlに PUT します。 - 返された
idをvideo(サムネイルの場合)またはfile(画像編集の場合)引数として渡します。
complete_upload を呼び出さないでください。 これは有料のクリッピングパイプラインを開始します。無料ツールはアップロードされたファイルを直接読み取ります。list_videos に含まれる動画も入力として使用できます。
extract_thumbnails
extract_thumbnails(video, count?, width?)
count- 1 から 10、デフォルトは 1。フレームは動画全体に分散されるため、count: 5とすると大まかなコンタクトシートが得られ、そこから選択できます。width- 出力フレームのピクセル幅(オプション)。
出力は個々の画像 URL ではなく、フレームの ZIP ファイル です。ユーザーに ZIP の URL を渡すか、特定のフレームが必要な場合は展開してください。
ユーザーが均等な間隔ではなく、正確な瞬間のフレームを希望する場合は、まず edit_video(operation="trim"、openclip-video-editing を参照)でその瞬間に動画をトリミングし、その後トリミングされたクリップから 1 つのサムネイルを抽出します。
edit_image
edit_image(file, operation, ...params)、1 回の呼び出しで 1 つの操作:
- compress -
quality1 から 100(デフォルトは 80)、オプションのformat(jpg、png、webp)。 - resize - ピクセル単位の
widthとheight、オプションのformat。 - crop -
aspect("1:1"、"9:16"、"16:9"、"4:5")または明示的なx、y、width、height、オプションのformat。
画像が Web ページに使われる場合は webp、どこでも動作する必要がある場合は jpg を使用してください。
ポーリング
どちらのツールも status: "queued" を持つ tool_job hashid を返します。5 ~ 10 秒ごとに get_tool_job_status(tool_job) をポーリングします:
queued/processing- まだ処理中、ポーリングを続けてください。completed- 永続的な CDN のoutputsURL とresult_metaを返します。failed-errorを返します。
ルール
- 必ずポーリングしてください。両方のツールは非同期です。
edit_imageは 1 回の呼び出しで 1 つの操作です。リサイズしてから圧縮するには、2 回の呼び出しを順番に実行します。extract_thumbnailsは常に ZIP を返します。ユーザーに個々のフレーム URL を約束しないでください。- 出力 URL は永続的な CDN リンクであり、署名や期限はありません。
- 無料利用は 1 日あたりのレート制限とファイルサイズの上限があります。
プロンプトからアクションへの例
- 「この動画からサムネイルを取得して」 -
create_upload、PUT バイト列、extract_thumbnails(video)、ポーリング、ZIP URL を返す。 - 「選択するために 5 つのフレームをください」 -
extract_thumbnails(video, count=5)、ポーリング。 - 「1:30 のフレームが欲しい」 -
edit_video(video, operation="trim", start_ms=90000, end_ms=91000)、ポーリング、その後その出力に対してextract_thumbnails、ポーリング。 - 「この画像を正方形の webp にして」 -
edit_image(file, operation="crop", aspect="1:1", format="webp")、ポーリング。 - 「この PNG は大きすぎる、縮小して」 -
edit_image(file, operation="compress", quality=75, format="webp")、ポーリング。
関連
被写体を切り抜いて透明 PNG にするのは openclip-remove-background です。動画のトリミングとクロッピングは openclip-video-editing です。