# MCP Ecosystem & Companion Tools How **FCPXML MCP** fits into the broader Model Context Protocol ecosystem, and which companion servers pair well with video editing workflows. --- ## What Is MCP? The [Model Context Protocol](https://modelcontextprotocol.io/) is an open standard that lets AI models (like Claude) call tools exposed by local servers. Each MCP server is a specialist — it owns one domain and exposes tools for that domain. Claude Desktop (or any MCP client) can connect to multiple servers simultaneously, composing their capabilities in a single conversation. ``` Claude Desktop ├── fcp-mcp-server → Final Cut Pro timeline operations ├── gitnexus → Codebase knowledge graph + architecture analysis ├── filesystem → General file read/write └── your-custom-server → Whatever you build ``` This is the key insight: **MCP servers compose**. You don't need one server that does everything. You need focused servers that each do one thing well, and an AI client that orchestrates them. --- ## Companion: GitNexus **What it does:** GitNexus indexes a codebase into a knowledge graph — files, functions, classes, imports, dependencies — and exposes that graph via CLI, MCP tools, and a browser-based Web UI. It enables deep architectural understanding without manually tracing call chains. **Why it's relevant (relevance: 85%):** | Capability | How It Helps FCPXML MCP Development | |------------|-------------------------------------| | **Knowledge graph indexing** | Maps all 47 tool handlers, their dependencies on parser/writer/models, and cross-module call chains — useful for onboarding contributors | | **Architecture visualization** | Web UI renders the `server.py → fcpxml/*.py` dispatch tree visually, showing which handlers touch which modules | | **Impact analysis** | Before changing `TimeValue` arithmetic in `models.py`, query the graph to see every downstream consumer — prevents regressions | | **MCP tool exposure** | Runs as a sibling MCP server alongside FCPXML MCP — Claude can query the codebase graph *and* manipulate timelines in the same session | | **CLI for CI** | Index the repo in CI, query for orphan functions or circular imports as part of the lint pipeline | **Example workflow — using both servers together:** ``` User: "I want to add a new export format. Show me how the existing export pipeline works, then generate a template FCPXML." Claude: 1. [GitNexus] Query knowledge graph for export.py call chain 2. [GitNexus] Show all functions that call writer.write_fcpxml() 3. [FCPXML MCP] Generate a sample timeline via auto_rough_cut 4. [FCPXML MCP] Export it via export_resolve_xml to see the pattern → Claude synthesizes the architecture + a working example ``` **Setup (alongside FCPXML MCP):** ```json { "mcpServers": { "fcpxml": { "command": "uv", "args": ["--directory", "/path/to/fcp-mcp-server", "run", "server.py"], "env": { "FCP_PROJECTS_DIR": "/Users/you/Movies" } }, "gitnexus": { "command": "gitnexus", "args": ["mcp", "--repo", "/path/to/fcp-mcp-server"] } } } ``` --- ## Other Useful Companion Servers | Server | Domain | Pairing Use Case | |--------|--------|-----------------| | **filesystem** | File read/write | Read raw FCPXML files, write export outputs | | **memory** | Persistent context | Remember project preferences across sessions | | **fetch** | HTTP requests | Pull beat analysis JSON from remote APIs | | **sqlite** | Database queries | Track edit history, QC results over time | --- ## Building Your Own MCP Server If GitNexus and FCPXML MCP inspire you to build a domain-specific server, the pattern is straightforward: 1. **Pick a domain** — one data format, one API, one workflow 2. **Define tools** — each tool is a function with typed inputs and text outputs 3. **Use the MCP SDK** — `pip install mcp`, subclass `Server`, register handlers 4. **Test locally** — `uv run server.py` starts the server, Claude Desktop connects See [server.py](../server.py) in this repo for a production example of the dispatch-dict pattern with 47 tools. --- *Last updated: 2026-02-25*