mcpField
C
Cut Review

Cut Review

ローカル
daredev256.github.ioその他0今日更新

Cut Review について

Cut Reviewは、Final Cut Proの編集者向けのオープンソースのコマンドラインツール兼MCPサーバーです。メモをタイムラインのToDoマーカーに変換し、FCPXMLの書き出しを比較して編集差分と影響を受けたメモを示します。

主な機能

  1. 01テキストやCSVのメモをToDoマーカーに変換
  2. 02Frame.ioのコメントCSV書き出しを読み込み
  3. 03FCPXML書き出しを比較して編集差分を表示
  4. 04メモの完了状態と変更の有無を追跡
  5. 05fcp-mcp-serverの書き込みジャーナルで変更を特定

活用シーン

  1. 01クライアントのメモをFinal Cutのタイムライン上に配置
  2. 02再編集後に変更と対応するメモを確認
  3. 032つのFCPXML書き出しの差分を確認
  4. 04fcp-mcp-server経由の編集を追跡

MCP 対応

`diff`、`blame`、`notes`、`status`のアクションを持つ`review` MCPツールを提供します。`blame`ではfcp-mcp-serverの書き込みジャーナルを使って変更元を特定できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"daredev256-cutreview": {
"command": "uvx",
"args": [
"cutreview"
]
}
}
}
起動コマンドuvx cutreview

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypicutreview0.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Cut Review:Frame.io のコメントとクライアントのメモを Final Cut Pro の To-Do マーカーとして記録

Cut Review は、Final Cut Pro 用の無料のオープンソースのコマンドラインツール兼 MCP サーバーです。 クライアントのメモと Frame.io のコメントのエクスポートを、対象のクリップ上の To-Do マーカーとしてプロジェクトの FCPXML に書き込みます。再編集後は 2 つの FCPXML エクスポートを比較し、変更点と、再編集でどのメモに手が加えられたかを 1 ページに表示します。編集したのがあなたでも AI エージェントでも同じです。

PyPI Python License: MIT

Cut Review のステータスページ。6 件のメモ、3 件完了、4 件に変更あり、そして編集者のチェックとカットが食い違う 2 つのリスト

合成テストメディアを使ったデモラウンドのステータスページです。ウェブサイト:daredev256.github.io/cutreview

Final Cut Pro 12.4 で検証済みです: To-Do マーカー、そのメモテキスト、編集者のチェックは往復しても保持されます(検証結果)。

このツールにできないこと

  • レビュー用プラットフォームではありません。 サーバーもアカウントもアップロードもありません。各ページはディスク上にある HTML ファイル 1 つだけで、読み込むものは何もありません。
  • 「対応済み」とは言わず、常に「変更あり」と表示します。 「変更あり」とは、メモの近くでカットが変更されたという意味です。その変更がレビュアーの要望に沿ったものかどうかは、あなたが判断します。このページがそれ以外の主張をすることはありません。
  • メモの処理に AI は使いません。 メモは、内容を確認できるルール(src/cutreview/notes.py)で読み取られます。タイムコードのないメモは未配置として表示され、時刻が割り当てられることはありません。読み取れない行は理由とともに表示され、破棄されることはありません。
  • エディターではありません。 マーカーを書き込む以外のことはしません。クリップを変更することはなく、Final Cut を開いたり操作したりすることもありません。

クイックスタート(60 秒)

uv(brew install uv)、Python 3.10 以降、そして Final Cut Pro から書き出したプロジェクトの XML(ファイル > XML を書き出す)が必要です。

  1. メモを 1 行に 1 件ずつ、先頭にタイムコードを付けて notes.txt に記入します:
    00:00:05:00 Too long on B, cut it down
    00:00:13:00 Drone could breathe, slow it down
    
  2. メモをカット上に To-Do マーカーとして配置します:
    uvx cutreview notes cut.fcpxmld notes.txt
    
    これにより cut_notes.fcpxmld が書き込まれ、各メモが配置された場所が表示されます。Final Cut で ファイル > 読み込む > XML を選択し、タイムラインインデックス(Shift-Command-2)を開くと To-Do が表示されます。
  3. 再編集します。対応した To-Do にチェックを付けます。もう一度 ファイル > XML を書き出す を選び、たとえば cut_v2.fcpxmld として保存します。
  4. 再編集でどのメモに手が加えられたか、何が変更されたかを確認します:
    uvx cutreview status cut_notes.fcpxmld cut_v2.fcpxmld -o status.html
    uvx cutreview diff cut_notes.fcpxmld cut_v2.fcpxmld -o review.html
    

