mcpField
F
fcp-mcp — Final Cut Pro MCP Server

fcp-mcp — Final Cut Pro MCP Server

ローカル
github.com/dreliq9メディア・デザイン122 週間前に更新

fcp-mcp — Final Cut Pro MCP Server について

fcp-mcpは、Final Cut Proのワークフロー向けMCPサーバーです。FCPXMLの検査、生成、編集をレビュー可能なトランザクション形式で行い、既定プロファイルではFinal Cut Proを直接変更しません。

主な機能

  1. 01タイムラインとメディア品質の検査
  2. 02FCPXMLの生成と編集
  3. 03差分レビュー後の変更確定
  4. 04複数の交換形式への書き出し
  5. 05メディア分析とキャラクターリグ作成

活用シーン

  1. 01フラッシュフレームや空白の検出
  2. 02FCPXML変更のレビューと確定
  3. 03タイムラインの他形式への書き出し
  4. 04メディアの音声やシーン情報の確認

MCP 対応

FCPXMLの検査、品質確認、編集、書き出し、メディア分析ツールをMCPクライアントに提供します。利用できるツールはプロファイルで決まり、Final Cut Proのライブ操作には別途有効化が必要です。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"dreliq9-fcp": {
"command": "uvx",
"args": [
"fcp-mcp"
],
"env": {
"FCP_MCP_OUTPUT_DIR": "<FCP_MCP_OUTPUT_DIR>"
}
}
}
}
起動コマンドuvx fcp-mcp
設定が必要な環境変数
FCP_MCP_OUTPUT_DIRDirectory for modified FCPXML outputs (default: alongside input with _modified suffix)

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

パッケージ
pypifcp-mcp0.2.0

ツール

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

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

詳細

fcp-mcp — Final Cut Pro MCP サーバー

信頼できる、ローカルで、人間の承認に基づく Final Cut Pro ワークフロー。 fcp-mcp は FCPXML を検査、生成し、トランザクション方式で編集した後、必要に応じて検証済みの成果物を Final Cut Pro に渡します。デフォルトのプロファイルでは、ライブ環境またはオフライン環境への直接的な変更は行いません。

この開発カタログでは、4 つのプロファイルにわたり、v0.3.0 のベースラインに 3 つのインポートブリッジツールを追加しています。対象は、範囲を限定した FCPXML の相互運用と、テスト済みの Final Cut Pro への引き渡し機能であり、Final Cut Pro を完全に自律制御できると主張するものではありません。デフォルトのワークフローは、検査、準備、レビュー、ハッシュ承認、コミットの順です。

You: "Find and repair flash frames in hero.fcpxml."
Claude → fcpxml_detect_flash_frames → fcpxml_workflow_prepare
       → review semantic diff + candidate hash → fcpxml_workflow_commit
Result: the reviewed candidate is atomically committed with durable evidence

まずはこちらをご覧ください:

プロジェクト構成

fcp-mcp/
├── src/fcp_mcp/
│   ├── __init__.py
│   ├── __main__.py              # python -m fcp_mcp CLI
│   ├── cli.py                   # serve, doctor, doctor --json, --version
│   ├── config.py                # immutable environment configuration
│   ├── contracts.py             # stable errors + structured diagnostics
│   ├── diagnostics.py           # non-mutating runtime readiness checks
│   ├── observability.py         # text/JSON transaction events
│   ├── server.py                # MCP v2 entry and profile-selected handlers
│   ├── tool_metadata.py         # MCP safety annotation presets
│   ├── automation/
│   │   └── osascript.py         # argv-isolated AppleScript/JXA runner
│   ├── security/
│   │   └── paths.py             # allowed-root and output policy
│   ├── fcpxml/
│   │   ├── parser.py            # FCPXML → Python object tree
│   │   ├── writer.py            # transactional XML mutation/writing
│   │   ├── models.py            # TimeValue, Timecode, Clip, Timeline, etc.
│   │   ├── time_utils.py        # rational-arithmetic timecode
│   │   ├── analysis.py          # pacing, flash frames, gaps, duplicates
│   │   ├── validator.py         # DTD-style structural validation
│   │   ├── generator.py         # programmatic project/timeline creation
│   │   ├── puppet.py            # character puppet system
│   │   ├── diff.py              # timeline A/B comparison
│   │   └── transaction.py       # validated atomic FCPXML commits
│   ├── fcp_control/             # AppleScript bridge for live FCP control
│   ├── media/
│   │   └── ffprobe.py           # ffprobe wrapper for media analysis
│   ├── pipeline/                # multi-step workflows
│   ├── workflow/                # durable prepare, approval, commit, recovery
│   └── utils/
│       ├── atomic_write.py       # backup, replace, rollback
│       ├── safe_xml.py          # defusedxml hardening
│       └── paths.py             # trusted system path helpers
├── tests/                       # complete unit + contract suite
├── scripts/                     # docs, coverage, and wheel gates
├── docs/
│   ├── README.md                # documentation map and status
│   ├── research/                # dated research records
│   └── reviews/                 # release evidence and decisions
├── examples/
│   ├── quickstart.py            # install verification
│   └── GALLERY.md               # workflow gallery with prompts
├── pyproject.toml
├── server.json                  # MCP Registry manifest
├── LLM_GUIDE.md                 # operational guide for agents
├── WORKFLOWS.md                 # production recipes
├── CHANGELOG.md
├── ROADMAP.md
├── CONTRIBUTING.md
└── LICENSE

セットアップ

前提条件
  • Python 3.10+
  • Final Cut Pro がインストールされた macOS 15.6 以降
  • $PATH 上の FFmpeg(media_* ツール用):brew install ffmpeg
  • Apple Compressor(任意、compressor_* ツール用)
インストール

PyPI から現在公開されているリリースをインストールします:

pipx install fcp-mcp

または、ソースからインストールします(コントリビューター向け):

git clone https://github.com/dreliq9/fcp-mcp.git
cd fcp-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
確認
fcp-mcp --version
fcp-mcp doctor
fcp-mcp doctor --json
python examples/quickstart.py

doctor は、準備が整っている場合は 0、オフラインサービスは利用可能だが任意の機能が制限されている場合は 1、設定によって必須のランタイム動作が妨げられている場合は 2 で終了します。MCP クライアントは、fcp_doctor を通じて同じ構造化インターフェースを呼び出せます。

Claude Code に接続
claude mcp add-json fcp '{"type":"stdio","command":"fcp-mcp"}' --scope user

ソースからインストールした場合は、代わりに仮想環境の Python を指定します:

claude mcp add-json fcp '{"type":"stdio","command":"/FULL/PATH/TO/.venv/bin/fcp-mcp"}' --scope user

または、~/.claude.json を直接編集します:

{
  "mcpServers": {
    "fcp": {
      "type": "stdio",
      "command": "fcp-mcp"
    }
  }
}
Claude Desktop

同じ設定を Claude Desktop の設定ファイルに追加します:

  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
接続を確認
claude mcp list       # from terminal
/mcp                  # inside Claude Code

カタログプロファイル

FCP_MCP_PROFILE でプロファイルを選択します。デフォルトの workflow プロファイルでは、検査 → 準備 → レビュー → ハッシュ承認 → コミットの手順を、範囲を限定してレビュー可能な形に保ちます。

プロファイルツールプロンプトリソース用途
inspect3020オフラインでの検査と診断
workflow(デフォルト)3433レビュー可能なトランザクション方式の FCPXML 編集
edit7653オフラインでの直接変更、インポート準備、ワークフロー
full9753すべてのオフラインツール、およびオプトイン方式のライブ FCP、メディア、Compressor ツール

97 個のツールには、edit と full のみに含まれる、youtube-mcp.materialized-clip-plan/v1 の来歴アダプター fcpxml_generate_from_clip_plan が含まれます。ライブ FCP の制御は、FCP_MCP_ENABLE_LIVE_CONTROL=1 が設定されない限り、引き続き個別に無効です。full を選択しても、その権限は付与されません。

利用可能なツール(full に 97 個)

完全なカタログには、14 の機能カテゴリにわたる 96 個のドメインツールと fcp_doctor が含まれています。

カテゴリ数機能
inspect8クリップ/マーカー/エフェクト/ロールの解析と一覧表示、ペース分析、タイムライン統計、A/B 差分
qc10フラッシュフレーム、ギャップ、重複、メディアリンク、フレームレート、オーディオレベル、安全領域、再生時間、構造検証、QC 集計レポート
edit12マーカー、キーワード、タイトル、オーディオ、トランジション、トリム、分割、削除、並べ替え、速度、ロール割り当て、フォーマット変更
heal3フラッシュフレームの修正、ギャップの補完、無音の削除
batch4マーカー、名前変更、ロール割り当て、多数のクリップへのトランジション適用
generate5新規プロジェクト/タイムライン、ラフカット、モンタージュ、プロベナンスを保持したクリッププラン FCPXML の生成
templates3FCPXML テンプレートの一覧表示と保存。fcpxml_apply_template は v0.3.0 では引き続き unsupported_contract です
io5SRT/EDL のインポート、EDL + DaVinci Resolve XML + Premiere FCP7 XMEML のエクスポート
live20AppleScript によるライブラリ/イベント/プロジェクト、再生、メニュー/キーボード、共有、検出
import bridge3検証済みの宛先指定 XML の準備、承認済みネイティブリクエストの実行、メタデータの照合
puppet7モーションプリセットを備えた、FCPXML のパラメトリックキャラクターリグ
media10ffprobe + ffmpeg による情報、ラウドネス、無音、ビート、シーン、サムネイル、オーディオから MIDI への変換
compressor2Compressor 設定の一覧表示とエンコードジョブの実行
workflow4永続的な編集実行の準備、確認、ハッシュ承認、コミット、キャンセル

主な機能

1 つのサーバーに 3 つのレイヤー

ほとんどの FCP MCP は、いずれか 1 つの領域に特化しています。DareDev256/fcpxml-mcp-server は FCPXML 専用です。 elliotttate/finalcutpro-mcp は AppleScript/JXA を多用し、FCPXML の機能は限定的です。 fcp-mcp は両方に対応し、さらにメディア分析(ffprobe)とパラメトリックな パペットシステムを備えています。エージェントは、ライブラリを開いて、アクティブな タイムラインを確認し、XML にパッチを適用して、再インポートし、共有を実行し、 Compressor ジョブをエンドツーエンドで実行できます。

有理数演算によるタイムコード

時間の値は分数("720/24s")として保存され、表示境界でのみ 浮動小数点数に変換されます。23.976 / 24 / 29.97 / 59.94 / ドロップフレームでもフレーム精度を維持し、分割、トリム、 連結時の丸め誤差によるずれは発生しません。

スコープ制限とトランザクションに対応した XML 処理

すべての .fcpxml の読み込みは、utils/safe_xml.py 経由で defusedxml を使用します。XXE、エンティティ展開、外部エンティティは デフォルトでブロックされます。パーサーは、設定された XML のサイズと深さの上限を 適用します。

ユーザーパスは、シンボリックリンクを解決した後、設定済みのルート配下に解決されます。FCPXML の書き込みは、宛先と同じ場所にあるセキュアな一時ファイルにシリアル化され、 構造検証が行われます。既存の宛先を置き換える場合はバックアップが作成され、 アトミックにコミットされた後、再度検証されます。 組み込みバリデーターが確認するのは、実装されている不変条件です。Apple のスキーマを 完全に検証するものではありません。重要な出力の互換性を確認するには、 使い捨ての Final Cut Pro プロジェクトへのインポートが正式な判定基準となります。 Final Cut Pro がインストールされたリリース用ワークステーションでは、候補を 宣言された FCPXML バージョンに一致する DTD に対して事前検証してください。

python scripts/apple_dtd_gate.py path/to/candidate.fcpxml

この判定では、インストール済みの Final Cut Pro アプリケーションバンドルから DTD を読み取ります。 プロジェクトが Apple のスキーマをコピーまたは再配布することはありません。DTD の検証に 合格しても、使い捨てプロジェクトへのインポートに代わるものではありません。Final Cut Pro は メディアとアプリケーションレベルのセマンティクスも検証するためです。

fcpxml_assign_role、fcpxml_batch_assign_roles およびそれらのワークフロー 操作は、オーディオロールを割り当てます。asset-clip の場合、fcp-mcp は Apple の audioRole 属性を書き込み、互換性のために従来の role の値も引き続き読み取ります。

確認可能なトランザクション編集

デフォルトプロファイルでは、次の4つのワークフローツールが公開されます。 fcpxml_workflow_prepare、fcpxml_workflow_status、 fcpxml_workflow_commit、fcpxml_workflow_cancel。

Prepare は、固定された上限付きの編集グラフを実行し、候補、セマンティック差分、 検証エビデンス、イベントチェーンをプライベートな FCP_MCP_STATE_DIR の下に保存します。公開先は作成も変更もされません。 返された概要と diff_uri を確認し、返された値と完全に一致する candidate_sha256 を expected_candidate_sha256 として commit に渡します。 クライアントの承認はその候補に暗号学的に紐付けられますが、 client_unverified_human として記録されます。サーバーは、チャットメッセージを 人間が承認したことを独自に証明できません。

