FCPXML MCP 服务器(Final Cut Pro XML 后端)
使用说明(Markdown 版)
-
项目简介
- 本仓库实现了一个基于 MCP 的服务器端,名称为 fcpxml-mcp-server。它通过 JSON-RPC 向 LLM 客户端提供对 Final Cut Pro X FCPXML 项目的分析、编辑工具、以及预置的 Prompt 工作流等能力。服务器具备资源管理、工具注册与执行、以及 Prompt/Workflow 的渲染能力,旨在为 LLM 应用提供结构化的上下文服务。
-
主要功能点
- MCP 资源管理与暴露:自动发现并暴露 .fcpxml 文件作为服务器资源,方便客户端读取与分析。
- 资源读取与摘要:读取指定 FCPXML 文件并返回简要摘要(时长、分辨率、片段、标记等)。
- MCP Prompts 与 Tools:内置 5 个 Prompts(如 qc-check、youtube-chapters、rough-cut、timeline-summary、cleanup)以及 34 个 Tools(读取、校验、编辑、批量修复、生成等),支持通过工具调用执行复杂工作流。
- Tools 调用处理:通过统一的 TOOL_HANDLERS 映射,处理具体工具的参数校验与执行,并返回文本内容或错误信息。
- MCP 通信与入口:使用 stdio 传输实现 MCP 的请求/响应循环,提供 main()/main_sync() 的可执行入口,便于在本地环境直接运行。
- 会话与能力声明:服务器端实现了注册、查询、执行等能力,适配 MCP 客户端的对话式交互模式。
- 可扩展性:Prompts、Tools、以及核心处理逻辑分离,便于后续扩展新的工具或工作流。
-
安装与运行步骤
- 环境与依赖
- 需要 Python 3.10+。
- 安装本仓库的依赖(通常包含 mcp 框架及本项目代码所需依赖)。
- 安装与安装后运行
- 克隆仓库并安装为本地包:
- git clone https://github.com/DareDev256/fcpxml-mcp-server.git
- 进入目录后执行:pip install -e .
- 配置 FCP 项目目录环境变量
- FCP_PROJECTS_DIR 指向本地存放 FCPXML 文件的目录,例如 /Users/you/Movies。可通过环境变量 FCP_PROJECTS_DIR 指定。
- 启动服务器
- 直接运行 server.py,例如:python server.py
- 或者使用 Claude Desktop (或任意 MCP 客户端) 连接的方式启动(下方提供客户端配置示例)。
- 克隆仓库并安装为本地包:
- 与 Claude Desktop 的配置(由 MCP 客户端使用)
- 本仓库提供的配置示例用于 Claude Desktop,便于将服务器作为一个 MCP 服务接入 Claude:
- 使用 uv 启动(推荐,非必需,按需选择):
- command: uv
- args: ["--directory", "/path/to/fcp-mcp-server", "run", "server.py"]
- env: {"FCP_PROJECTS_DIR": "/Users/you/Movies"}
- 使用 pip 安装后直接运行(另一种常见方式):
- command: python
- args: ["/path/to/fcp-mcp-server/server.py"]
- env: {"FCP_PROJECTS_DIR": "/Users/you/Movies"}
- 上述配置仅用于示例,请将 /path/to/fcp-mcp-server 替换为实际的仓库目录。
- 基本使用方法
- 启动后,客户端可以通过 MCP 的 JSON-RPC 接口向服务器请求:
- 列出资源、读取资源摘要、列出 Prompts、获取 Prompt、列出 Tools、调用 Tool 等。
- 常见操作包括:
- 发现并读取 FCPXML 项目资源,获取项目摘要信息。
- 调用预置工具完成 batch 编辑、标记、分割、导出等任务。
- 通过 Prompts 调用组合工具链,执行 QC、生成粗略剪辑、生成 YouTube 章节等工作流。
- 如遇到错误,服务器将返回相应的错误信息,便于定位参数或文件路径等问题。
- 启动后,客户端可以通过 MCP 的 JSON-RPC 接口向服务器请求:
- 环境与依赖
-
重要提示
- MCP 客户端需要与服务器建立连接并按 MCP 规范发送请求。服务器通过标准输入输出 (stdio) 实现通信。
- FCP_PROJECTS_DIR 指定的目录应包含可分析的 .fcpxml 文件,且对客户端具有可读权限。
- 本实现包含大量工具与示例代码,务必在受控环境中测试,确保对敏感素材没有意外修改。
-
备注
- 若你需要在 Claude Desktop 之外的环境中使用,请参阅本仓库中的 server.py、tools、prompts、以及 fcpxml 子模块的实现细节,了解各工具的输入输出结构与权限控制。