| Crates.io | shotgrid-mcp-rs |
| lib.rs | shotgrid-mcp-rs |
| version | 0.9.6 |
| created_at | 2025-11-26 09:56:38.452241+00 |
| updated_at | 2025-11-28 15:24:59.386054+00 |
| description | Complete Rust port of shotgun_api3 with MCP (Model Context Protocol) server for ShotGrid/Flow Production Tracking |
| homepage | https://github.com/ssoj13/shotgrid-mcp-rs |
| repository | https://github.com/ssoj13/shotgrid-mcp-rs |
| max_upload_size | |
| id | 1951203 |
| size | 831,310 |
โ ๏ธ WARNING: EXPERIMENTAL PROJECT - NOT FOR PRODUCTION USE
This is a test/experimental project and should NEVER be used in production environments. The software is provided "AS IS" without warranty of any kind, express or implied. The author assumes NO RESPONSIBILITY for any damages, data loss, or issues arising from the use of this software. Use at your own risk.
Author: Alex Khalyavin joss13@gmail.com
Based on: LaikaStudios/shotgrid-rs by Owen Nelson, Alex Widener, and Marina Wilding at LAIKA Studios
This fork extends their excellent foundation with MCP server implementation and modern tooling. Special thanks to the original authors for their pioneering work on Rust ShotGrid integration.
shotgrid-mcp-rs is a modern Rust implementation of the ShotGrid/Flow Production Tracking REST API client with native MCP (Model Context Protocol) server support, enabling Large Language Models to interact with ShotGrid directly.
This is a complete rewrite and extension of the original LaikaStudios project, adding:
The MCP server supports two transport modes:
--log flag/mcp - MCP protocol endpoint/health - Health check (returns "OK")Switching modes: Use -s/--stream flag to enable HTTP mode.
Add to your Cargo.toml:
[dependencies]
shotgrid-mcp-rs = { version = "0.9", features = ["mcp"] }
See README.dev.md for detailed code examples and API documentation.
Enable LLMs to interact with your ShotGrid instance via the Model Context Protocol.
Option 1: Install from crates.io
cargo install shotgrid-mcp-rs --all-features
Option 2: Install from source
# Clone the repository
git clone https://github.com/ssoj13/shotgrid-mcp-rs
cd shotgrid-mcp-rs
# Set up environment variables (required for ORM code generation)
export SG_SERVER="https://yoursite.shotgrid.autodesk.com"
export SG_SCRIPT_NAME="your_script_name"
export SG_SCRIPT_KEY="your_script_key"
# Generate ORM models and install
./bootstrap.ps1 codegen
cargo install --path . --all-features
After installation, the shotgrid-mcp-rs binary will be available globally in ~/.cargo/bin/.
Option 3: Build only (without installing)
cargo build --release --bin shotgrid-mcp-rs --features=mcp
Binary location:
target/release/shotgrid-mcp-rs.exetarget/release/shotgrid-mcp-rsshotgrid-mcp-rs [OPTIONS]
Options:
--url <URL> ShotGrid server URL (overrides SG_SERVER env var)
--script-name <NAME> Script name (overrides SG_SCRIPT_NAME env var)
--script-key <KEY> Script key (overrides SG_SCRIPT_KEY env var)
-s, --stream Enable HTTP stream mode (default: stdio)
-p, --port <PORT> HTTP port for stream mode [default: 8000]
-b, --bind <ADDRESS> Bind address for stream mode [default: 127.0.0.1]
--log [<FILE>] Enable file logging [default: shotgrid-mcp-rs.log]
-h, --help Print help
-V, --version Print version
stdio mode (default):
# Using environment variables
export SG_SERVER="https://yoursite.shotgrid.autodesk.com"
export SG_SCRIPT_NAME="your_script_name"
export SG_SCRIPT_KEY="your_script_key"
shotgrid-mcp-rs
# Using CLI arguments
shotgrid-mcp-rs \
--url https://yoursite.shotgrid.autodesk.com \
--script-name your_script_name \
--script-key your_script_key
# With file logging
shotgrid-mcp-rs --log my-server.log
HTTP stream mode:
# Default port 8000
shotgrid-mcp-rs -s
# Custom port and bind address
shotgrid-mcp-rs -s -p 3000 -b 0.0.0.0
# With logging
shotgrid-mcp-rs -s --log
# Test the server
curl http://127.0.0.1:8000/health # Should return "OK"
Add to your Claude Desktop configuration (claude_desktop_config.json):
Location:
%APPDATA%\Claude\claude_desktop_config.json~/Library/Application Support/Claude/claude_desktop_config.json{
"mcpServers": {
"shotgrid": {
"command": "shotgrid-mcp-rs",
"env": {
"SG_SERVER": "https://yoursite.shotgrid.autodesk.com",
"SG_SCRIPT_NAME": "your_script_name",
"SG_SCRIPT_KEY": "your_script_key"
}
}
}
}
Windows (with absolute path):
{
"mcpServers": {
"shotgrid": {
"command": "C:\\Users\\YourName\\.cargo\\bin\\shotgrid-mcp-rs.exe",
"env": {
"SG_SERVER": "https://yoursite.shotgrid.autodesk.com",
"SG_SCRIPT_NAME": "your_script_name",
"SG_SCRIPT_KEY": "your_script_key"
}
}
}
}
Add to your Claude Code MCP settings:
{
"mcpServers": {
"shotgrid": {
"command": "shotgrid-mcp-rs",
"env": {
"SG_SERVER": "https://yoursite.shotgrid.autodesk.com",
"SG_SCRIPT_NAME": "your_script_name",
"SG_SCRIPT_KEY": "your_script_key"
}
}
}
}
Basic CRUD (8 tools)
schema_read - Get entity field schemassearch_entities - Search with filters/paginationfind_one - Find single entityread_entity - Read by IDcreate_entity - Create new entityupdate_entity - Update existingdelete_entity - Soft deleterevive_entity - Restore deletedTimeLog Management (2 tools)
read_timelogs - Query time entriestimelog_stats - Aggregate statisticsAdvanced Operations (4 tools)
text_search - Cross-entity searchsummarize - SQL-like aggregationbatch - Bulk operationsnote_thread_read - Full conversation threadsThe mcp feature enables the MCP server with all 14 tools. This is the primary use case for this fork.
shotgrid-mcp-rs = { version = "0.9", features = ["mcp"] }
The orm feature provides type-safe entity models with code generation from your ShotGrid schema.
shotgrid-mcp-rs = { version = "0.9", features = ["orm"] }
Generate models:
# Set environment variables
export SG_SERVER=https://yoursite.shotgrid.autodesk.com
export SG_SCRIPT_NAME=your_script_name
export SG_SCRIPT_KEY=your_script_key
# Generate models from schema
cargo xtask codegen
See README.dev.md for ORM usage examples.
# Unit tests
cargo test
# HTTP transport tests
cargo test --test http_transport
# Integration tests (requires live ShotGrid server)
cargo test --features integration-tests
# MCP-specific tests
cargo test --lib mcp::tests
# All tests
cargo test --all
HTTP Transport Tests:
The tests/http_transport.rs module contains tests for the HTTP stream mode:
Note: HTTP tests spawn a real server process, so they require:
Required environment variables for integration tests:
TEST_SG_SERVER - ShotGrid server URLTEST_SG_SCRIPT_NAME - API user nameTEST_SG_SCRIPT_KEY - API keyTEST_SG_HUMAN_USER_LOGIN - HumanUser login for sudo testsTEST_SG_PROJECT_ID - Test project IDLicensed under the MIT License - see the LICENSE file for details.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be licensed under the MIT license, without any additional terms or conditions.
Links: