Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Final Cut Pro MCP — 88 tools: FCPXML engine, live FCP control, media analysis, puppets.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
FCP_MCP_OUTPUT_DIR필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"fcp": {
"command": "uvx",
"args": [
"fcp-mcp"
],
"env": {
"FCP_MCP_OUTPUT_DIR": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add fcp --env FCP_MCP_OUTPUT_DIR=your-value -- uvx fcp-mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"fcp": {
"command": "uvx",
"args": [
"fcp-mcp"
],
"env": {
"FCP_MCP_OUTPUT_DIR": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"fcp": {
"type": "stdio",
"command": "uvx",
"args": [
"fcp-mcp"
],
"env": {
"FCP_MCP_OUTPUT_DIR": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
FCP_MCP_OUTPUT_DIR env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 9일 점검
레지스트리 이름이 GitHub 계정 dreliq9 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.2.0)은 7개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Python (uv)도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, CloudGPU MCP
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Rent a per-minute GPU from your MCP client, run a job, download results, shut it down.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Trusted, local, human-approved Final Cut Pro workflows. fcp-mcp inspects, generates, and transactionally edits FCPXML, then optionally hands verified artifacts to Final Cut Pro. The default profile never performs direct live or offline mutation.
This development catalog adds three import-bridge tools to the v0.3.0 baseline across four profiles. It is a bounded FCPXML interchange and tested Final Cut Pro handoff surface—not a claim of complete autonomous Final Cut Pro control. The default workflow is inspect, prepare, review, hash approval, then commit.
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
Start here:
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
$PATH (for media_* tools): brew install ffmpegcompressor_* tools)Install the current published release from PyPI:
pipx install fcp-mcp
Or from source (for contributors):
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 exits 0 when ready, 1 when offline service is usable but optional capabilities are degraded, and 2 when configuration blocks required runtime behavior. MCP clients can call the same structured surface through fcp_doctor.
claude mcp add-json fcp '{"type":"stdio","command":"fcp-mcp"}' --scope user
Or if you installed from source, point at your venv's Python:
claude mcp add-json fcp '{"type":"stdio","command":"/FULL/PATH/TO/.venv/bin/fcp-mcp"}' --scope user
Or edit ~/.claude.json directly:
{
"mcpServers": { "fcp": { "type": "stdio", "command": "fcp-mcp" } } }
Add the same config to your Claude Desktop config file:
~/Library/Application Support/Claude/claude_desktop_config.jsonclaude mcp list # from terminal
/mcp # inside Claude Code
Select a profile with FCP_MCP_PROFILE. The default workflow profile keeps the inspect → prepare → review → hash approval → commit sequence bounded and reviewable.
| Profile | Tools | Prompts | Resources | Purpose |
|---|---|---|---|---|
inspect | 30 | 2 | 0 | Offline inspection and diagnostics |
workflow (default) | 34 | 3 | 3 | Reviewable transactional FCPXML edits |
edit | 76 | 5 | 3 | Direct offline mutation, import preparation, and workflows |
full | 97 | 5 | 3 | All offline tools and opt-in live FCP, media, and Compressor tools |
The 97 tools include the youtube-mcp.materialized-clip-plan/v1 provenance adapter, fcpxml_generate_from_clip_plan, in edit and full only. Live FCP control remains independently disabled unless FCP_MCP_ENABLE_LIVE_CONTROL=1; choosing full does not grant that authority.
full)The full catalog combines 96 domain tools across 14 functional categories with fcp_doctor.
| Category | Count | What it does |
|---|---|---|
| inspect | 8 | Parse, list clips/markers/effects/roles, analyze pacing, timeline stats, A/B diff |
| qc | 10 | Flash frames, gaps, duplicates, media links, frame rates, audio levels, safe zones, duration, structural validation, aggregate QC report |
| edit | 12 | Markers, keywords, titles, audio, transitions, trim, split, delete, reorder, speed, role assign, reformat |
| heal | 3 | Fix flash frames, fill gaps, remove silence |
| batch | 4 | Markers, rename, role assign, apply transition across many clips |
| generate | 5 | New project/timeline, rough cuts, montages, and provenance-preserving clip-plan FCPXML |
| templates | 3 | List and save FCPXML templates; fcpxml_apply_template remains unsupported_contract in v0.3.0 |
| io | 5 | Import SRT/EDL, export EDL + DaVinci Resolve XML + Premiere FCP7 XMEML |
| live | 20 | AppleScript-backed library/events/projects, playback, menu/keyboard, share, and discovery |
| import bridge | 3 | Validated destination-bound XML preparation, one approved native request, and metadata reconciliation |
| puppet | 7 | Parametric character rigs in FCPXML with motion presets |
| media | 10 | ffprobe + ffmpeg info, loudness, silence, beats, scenes, thumbnails, and audio-to-MIDI |
| compressor | 2 | List Compressor settings and dispatch encode jobs |
| workflow | 4 | Prepare, inspect, hash-approve, commit, or cancel durable edit runs |
Most FCP MCPs pick a lane. DareDev256/fcpxml-mcp-server is FCPXML-only. elliotttate/finalcutpro-mcp is AppleScript/JXA-heavy with thin FCPXML. fcp-mcp does both — and adds media analysis (ffprobe) and a parametric puppet system on top. An agent can open a library, inspect the active timeline, patch the XML, re-import, trigger Share, and dispatch a Compressor job — end to end.
Time values are stored as fractions ("720/24s") and only collapsed to floats at display boundaries. Frame-accurate across 23.976 / 24 / 29.97 / 59.94 / drop-frame — no rounding drift when splitting, trimming, or concatenating.
All .fcpxml reads go through defusedxml via utils/safe_xml.py — XXE, entity expansion, and external entities are blocked by default. The parser enforces configured XML size and depth limits.
User paths are resolved beneath configured roots after symlink resolution. FCPXML writes are serialized to a secure temporary file beside the destination, structurally validated, backed up when replacing an existing destination, atomically committed, and validated again. The built-in validator checks the invariants it implements; it is not a complete Apple schema validator. Import into a disposable Final Cut Pro project is the authoritative compatibility gate for important outputs. On a release workstation with Final Cut Pro installed, preflight a candidate against the DTD matching its declared FCPXML version:
python scripts/apple_dtd_gate.py path/to/candidate.fcpxml
This gate reads the DTD from the installed Final Cut Pro application bundle; the project does not copy or redistribute Apple's schema. A passing DTD check does not replace the disposable-project import because Final Cut Pro also checks media and application-level semantics.
fcpxml_assign_role, fcpxml_batch_assign_roles, and their workflow operations assign audio roles. For an asset-clip, fcp-mcp writes Apple's audioRole attribute and continues to read legacy role values for compatibility.
The default profile exposes four workflow tools: fcpxml_workflow_prepare, fcpxml_workflow_status, fcpxml_workflow_commit, and fcpxml_workflow_cancel.
Prepare runs a fixed, bounded edit graph and stores the candidate, semantic diff, validation evidence, and event chain beneath the private FCP_MCP_STATE_DIR. It does not create or change the public destination. Review the returned summary and diff_uri, then pass the exact returned candidate_sha256 to commit as expected_candidate_sha256. Client approval is cryptographically bound to that candidate but is recorded as client_unverified_human; the server cannot independently prove that a human approved a chat message.
Three read-only templates expose durable evidence: fcp-workflow://runs/{run_id}, fcp-workflow://runs/{run_id}/events, and fcp-workflow://runs/{run_id}/diff. Candidate XML is deliberately private and is not exposed as a resource. Interrupted commits are assessed from durable evidence and can be explicitly reconciled with:
fcp-mcp workflow reconcile RUN_ID --json
This is a bounded workflow engine, not a generic graph runtime. It does not use MCP Tasks or run background autonomous agents.
Same timeline out to three targets:
fcpxml_export_resolve — DaVinci Resolve-flavored XML (v1.9)fcpxml_export_fcp7 — Premiere-compatible XMEML (FCP7 format)fcpxml_export_edl — flat EDL for color-grading and archive pipelinespuppet_* tools build animated character rigs entirely in FCPXML — no third-party motion templates required. Parts, keyframes, and presets (walk, talk, wave, multi-character compositions) emit XML for s
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요