shotgrid-mcp
Provides tools for interacting with Autodesk ShotGrid (Flow Production Tracking), enabling AI agents to query, create, update, delete, and manage entities such as projects, shots, tasks, versions, and more through a curated set of CRUD and schema-discovery tools with safe-by-default dry-run writes.
Click on "Install 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., "@shotgrid-mcpFind all shots in project 'Mars Mission'"
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.
ShotGrid MCP server (lean)

A Model Context Protocol server that gives LLM agents (Claude Desktop, Claude Code, Cursor, …) full
access to the ShotGrid / Autodesk Flow Production Tracking API through a small, curated, agent-first
tool surface. A leaner, write-safe repackaging of
loonghao/shotgrid-mcp-server (credit below).
ShotGrid is schema-driven, so a handful of generic CRUD + query tools reach every entity type. This server leans into that: 16 tools, one CRUD family, a
dry_runsafety gate on every write.
Built on the shoulders of loonghao/shotgrid-mcp-server
This project owes a real debt to loonghao/shotgrid-mcp-server
(MIT) — the first solid, well-engineered ShotGrid MCP. We used it heavily and it works: connection pooling,
a schema cache, an error_handler, and mockgun-based tests are all things it gets right, and it proved the
concept. Go star it. This server isn't a replacement so much as a leaner, hardened repackaging of the
same idea, tuned specifically for autonomous agents — where a tighter, safer tool surface matters more
than breadth.
What we changed to make it more solid
Three changes, each aimed at making an agent's life safer and more predictable:
In the original | What we did here — and why it's more solid |
~60 tools across two overlapping CRUD families ( | Consolidated to one CRUD family — |
Writes commit immediately; the only guard against an accidental | A |
Studio-specific tools in the core ( | Removed — anything they did is one |
Net: same 100% reach (both are generic over ShotGrid's schema), a fraction of the tool count, and safe-by-default writes. Where the original optimizes for human convenience and breadth, this one optimizes for an agent that needs to choose correctly and not break things.
Related MCP server: MCP-NG
The 16 tools
Generic power tools (full reach over every entity type):
find·find_one— query with ShotGrid filters + field projectionscreate·update·delete·revive— single-entity writes (delete= reversible retire)batch— atomic multi-op create/update/delete
Schema & discovery (so the agent can learn the site first):
schema_entity_read— all entity typesschema_field_read— fields + types for one entity typesummarize— server-side aggregation / status roll-ups (no rows pulled)text_search— global text search across entity types
High-value helpers (not just a canned filter):
whoami— connection + server infofind_projects— common entry pointproject_summary— a normalized project snapshot (counts + per-shot cast/status/thumbnail, canonical statuses) for cross-tracker verify/diffdownload_thumbnail— pull an entity's thumbnail/filmstrip to diskupload— attach a file / set a thumbnail / fill a media field
Every write tool takes dry_run (default false). create / update / delete support two preview
levels: dry_run="plan" (client-side echo, no server contact) and dry_run="preflight" — a real
dry run that resolves every referenced entity against live data, validates sg_status_list values against
the live schema, returns a before→after diff for updates, and a verdict of ok/would_fail — without
writing. Set MCP_PLAN_LOG=/path.jsonl to capture each plan/preflight as a reviewable plan file. (Other
write tools take dry_run as a plain boolean.)
Install
pip install -r requirements.txt # fastmcp, shotgun_api3, requestsConfigure (credentials)
Create a Script in ShotGrid (Admin ▸ Scripts ▸ + Add Script) and set three env vars (or pass them in your MCP client config):
var | value |
|
|
| the Script's name |
| that Script's Application Key |
For local dev you can instead drop them in a .env next to server.py (gitignored — see .env.example).
Run / wire into a client
python3 server.py # stdio transportClaude Code:
claude mcp add shotgrid -- python3 /path/to/shotgrid-mcp/server.pyClaude Desktop / Cursor (mcpServers entry):
{
"mcpServers": {
"shotgrid": {
"command": "python3",
"args": ["/path/to/shotgrid-mcp/server.py"],
"env": {
"SHOTGRID_URL": "https://yourstudio.shotgrid.autodesk.com",
"SHOTGRID_SCRIPT_NAME": "mcp",
"SHOTGRID_API_KEY": "••••"
}
}
}
}Examples (what the agent calls)
# every shot In Progress on a project, with assignees
find("Shot",
[["project","is",{"type":"Project","id":85}], ["sg_status_list","is","ip"]],
["code","sg_status_list","task_template"])
# status roll-up without pulling rows
summarize("Task", [["project","is",{"type":"Project","id":85}]],
[{"field":"id","type":"count"}],
grouping=[{"field":"sg_status_list","type":"exact","direction":"asc"}])
# preview a write before committing
create("Shot", {"project":{"type":"Project","id":85}, "code":"sh010"}, dry_run=True)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, with a dry_run gate): shotgrid-mcp (this repo),
ftrack-mcp, and
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/new_* tools, no bespoke migration 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 (e.g. casting can't round-trip through
ftrack; statuses must be mapped; media/notes/custom fields don't carry yet).
🧪 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).
Credits
loonghao/shotgrid-mcp-server(MIT) — the original ShotGrid MCP this builds on. The design and much of the API ergonomics here are downstream of that work; please credit and star it.Autodesk's
shotgun_api3— the underlying Python API.Companion to our
ftrack-mcp.
MIT licensed. If the extra breadth of the original suits you better, use it — this is just the leaner, agent-hardened cut.
Built by John Huikku · alienrobot.com
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/huikku/shotgrid-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server