3つの読み取り専用テンプレートで、永続的なエビデンスを参照できます。 fcp-workflow://runs/{run_id}、 fcp-workflow://runs/{run_id}/events、および fcp-workflow://runs/{run_id}/diff です。候補の XML は意図的にプライベートに 保たれ、リソースとして公開されません。中断された commit は永続的なエビデンスに 基づいて評価され、次の方法で明示的に照合できます。

fcp-mcp workflow reconcile RUN_ID --json

これは上限付きのワークフローエンジンであり、汎用グラフランタイムではありません。 MCP Tasks は使用せず、バックグラウンドで自律型エージェントを実行することもありません。

NLE 間のエクスポート

同じタイムラインを3つのターゲットに出力します。

  • fcpxml_export_resolve — DaVinci Resolve 形式の XML(v1.9)
  • fcpxml_export_fcp7 — Premiere 互換の XMEML(FCP7 形式)
  • fcpxml_export_edl — カラーグレーディングおよびアーカイブのパイプライン向けフラット EDL
パラメトリックキャラクターパペット

puppet_* ツールは、すべて FCPXML 内でアニメーション付きのキャラクターリグを構築します。 サードパーティ製のモーションテンプレートは不要です。パーツ、キーフレーム、プリセット (歩く、話す、手を振る、複数キャラクターのコンポジション)から XML を出力し、 構造検証を行った後、使い捨てプロジェクトへの FCP インポートゲートを実行します。

編集前の QC
fcpxml_qc_report("hero.fcpxml")
  → Markdown validation summary and timeline statistics
  → gaps and flash frames with timecodes
  → duplicate sources
  → pacing distribution

メディアリンク、フレームレート、オーディオレベル、セーフゾーン、目標尺は、 それぞれ個別の fcpxml_check_* ツールです。集約レポートに含まれていると 思い込まず、必要なチェックを個別に実行してください。

プログラムによる XML インポートブリッジ

fcpxml_prepare_import(path, library_path) は、Final Cut に接続せずに、名前を指定した イベント/プロジェクトを1つ準備します。既存の .fcpbundle、対象を限定したローカル メディアファイル、および一致するインストール済み Apple DTD が必要です。プライベートな アーティファクトには、Apple がドキュメント化している import-options のライブラリ URL が含まれます。メディアは FCP_MCP_WORKFLOW_MAX_ARTIFACT_BYTES の上限内でプライベートなスナップショットに コピーされます(ステージング済みメディアとステージング済み XML の合計。デフォルトは 準備1回あたり 268,435,456 bytes / 256 MiB)。Final Cut にはアセットをライブラリに コピーするよう指示します。警告は表示されたままです。競合する埋め込み先は拒否されます。 Motion の標準テンプレート UID と、それに一致するインストール済み標準ロケーターは サポートされます。外部 Motion テンプレートおよびロケーターリソースは拒否されます。 メディアブックマークは削除され、確認済みのスナップショット URL に置き換えられます。

ディスパッチでは、ステージングされたすべてのファイルの固定 ID とハッシュを付けて、 確認済み XML の別の封印済みコピーを使用します。ブリッジは、ネイティブの プリフライト後にこれらを確認します。ファイルのモードは 0400、スナップショット ディレクトリのモードは 0500 です。公開パス用ツールは予約済みのステージングツリーに アクセスできません。スナップショットは非同期読み取りに備えて、メタデータの確認後も 含めて保持されます。自動クリーンアップはありません。そのため、ディスク領域を消費します。 リクエスト、照合、エビデンス/復旧の判断をまたいで、スナップショット、計画、 ディスパッチ記録を含むプライベートなインポート状態全体を FCP_MCP_STATE_DIR/import-bridge に保持してください。ディスパッチが完了するまで、ソース XML は変更しないでください。 準備済みスナップショットを削除、移動したり、パーミッションを変更したりしないでください。 受け入れ済みであることやメタデータが一致することは、Final Cut が読み取りを終えた証明には なりません。状態を削除すると、重複ディスパッチのエビデンスも削除されます。そのエビデンスが ないことは、別のインポートを許可するものではありません。 保持対象の作業には、安定したプライベートな FCP_MCP_STATE_DIR を使用してください。管理対象のワークスペースではディレクトリのアクセス権が正規化され、0500 の封印が無効になることがあります。/private/tmp などの一時的な場所では、期間を限定したテストでこの正規化を回避できますが、OS や別のプロセスによって内容が削除される可能性があるため、永続的な保持は保証されません。状態、アクセス権、または識別情報が変わった場合は、停止して原因を調査してください。送信を強行するためにアクセス権を修復したり、検証を回避したりしないでください。このブリッジでは、クリーンアップや状態の移行は行われません。

