from shotgrid_mcp_server import ShotGridMCPServer
server = ShotGridMCPServer(
name="ShotGrid Test Server",
use_mockgun=True
)
@server.on_startup
def create_test_data():
"""Create test data when the server starts."""
# Create a test project
project = server.connection.create("Project", {
"name": "Test Project",
"code": "TEST",
"sg_status": "Active"
})
# Create test users
alice = server.connection.create("HumanUser", {
"name": "Alice",
"login": "alice",
"email": "alice@example.com"
})
bob = server.connection.create("HumanUser", {
"name": "Bob",
"login": "bob",
"email": "bob@example.com"
})
# Create test tasks
server.connection.create("Task", {
"content": "Model Character",
"sg_status_list": "ip",
"project": {"type": "Project", "id": project["id"]},
"task_assignees": [{"type": "HumanUser", "id": alice["id"]}]
})
server.connection.create("Task", {
"content": "Rig Character",
"sg_status_list": "rdy",
"project": {"type": "Project", "id": project["id"]},
"task_assignees": [{"type": "HumanUser", "id": bob["id"]}]
})
@server.tool()
def find_tasks(assigned_to: str = None):
"""Find tasks, optionally filtered by assignee."""
filters = []
if assigned_to:
filters.append(["task_assignees.HumanUser.name", "is", assigned_to])
return server.connection.find(
"Task",
filters,
["content", "sg_status_list", "task_assignees"]
)