ftrack MCP server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ftrack MCP serverfind all in-progress lighting shots"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ftrack MCP server

A Model Context Protocol server that gives LLM agents (Claude Desktop, Claude Code, Cursor, …) broad, typed access to the ftrack Studio production-tracking API.
Why another one? The only existing ftrack MCP on GitHub is an early, unlicensed single-author experiment. This one is MIT-licensed, broad-coverage, and tested live against an ftrack Studio trial.
Coverage philosophy
ftrack's API is a generic query + CRUD over a flexible schema (143 entity types). So coverage comes from two layers:
Generic power tools —
query,query_one,create,update,delete— reach every entity type via ftrack's query language. This alone is ~full coverage.Typed convenience tools — projects, structure, tasks, statuses, assignments, notes, lists, time logs, thumbnails, users, and full schema introspection — make the common production ops one call each.
31 tools in total (see below).
Related MCP server: Devici MCP Server
Install
pip install -r requirements.txt # fastmcp, ftrack-python-api, requestsConfigure (credentials)
Set three env vars (or pass them in your MCP client config):
var | value |
|
|
| your login email |
| a Personal API key — ftrack ▸ avatar ▸ My account ▸ Security settings ▸ Create API key |
Run
python3 server.py # stdio transportWire into Claude Code
claude mcp add ftrack \
-e FTRACK_SERVER=https://yourstudio.ftrackapp.com \
-e FTRACK_API_USER=you@studio.com \
-e FTRACK_API_KEY=*** \
-- python3 /abs/path/to/ftrack-mcp/server.py(Tools appear as mcp__ftrack__* on the next session.) For Claude Desktop / Cursor, add the same command +
env to the app's mcpServers config.
Tools
Generic (full reach): query · query_one · create · update · delete
Every write takes
dry_run(defaultfalse).create/update/delete/set_statussupport two preview levels:dry_run="plan"(client-side echo, no server contact) anddry_run="preflight"— a real dry run that resolves every reference against live data, validates statuses against the schema, returns a before→after diff, and (oncreate) stages the op in ftrack's session to run its own schema validation, then rolls back — writing nothing. SetMCP_PLAN_LOG=/path.jsonlto capture a reviewable plan file. Preflight is high-confidence, not a guarantee (ftrack validates some rules only at commit). Other write tools takedry_runas a plain boolean. Schema / discovery:list_entity_types·get_entity_schema·list_project_schemas·list_statuses·list_task_types·list_object_types·list_priorities·list_custom_attributesProjects / structure:list_projects·get_project·create_project·list_children·list_tasks·create_taskOps:set_status·assign_task·add_note·get_notes·list_lists·log_timeMedia / versions:set_thumbnail·create_version·upload_review_media(encodes a movie into a web-reviewable AssetVersion) Cross-tracker:project_summary(normalized project snapshot — counts + per-shot status/thumbnail, canonical statuses — for verify/diff) Users / meta:whoami·list_users
Examples (what an agent would call)
"every in-progress lighting shot" →
query("Task where type.name is \"Lighting\" and status.name is \"In progress\"", ["name","parent.name"])"add a note to this shot" →
add_note("Shot", "<id>", "Looks good, ship it")"what fields does a Shot have?" →
get_entity_schema("Shot")"make a task" →
create_task("<shot_id>", "Compositing", status="Ready to start")
Part of a tracker-MCP quintet — migrate projects between platforms
This is one of five sibling tracker MCPs, each with the same shape (generic CRUD + schema + typed
convenience): shotgrid-mcp,
ftrack-mcp (this repo),
kitsu-mcp, and
ayon-mcp, and nim-mcp. They all speak the same production model
(Project → Sequence/Asset → Shot → Task → Version/Status), so an agent with two of them loaded can migrate
a project from one tracker to another — read the structure from the source MCP, recreate it via the
target's create/create_* tools, no bespoke script. This trio grew out of copying one project across all
three platforms.
📊 See COMPARISON.md for a side-by-side of the four trackers (data model, status
vocabularies) and the migration incompatibilities to know about — notably that ftrack has no
shot↔asset casting (so casting can't round-trip through ftrack) and its VFX schema lacks a clean
"done"/"approved" task status (lossy status mapping).
🧪 See TESTING.md for how these servers are validated — live round-trip tests, two-level
dry-run checks, and the cross-tracker migration matrix (including what is not yet covered, stated plainly).
Notes
Reads return entities serialized to the fields you request (dot-paths like
status.name), to avoid lazy-loading huge relations. Writes auto-resolve{"id": "..."}references (parent →Context, project →Project, status →Status, type →Type, …).Validated live: all 31 tools register (incl. video version media: encode_media -> ftrackreview-mp4); query/schema/create/update/delete/notes/status round-trips pass.
Writes are gated by
dry_run(preview, nothing staged). This replaced an earliercommitflag, wherecommit=falsewas a footgun — ftrack would stage the change and a later commit would flush it.A TS port over the official
ftrack-javascriptSDK is straightforward if you want it in-stack.
MIT © 2026 John Huikku
Built by John Huikku · alienrobot.com
This server cannot be deployed
Maintenance
Related MCP Connectors
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
ADHD-friendly tasks, notes & projects for LucidNest - 18 tools, scoped tokens, Streamable HTTP.
Manage your RoyalTea game studio: tasks, milestones, team, and royalty data. 77 tools, OAuth 2.1.
- PriorifyOAuthapp.priorify
Agent-complete, permission-scoped product operations for Priorify workspaces.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables LLMs to interact with Todoist task management platform through its API, supporting all features from the official Todoist TypeScript Client.330 npmMIT
- AlicenseCqualityDmaintenanceProvides LLM tools to interact with the Devici API, enabling management of threat modeling resources including users, collections, threat models, components, threats, mitigations, and teams.254MIT
- FlicenseAqualityDmaintenanceExposes Yandex Tracker's REST API v3 as tools for LLM clients, enabling issue management and queue operations via natural language.21-
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with Autodesk ShotGrid (Flow Production Tracking) for production tracking workflows. Provides 40+ tools for CRUD operations, batch processing, media, notes, and playlists.64MIT