パス上に ffmpeg があると、前後のフレームが追加されます(任意)。同じ Mac に Final Cut Pro があれば、各書き込みを Apple 独自の FCPXML DTD に照らして検証できます(任意。これがない場合、検証を実行できなかったことが表示されます)。

動作内容

notes.txt ──► cutreview notes ──► cut_notes.fcpxml  (to-do markers on the clips)
                                       │
                         you, or an agent, recut it in Final Cut
                                       │
              cut_notes.fcpxml + next export ──► cutreview status ──► status.html
  1. cutreview notes は、各メモを Final Cut の ToDo マーカー(completed="0")として、その時点の映像が表示されているクリップに、クリップ固有のソース時間で書き込みます。そのため、リカット後もマーカーはクリップに付いたままです。メモ全文はマーカーのメモ欄に入ります。
  2. リカットします。対応した ToDo に Final Cut でチェックを付け、XML を書き出します。
  3. cutreview status は次の書き出しファイルを読み込みます。各メモの状態は、完了または未完了(Final Cut が XML に書き込むチェックの状態)と、変更ありまたは変更なし(メモの前後 1 秒以内でカットに変更があったかどうか)です。ページでは、状態が食い違う次の 2 つを先頭に表示します。チェック済みだが変更なし、および 変更ありだが未チェック。クリップがなくなったメモには「クリップとともに削除」と表示されます。

メモの有無を問わず、任意の 2 つの書き出しファイルに対して使えるコマンドが、ほかに 2 つあります。

  • cutreview diff old.fcpxml new.fcpxml -o review.html:変更ページです。追加、削除、トリミング、移動、再生速度の変更、調整が行われたすべてのクリップと、追加または削除されたすべてのトランジションを、タイムラインのストリップおよびメディアがこのマシンにある場合は変更前後のフレームとともに表示します。前の部分が短くなったために位置がずれただけのクリップも変更数には含まれますが、一覧には表示されません。
  • cutreview blame old.fcpxml new.fcpxml:同じページに、各変更を実行した fcp-mcp-server のツール呼び出しを、同サーバーの書き込みジャーナルから読み取って表示します。ジャーナルで説明できない変更には「ジャーナルに記録なし」と表示されます。

デモラウンドのスクリーンショット(合成メディア):変更ページ、ステータスページ、スマートフォンでのステータスページ、スマートフォンでの変更者ページ、ライトモード。

よくある質問

Frame.io のコメントを Final Cut Pro に取り込むにはどうすればよいですか?

Frame.io からコメントを CSV として書き出し(Frame.io V4 では「Comments」タブの三点メニュー)、uvx cutreview notes cut.fcpxmld comments.csv を実行してから、File > Import > XML で出力を読み込みます。Cut Review は Commenter 列と Comment 列を使って Frame.io の書き出しファイルを識別し、各コメントをその下のクリップの ToDo マーカーとして書き込み、返信を元のコメントにまとめ、画面への描画があるコメントにフラグを付け、完了済みのコメントは完了マーカーとして書き込みます。

Final Cut Pro 12.4 で動作しますか?

はい。Final Cut Pro 12.4 は、Cut Review が書き込んだ 6 つの ToDo マーカーを、正確な時刻と正しいクリップに読み込み、メモのテキストをタイムラインインデックスに表示し、編集者が付けたチェックを XML 書き出しファイルに completed="1" として書き込みました。Cut Review はその書き出しファイルを読み込み、トリミング 1 件、チェック済みだが変更なしのメモ 2 件、変更ありだが未チェックのメモ 1 件として認識しました。実際に行われた内容と一致しています。テストメディアを使った実行内容は docs/final-cut-proof.md に記録され、テストとして保存されています。

Frame.io V4 で動作しますか?