これらの制御は、信頼できる OS アカウントとインストール済みの Final Cut アプリケーションを前提としています。同じユーザーまたは root として実行される悪意のあるプロセスに対しては隔離されていません。そのようなプロセスは、アプリが読み取る前にアクセス権を変更したり、パスを置き換えたりできます。3 つのブリッジツールは、不明な引数を拒否し、厳格なスキーマ型を要求します。

返された plan_sha256 を承認する前に、その成果物とターゲットを確認してください。full プロファイルでライブ制御が有効になっており、承認モードがクライアントの場合、fcp_request_import(prepared_id, expected_plan_sha256) は、正確に開かれているライブラリを検査し、既存のイベント名をブロックして、意図を記録したうえで、Open Document AppleEvent を 1 回送信します。accepted_unverified は、イベントがエラーなしで返されたことを意味します。インポートが完了したことを意味するものではありません。事前確認はネイティブ処理とアトミックではないため、アプリの状態が変わることがあり、Final Cut が確認を求める場合もあります。処理前にターゲットが見つからなくなると、Apple がライブラリを作成する場合があります。ネイティブエラーやタイムアウトは、引き続き結果が不確定な状態です。記録されたリクエストが自動的に再送されることはありません。未解決のリクエストがある場合、そのライブラリへの別のリクエストもブロックされます。

fcp_reconcile_import(prepared_id) は、アプリのメタデータを読み取り、プライベートな記録情報を更新します。metadata_observed によって確認できるのは、想定されたライブラリ URL、イベント/プロジェクトの識別情報、および長さのみです。タイムラインの内容やレンダリングは検証されません。確認情報がない場合、相違がある場合、または取得できない場合は、別のインポートを行わずに待機するか、手動で確認してください。CLI 承認モードではブリッジのディスパッチがブロックされます。このモードがクライアント承認にひそかに置き換わることはありません。XML の書き出しとレンダリングは、引き続き Final Cut に依存します。以前の fcp_import_xml ツールに変更はありません。

Apple の仕様:プログラムによるインポートおよびインポートオプション。

ライブ FCP 制御

FCP の実行中は、fcp_* ツールが AppleScript 経由で接続します。

fcp_open_library(...)
fcp_get_timeline_info()    → current project, active range, playhead
fcp_playback("play" | "pause" | "goto" | "in_out")
fcp_menu_command("File > Export > Export Using Compressor Settings...")
fcp_keyboard_shortcut("cmd+shift+e")
fcp_share("YouTube — 4K")
fcp_discover_effects()     → every installed effect/transition/title

出力ファイル

デフォルトでは、変更した FCPXML は入力ファイルと同じ場所に、_modified のサフィックスを付けて書き込まれます。呼び出しごとに output_path パラメーターで上書きするか、相対パスおよび生成される出力の基準ディレクトリを設定できます。

export FCP_MCP_OUTPUT_DIR=/your/path

FCP_MCP_OUTPUT_DIR が設定されていない場合、FCP_PROJECTS_DIR は従来のフォールバックとして引き続き使用されます。相対入力パスは、出力ディレクトリの下に解決されます。

macOS のパス区切り文字(:)を使って、追加の入力ルートを許可します。

export FCP_MCP_ALLOWED_ROOTS="/Users/me/Movies:/Volumes/Media"

これらのルート外にある絶対パスの入力およびシンボリックリンク解決後の入力は拒否されます。入力を使う操作では、明示的に指定した出力を出力ディレクトリの下、または入力ファイルの親ディレクトリの下に配置できます。解決後の入力と出力が同じファイルになる場合は、常に拒否されます。既存の出力先を置き換えると、同じディレクトリに <file>.bak.<UTC timestamp>.<transaction UUID> という名前のバックアップが作成されます。

ライブ FCP、アクセシビリティ、Compressor の操作はオプトインです。

export FCP_MCP_ENABLE_LIVE_CONTROL=1

オフラインのみで使用する場合は、設定しないでください。ランタイムイベントとトランザクションイベントの形式はデフォルトでテキストです。JSON 行形式にするには、FCP_MCP_LOG_FORMAT=json を設定してください。

ワークフローの状態は、デフォルトで macOS のアプリケーションサポートディレクトリに保存されます。隔離が必要な場合は、上書きしてください。

export FCP_MCP_STATE_DIR=/your/private/state

例

