fpt-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SHOTGRID_URL | Yes | The exact URL of your ShotGrid site, e.g. https://yoursite.shotgrid.autodesk.com | |
| SHOTGRID_PROJECT_ID | Yes | Integer ID of the project to work on; set to 0 to disable default project scoping | |
| SHOTGRID_SCRIPT_KEY | Yes | The application key for the script | |
| FPT_MCP_STRICT_PATHS | No | Set to '1' to enforce write-path containment; default is warn-and-allow | |
| SHOTGRID_SCRIPT_NAME | Yes | The name of an API script registered in ShotGrid Admin → Scripts | |
| FPT_MCP_ALLOWED_WRITE_ROOTS | No | os.pathsep-separated list of absolute directory roots that tk_publish and sg_download are permitted to write under |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sg_findB | Search for any entity in ShotGrid with filters. Works with ALL entity types: Asset, Shot, Sequence, Version, Task, Note, PublishedFile, HumanUser, Project, Playlist, TimeLog, CustomEntity01-30, etc. Filter syntax follows ShotGrid API: [["field", "operator", value], ...] Operators: is, is_not, contains, not_contains, starts_with, greater_than, less_than, in, between, etc. |
| sg_createA | Create any entity in ShotGrid. Works with ALL entity types. Project is auto-linked if SHOTGRID_PROJECT_ID is set and 'project' is not in the data dict. |
| sg_updateB | Update any entity's fields in ShotGrid. |
| sg_schemaA | Get the field schema for any ShotGrid entity type. Returns field names, types, and properties. Use this to discover what fields are available before querying or creating entities. |
| sg_uploadA | Upload a file to any entity field in ShotGrid. Use field_name='image' for thumbnails, 'sg_uploaded_movie' for movies, or any file/url field. |
| sg_downloadB | Download an attachment from any entity field in ShotGrid. |
| sg_resolve_sourceA | Resolve the best generation input (image or description) for an Asset. Ranks linked Version stills + the Asset thumbnail/description by priority
(image > text; video deferred) and returns |
| tk_resolve_pathA | Resolve a Toolkit publish path using the project's PipelineConfiguration. Reads the PipelineConfiguration from ShotGrid, loads templates.yml, and resolves the full file path. Requires the project to have an Advanced Setup with a PipelineConfiguration entity. Use search_sg_docs to find available template names for the project's config. |
| tk_publishA | Publish a file to ShotGrid. Two modes:
|
| fpt_launch_appA | Launch a DCC application scoped to a ShotGrid entity. Discovery is OS-first: if the app is not installed on this machine the
tool fails immediately without consulting ShotGrid. When the owning
project has an Advanced Setup PipelineConfiguration whose Version selection: the FPT-selected version (SG MAYA / Sequence: a bare Sequence launch is step-LESS (no work
templates); the tank route resolves it to its Step Task ( FLAME (route='auto'/'direct'): composes Common failure modes to explain to the user if they surface:
|
| fpt_bulkA | Execute bulk/destructive ShotGrid operations. Available actions: • delete — Retire (soft-delete) an entity. Can be restored from trash. Required params: {"entity_type": "Shot", "entity_id": 123} • revive — Restore a previously retired entity. Required params: {"entity_type": "Shot", "entity_id": 123} • batch — Execute multiple operations in a single transactional call (ALL succeed or ALL fail). Required params: {"requests": "[{"request_type": "create", "entity_type": "Shot", "data": {"code": "SH010", "project": {"type": "Project", "id": 123}}}]"} • editorial — Deterministically create a Cut + one CutItem per shot (cumulative edit ranges, source ranges, handles computed in Python — no hand math). Required params: {"cut": {"entity": {"type": "Sequence", "id": 42}, "code": "SEQ01_v3", "fps": 24.0}, "shots": [{"shot": {"type": "Shot", "id": 1}, "duration": 100}]}. Optional cut keys: source_start_frame (default 1001), handles (default 0), revision_number. |
| fpt_reportingA | Search, aggregate, and inspect ShotGrid data for reporting and analysis. Available actions: • text_search — Full-text search across multiple entity types at once. Required params: {"text": "search terms", "entity_types": "{"Asset":[], "Shot":[["sg_status_list","is","ip"]]}"} Optional: {"limit": 10} • summarize — Server-side aggregation (count, sum, avg, min, max) with optional grouping. Required params: {"entity_type": "Task", "filters": "[["sg_status_list","is","ip"]]", "summary_fields": "[{"field": "duration", "type": "sum"}]"} Optional: {"grouping": "[{"field": "sg_status_list", "type": "exact"}]"} • note_thread — Read the full reply thread of a Note. Required params: {"note_id": 123} • activity — Read the activity stream for an entity. Required params: {"entity_type": "Shot", "entity_id": 456} Optional: {"limit": 20} |
| search_sg_docsA | Search ShotGrid API documentation using hybrid RAG (semantic + BM25). Call this BEFORE writing complex queries, using unfamiliar filters, or when unsure about entity format, template tokens, or operator names. Returns the most relevant documentation chunks with relevance scores. Covers three APIs: shotgun_api3 (Python SDK), Toolkit (sgtk), REST API. Uses HyDE query expansion + Reciprocal Rank Fusion for high precision. |
| learn_patternA | Save a validated working pattern to the RAG knowledge base. Call this after a successful operation when search_sg_docs returned low relevance (< 60%), indicating the pattern was not well-documented. The pattern will be available in future sessions. Model trust gates: only Opus/Fable can write directly. Other models stage candidates for review. |
| session_statsA | Show session efficiency statistics: token usage, RAG savings, patterns learned. Call at the end of multi-step tasks or when asked about efficiency. Shows how much context was saved by RAG vs loading full documentation. |
| reset_session_statsA | Zero the session stats counters immediately. Use at the start of a new Claude session (or a fresh debugging run) when the idle-based auto-reset has not fired — for example when two sessions happen back-to-back. Returns a confirmation line with the new reset timestamp. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/abrahamADSK/fpt-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server