shotgrid-mcp-server
by: loonghao
A Model Context Protocol (MCP) server for Autodesk ShotGrid/Flow Production Tracking (FPT) with comprehensive CRUD operations and data management capabilities.
๐Overview
Purpose: The ShotGrid MCP Server provides a high-performance implementation of the Model Context Protocol (MCP) tailored for ShotGrid, facilitating efficient data management and interaction.
Overview: Built on the fastmcp framework, this server delivers robust tools for handling various CRUD operations, including the upload and download of entity thumbnails. It is designed for cross-platform use and ensures optimal performance through advanced connection pooling and comprehensive testing.
Key Features:
-
High-performance implementation based on fastmcp: Ensures swift and effective processing of requests.
-
Complete CRUD operation toolset: Provides tools to create, read, update, and delete entities in ShotGrid.
-
Dedicated thumbnail download/upload tools: Simplifies management of visual assets associated with entities.
-
Efficient connection pool management: Enhances server responsiveness and resource utilization.
-
Comprehensive test coverage with pytest: Guarantees code reliability and quality through extensive testing.
-
Cross-platform support (Windows, macOS, Linux): Ensures accessibility and usability across a wide range of operating systems.
ShotGrid MCP Server
English | ็ฎไฝไธญๆ
A high-performance ShotGrid Model Context Protocol (MCP) server implementation based on fastmcp
โจ Features
- High-performance implementation based on fastmcp
- Complete CRUD operation toolset
- Dedicated thumbnail download/upload tools
- Efficient connection pool management
- Comprehensive test coverage with pytest
- Dependency management with UV
- Cross-platform support (Windows, macOS, Linux)
๐ Quick Start
Installation
Install using UV:
uv pip install shotgrid-mcp-server
Development Setup
- Clone the repository:
git clone https://github.com/loonghao/shotgrid-mcp-server.git
cd shotgrid-mcp-server
- Install development dependencies:
pip install -r requirements-dev.txt
- Development Commands
All development commands are managed through nox. Checknoxfile.py
for available commands:
# Run tests
nox -s tests
# Run linting
nox -s lint
# Run type checking
nox -s type_check
# And more...
Development
Environment Setup
- Set up environment variables:
$env:SHOTGRID_URL='your_shotgrid_url'
$env:SHOTGRID_SCRIPT_NAME='your_script_name'
$env:SHOTGRID_SCRIPT_KEY='your_script_key'
- Run the development server:
uv run fastmcp dev src\shotgrid_mcp_server\server.py:app
The server will start in development mode with hot reloading enabled.
โ๏ธ Configuration
Environment Variables
Create a .env
file with the following variables:
SHOTGRID_URL=your_shotgrid_url
SHOTGRID_SCRIPT_NAME=your_script_name
SHOTGRID_SCRIPT_KEY=your_script_key
๐ง Available Tools
create
: Create ShotGrid entitiesread
: Read entity informationupdate
: Update entity datadelete
: Delete entitiesdownload_thumbnail
: Download entity thumbnailsupload_thumbnail
: Upload entity thumbnails
๐ API Documentation
For detailed API documentation, please refer to the documentation files in the docs directory.
๐ค Contributing
Contributions are welcome! Please ensure:
- Follow Google Python Style Guide
- Write tests using pytest
- Update documentation
- Use absolute imports
- Follow the project's coding standards
๐ Version History
See CHANGELOG.md for detailed version history.
๐ License
MIT License - see the LICENSE file for details.
๐ MCP Client Configuration
To use the ShotGrid MCP server in your MCP client, add the following configuration to your client's settings:
{
"mcpServers": {
"shotgrid-server": {
"command": "uvx",
"args": [
"shotgrid-mcp-server"
],
"env": {
"SHOTGRID_SCRIPT_NAME": "XXX",
"SHOTGRID_SCRIPT_KEY": "XX",
"SHOTGRID_URL": "XXXX"
}
}
}
}
๐ Credentials Setup
Replace the following values with your ShotGrid credentials:
SHOTGRID_SCRIPT_NAME
: Your ShotGrid script nameSHOTGRID_SCRIPT_KEY
: Your ShotGrid script keySHOTGRID_URL
: Your ShotGrid server URL
๐ก๏ธ Tool Permissions
The alwaysAllow
section lists the tools that can be executed without requiring user confirmation. These tools are carefully selected for safe operations.