Frame.io は V4 のコメント書き出し形式が CSV またはプレーンテキストであると説明していますが、列名の一覧は公開していません。Cut Review は列の位置ではなく列名を使って読み取ります。公開された V3 世代の列名を使って再構築したファイルではテスト済みですが、実際の V4 書き出しファイルではまだテストしていません。書き出しファイルを読み取れない場合は、ヘッダー行を添えてイシューを作成してください。

CSV のメモを Final Cut Pro のマーカーとしてインポートするにはどうすればよいですか?

ヘッダー行があれば、どの CSV でも使えます。Cut Review は、列名からタイムコード列(timecode、time、tc、in、start など)とメモ列(note、comment、text、feedback など)を特定し、作成者列があればそれも使用します。uvx cutreview notes cut.fcpxmld notes.csv を実行すると、メモが確認待ちマーカーとして書き込まれます。時刻のない行は配置されなかったものとして一覧表示され、推測で配置されることはありません。

2 つの FCPXML ファイルを比較して、Final Cut の 2 つの書き出しの差分を確認するにはどうすればよいですか?

uvx cutreview diff cut_v1.fcpxmld cut_v2.fcpxmld -o review.html を実行すると、追加、削除、トリミング、移動、タイミング変更、調整されたすべてのクリップと、すべてのトランジションの変更を、タイムラインストリップと変更前後のフレームとともに一覧表示する HTML ページが書き出されます。クリップは名前ではなくソース素材で照合されるため、リップル編集、先頭のトリミング、接続クリップで作成されたカットも正しく表示されます。

AI エージェントが編集で何を変更したか確認するにはどうすればよいですか?

エージェントの作業前と作業後の書き出しに対して、cutreview diff を実行します。エージェントが fcp-mcp-server 経由で編集した場合、uvx cutreview blame before.fcpxml after.fcpxml を実行すると、そのサーバーの書き込みジャーナルから各変更の元となったツール呼び出しが特定され、手動で行われた変更には「ジャーナルに記録なし」と表示されます。カットにメモが付いていた場合は、cutreview status で、エージェントによる変更がどのメモに影響したかを確認できます。

リカットでどのクライアントのメモに対応したかを追跡するにはどうすればよいですか?

cutreview notes でメモを確認待ちマーカーとしてカットに付け、作業中に Final Cut でチェックを入れてから、次の書き出しに対して cutreview status を実行します。各メモには、完了または未完了(チェック状態)と、変更ありまたは変更なし(その前後 1 秒以内でカットが変更されたかどうか)が表示されます。ページの冒頭には、この 2 つの状態が一致しないメモが表示されます。

Cut Review は Frame.io の代替ですか?

いいえ。動画のホスティングや、クライアントからのコメント収集は行いません。Frame.io、メール、テキストメッセージ、電話などですでに受け取っているメモと、Final Cut 自体の XML 書き出しを使って作業します。

Final Cut Pro 用の MCP サーバーはありますか?

はい。fcp-mcp-server を使うと、Claude やほかの MCP クライアントが FCPXML を介して Final Cut Pro のタイムラインを読み取り、編集できます。Cut Review は、その隣で使うレビュー用のツールです。1 つの MCP ツール review として、diff、blame、notes、status のアクションを提供します(MCP ツールとしてを参照)。

比較

Cut ReviewChange List XMarker ToolboxFrame.io V4
概要無料のオープンソースのコマンドラインツール兼 MCP サーバー(MIT)Mac アプリ、US$199.99Final Cut ワークフロー拡張機能、US$19.99ホスト型レビュー プラットフォーム、無料プランと有料プラン
メモを Final Cut のマーカーとして追加はい:プレーンテキスト、任意の CSV、Frame.io コメント CSV を、クリップ上の To Do マーカーとして追加いいえはい:Frame.io FIOJSON(V4 ベータ版を含む)、Vimeo、Wipster、Dropbox Replay、Premiere CSV、Timecode+、メールテキスト。解決済みのコメントは完了として追加CSV またはテキストとしてコメントをエクスポートできます。V3 の「Import Comments into FCP」の記事は現在、ヘルプセンターのトップページにリダイレクトされます
カットの 2 つのバージョンを比較任意の 2 つの FCPXML エクスポートをすべてのレーンで比較し、ソース素材で照合2 つのプロジェクトのメインストーリーラインを比較し、PDF または TSV の変更リストとして、引き取りリストと破棄リストを作成いいえアップロードした 2 つのバージョンを並べて、または重ねて再生します。比較するのは映像であり、タイムラインのクリップではありません
再編集で変更されたメモはい:完了/未完了と、変更あり/変更なしを照合いいえいいえいいえ
各変更を行ったエージェントのツール呼び出しはい、fcp-mcp-server のジャーナルから取得いいえいいえいいえ