ツールの実行手順とワークフローの詳細については、全ギャラリーをご覧ください。プロンプトの例:

  • 「hero.fcpxml の構造 QC レポートを実行し、報告されたフラッシュフレームをすべて修正してください。」
  • 「これらの .srt 字幕を、V2 トラック上の FCPXML タイトルクリップに変換してください。」
  • 「アセンブリ編集の XML を、カラーグレーディング用に DaVinci Resolve XML として再エクスポートしてください。」
  • 「タイムライン上のすべてのクリップを一覧表示し、すべてのインタビュークリップに「dialogue」ロールを一括で割り当ててください。」
  • 「アクティブなライブラリを開き、最初のマーカーに移動して、Compressor 経由で ProRes 422 HQ の書き出しを開始してください。」
  • 「3 体のキャラクターが登場するパペットシーンを作成してください。1 体は歩き、1 体は話し、1 体は手を振ります。タイムラインは 5 秒です。」

アーキテクチャ

Claude Code / Claude Desktop / any MCP client
        │
        │  stdio (JSON-RPC)
        ▼
   fcp-mcp server (fcp_mcp/server.py, MCP SDK v2)
        │
        ├── fcpxml/parser + writer + models ← rational-arithmetic, defusedxml-hardened
        ├── fcpxml/analysis + validator     ← QC, pacing, flash frames, gaps
        ├── fcpxml/generator + puppet       ← programmatic timeline construction
        ├── fcpxml/diff                     ← A/B timeline comparison
        ├── workflow/                       ← prepare, verify, approve, commit, recover
        ├── private workflow ledger         ← candidates, events, hashes, reconciliation
        ├── fcp_control/ (AppleScript)      ← live FCP when available
        ├── media/ffprobe                   ← clip info, loudness, scenes, frames
        └── Compressor (CLI dispatch)       ← automated encodes
              │
              ▼
        .fcpxml (v1.11+) / EDL / DaVinci XML / FCP7 XMEML / ProRes / H.264

トラブルシューティング

fcp-mcp: command not found — インストール先の venv が PATH に含まれていることを確認するか、MCP 設定で venv の bin/fcp-mcp の絶対パスを使用してください。

media_* の呼び出しで ffmpeg: command not found が表示される — brew install ffmpeg を実行してください。FFmpeg は同梱されていません。

fcp_* ツールが「Final Cut Pro is not running」を返す — まず FCP を起動してください。ライブツールには、macOS 上で FCP が実行中であることと、FCP_MCP_ENABLE_LIVE_CONTROL=1 が必要です。

新しいバージョンの FCP で fcp_* ツールが何も表示せずに失敗する — FCP のスクリプト機能は、FCPX より前のバージョンと比べて制限されています。メニュー項目とキーボードショートカットが確実な方法です。一部の JXA クエリはアクセシビリティ権限によって制限されています(システム設定 → プライバシーとセキュリティ → アクセシビリティ → Claude/Terminal)。

fcpxml_* ツールで構造検証エラーが報告される — 実装済みのチェックには fcpxml_validate を実行してください。このバリデーターを通過しても、Apple/FCP との完全な互換性が証明されるわけではありません。Final Cut Pro がインストールされた Mac で python scripts/apple_dtd_gate.py path/to/result.fcpxml を実行し、重要な結果を使用する前に、使い捨ての Final Cut Pro プロジェクトに読み込んでください。

path_outside_scope — メディアの場所を FCP_MCP_ALLOWED_ROOTS に追加してください。外部ボリュームは暗黙的に信頼されません。

same_file_forbidden — 別の出力先を選んでください。呼び出し元が明示的に指定した場合でも、fcp-mcp がソースパスを上書きすることはありません。

fcpxml_apply_template の unsupported_contract — テンプレートの一覧表示と保存は引き続き利用できますが、クリップの置換には安定したスキーマがなく、v0.3.0 では意図的に利用できない状態です。

インポート時にテストが失敗する — venv を有効化して再インストールしてください:pip install -e ".[dev]"。


今後の予定

全計画については ROADMAP.md をご覧ください。主な項目:

  • MCP プロンプト — 提供済み:qc-check、youtube-chapters、cleanup、rough-cut、beat-sync
  • プロキシ/Resolve 間の往復 — プロキシ対応のオフライン/オンラインワークフロー

謝辞

fcp-mcp は Adam Steen と Claude(Anthropic)が共同開発しました。

ライセンス

MIT — LICENSE をご覧ください。

コメント

MCP は初めてですか?

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

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