2026-11-12 に各製品の公式ページを参照:Change List X、Marker Toolbox、Frame.io コメントのエクスポート、Frame.io Comparison Viewer。価格は米国の Mac App Store のものです。

音声や VFX 用に、フィートとフレーム単位のコンフォーム変更リストと、引き取りリストおよび破棄リストが必要な場合は Change List X をお使いください。メモが Vimeo、Wipster、Dropbox Replay、Frame.io の FIOJSON ダウンロードから届く場合や、描画された注釈を取り込みたい場合は Marker Toolbox をお使いください。Cut Review は、メモをカットに追加した後の工程、つまり再編集で実際に変更されたメモを確認するためのツールです。

メモの取り込み口

$ cutreview notes music-video.fcpxml music-video.notes.txt
6 notes written as to-do markers into music-video_notes.fcpxml
Times counted from the sequence's start timecode.
  #1   00:00:00:12  on SHOT A 1: Open on something brighter, this feels flat
  #2   00:00:05:00  on SHOT B 1: Too long on B, cut it down
  #3   00:00:02:12  on OVERLAY 1: Overlay 1 is too busy, lose it
  #4   00:00:10:12  on OVERLAY 3: Overlay 3 distracts from the lyric
  #5   00:00:13:00  on DRONE 1: Drone could breathe, slow it down
  #6   00:00:30:00  on TRACK (audio only under it): Hold on the performance here
2 not placed (listed, never guessed):
  music-video.notes.txt line 8: no timecode: Overall the colour is great, no notes on the grade
  music-video.notes.txt line 11: after the end of the cut: Fade out sooner
2 unreadable (listed, never dropped):
  music-video.notes.txt line 9: '00:01:75:00' has minutes or seconds past 59: 00:01:75:00 Check the lyric sync
  music-video.notes.txt line 10: a timecode with no note after it: 00:00:13:00
Checked: Valid against FCPXML 1.13 DTD (FCPXMLv1_13.dtd); 6 markers read back on their clips, each within one frame.
Ledger: music-video_notes.fcpxml.cutreview.json

次の 3 つの形式を読み込みます。

  • プレーンテキスト:1 行につき 1 つのメモを記述し、先頭にタイムコードを置きます:00:01:23:12 note、1:23 note、[00:01:23:12] note、範囲指定 00:01:23:12 - 00:01:25:00 note。インデントされた行は、その直前のメモの続きとして扱われます。
  • CSV:ヘッダー行が必要です。時間の列は名前(timecode、time、tc、in、start など)から特定し、メモの列も同様に特定します(note、comment、text、feedback など)。作成者の列があれば、それも使用します。時間はタイムコードまたは秒数で指定できます。
  • Frame.io のコメント CSV エクスポート:Commenter 列と Comment 列から形式を判定します。列は名前で照合するため、列の追加や並べ替えがあっても読み込めます。返信は返信先のコメントにまとめられ、描画付きのコメントにはフラグが付けられ、すでに完了としてマークされたコメントは完了済みマーカーとして書き込まれます。--source-tc は Timecode Source 列を使用します。Frame.io は V4 の列リストを公開していません。列名の出典についてはDECISIONS.mdを参照してください。

タイムコードは、Final Cut に表示されるシーケンスの開始タイムコードを基準にします。シーケンスがゼロから始まり、カットが 1 時間未満で、すべてのメモが 01:00:00:00 を過ぎた時刻になっている場合、cutreview はファイルを開始時刻が 1 時間のレビュー用コピーとして読み込み、その旨を表示します。--start-tc で手動設定できます。

書き込みのたびに 2 つの検証を実行します。どちらか一方でも失敗すると、ファイルは作成されません。インストール済みの Final Cut Pro に付属する Apple 独自の FCPXML DTD に対する xmllint の検証と、fcp-mcp-server のパーサーで読み戻し、各マーカーが 1 フレーム以内の誤差で対応するクリップ上にあることを確認する検証です。ファイルは FCPXML 1.13 として書き込まれます(入力が 1.14 の場合は 1.14 のままです)。

変更の扉

cutreview diff はクリップ名ではなく、素材を比較します。各クリップはソースファイルの範囲であり、2つのカットはソースごとに比較されます。

表示該当する場合
削除/追加クリップの素材が完全になくなった、または新たに追加された
トリミングクリップの素材の一部が、開始位置、終了位置、または中間から出入りした
移動素材がメインストーリーライン上で順不同に再生されるようになった、または接続されたクリップがアンカーから離れたか、別のレーンに移動した
リタイミングクリップの速度が変わった
調整adjust-* または filter-* の設定が変わった、またはクリップが無効化された
トランジショントランジションが追加、削除、または長さ変更された

リップルに伴って移動しただけのクリップは件数に含まれますが、一覧には表示されません。ページ上のフレームはソースフレームです。エフェクト、タイトル、カラーグレードは描画されません。

cutreview blame は、FCP_MCP_JOURNAL、プロジェクトフォルダー(またはその journal/ または .fcp-mcp/journal/)、あるいは ~/.fcp-mcp/journal/ から fcp-mcp-server のジャーナルを読み込み、古いファイルからハッシュごとにたどります。各変更は、その素材を変更した最後のジャーナル記録済みの書き込みに割り当てられます。最後にジャーナルへ記録された書き込み以降の作業は、「ジャーナルに記録されていません(Final Cut での手作業、またはジャーナル機能のないツールによる作業)」と表示されます。2つの書き込みの間にあるファイルが失われている場合、それらの書き込みはまとめて表示されます。

MCP ツールとして

uvx cutreview mcp

stdio 経由で、diff、blame、notes、status の4つのアクションを備えた1つのツール review を提供します。書き込むファイルはすべて、指定されたカットのフォルダー内に置かれます。

Claude Code:

claude mcp add cutreview -- uvx cutreview mcp

Claude Desktop および JSON 設定を受け付けるその他のクライアント:

{
  "mcpServers": {
    "cutreview": { "command": "uvx", "args": ["cutreview", "mcp"] }
  }
}

公式 MCP レジストリでの名前は io.github.DareDev256/cutreview です。編集を行う fcp-mcp-server と組み合わせて使います。

開発に参加する

git clone https://github.com/DareDev256/cutreview && cd cutreview
uv venv && uv pip install -e ".[dev]"
.venv/bin/python -m pytest

「影響を受ける」の正確な定義

変更が、以前のカットにおけるノートのフレーム、または後のカットにおけるノートのマーカーから1秒(--reach)以内にある場合、そのノートは影響を受けます。オーディオレーン上の変更が影響するのは、オーディオ上にあるノートだけです。そのため、音楽ベッドを移動しても、映像に関するノートには影響しません。リップルに伴って移動しただけのクリップは変更ではなく、何にも影響しません。それだけです。ノートの隣でトリミングすると、レビュー担当者が意図したトリミングであるかどうかにかかわらず、そのノートに影響します。

v0.1 の制限事項

  • Final Cut のみ対応しています。Resolve と Premiere のプロジェクトは v0.2 まで対応しません。
  • Final Cut との往復は、1か所をトリミングしたテストメディアで一度実施済みです(docs/final-cut-proof.md)。次は、Final Cut でブレード、トランジション、速度変更を行った実プロジェクトで試す予定です。
  • 音声メモには対応していません。タイムコードが設定されていないノートにも対応していません。個別の変更を取り消すこともできません。
  • スピードランプは平均速度1つとして扱われます。
  • コンパウンドクリップ内のクリップは調べません。

クレジット

fcp-mcp-server(MIT)を基盤として構築されています。FCPXML パーサー、ライターの要素ウォーカー、書き込みジャーナル、DTD チェックは fcp-mcp-server が提供します。フィクスチャ fixtures/music-video.fcpxml と fixtures/sample.fcpxml はそのサンプルから取得したもので、ライセンスは fixtures/LICENSE-fcp-mcp-server にあります。

ライセンス

MIT。Copyright (c) 2026 James Olusoga (DareDev256)、jamesdare.com。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。