MCP server for Kitsu production management — connect AI assistants to your animation/VFX/game pipeline
Kitsu MCP Server
An MCP (Model Context Protocol) server that connects AI assistants like Claude to Kitsu — the open-source production management tool for animation, VFX, and game studios.
Built with FastMCP and the Gazu Python client.
Features
71 tools covering the full Kitsu production pipeline:
| Category | Tools | |----------|-------| | Projects | List, overview, stats, create, close | | Assets | List, details, create, update, delete, asset types, CSV import/export | | Shots & Sequences | List, details, create, update, delete, batch create, CSV import/export, OTIO import | | Tasks | List, details, create, batch create, assign, update status, set estimates, delete | | Time Tracking | Add, set, get time spent | | Comments | Add comments, list comment history | | Previews | Upload preview, publish preview (status + comment + file in one) | | Casting | Get/set shot casting, get asset casting | | Team & People | List team, person tasks, create person, departments | | Playlists | List, create, add entities, build movie | | Budgets | List, create budgets and budget entries | | Concepts | List, create concepts | | Edits | List, create edits | | Scenes | List, create scenes | | Metadata | List and add custom metadata descriptors | | Other | Search, notifications, task statuses, daily progress report |
Requirements
- Python 3.10+
- A running Kitsu instance (self-hosted or cloud)
- A Kitsu user account with appropriate permissions
Installation
git clone https://github.com/INGIPSA/kitsu-mcp-server.git
cd kitsu-mcp-server
pip install -r requirements.txt
Configuration
The server requires three environment variables:
| Variable | Description | Example |
|----------|-------------|---------|
| KITSU_HOST | Your Kitsu API URL | https://kitsu.yourstudio.com/api |
| KITSU_USER | Login email | artist@yourstudio.com |
| KITSU_PASSWORD | Login password | your-password |
Usage
With Claude Code
Add to your Claude Code MCP config (~/.claude/claude_desktop_config.json or project-level .mcp.json):
{
"mcpServers": {
"kitsu": {
"command": "python",
"args": ["path/to/kitsu-mcp-server/server.py"],
"env": {
"KITSU_HOST": "https://kitsu.yourstudio.com/api",
"KITSU_USER": "your-email@example.com",
"KITSU_PASSWORD": "your-password"
}
}
}
}
With Claude Desktop
Add the same config block to Claude Desktop's settings under MCP servers.
Standalone
export KITSU_HOST="https://kitsu.yourstudio.com/api"
export KITSU_USER="your-email@example.com"
export KITSU_PASSWORD="your-password"
python server.py
Example prompts
Once connected, you can ask your AI assistant things like:
- "List all open projects in Kitsu"
- "Create shots SH010 through SH200 in sequence SQ01"
- "Upload this render as a preview for the lighting task on SH020"
- "What happened in the project in the last 24 hours?"
- "Assign the animation task on SH030 to anna@studio.com"
- "Add 4 hours of work on this task for today"
- "Export all shots to CSV"
- "Create a new playlist and add all shots from SQ01"
- "What are the budget entries for this project?"
Available tools
Read
list_projects— List all open projectsget_project_overview— Project overview with team, task types, asset typesget_project_stats— Task statistics grouped by statuslist_assets— List assets (optionally filtered by type)get_asset_details— Asset details with taskslist_sequences— List sequenceslist_shots— List shots (optionally filtered by sequence)get_shot_details— Shot details with tasks and castinglist_my_tasks— Tasks assigned to logged-in userlist_tasks_for_entity— Tasks for a specific asset or shotget_task_details— Task details with comment historyget_time_spent— Time entries for a tasklist_comments— Comments on a taskget_shot_casting— Asset breakdown for a shotget_asset_casting— Shots an asset appears inlist_team_members— Team members in a projectget_person_tasks— Tasks for a specific personlist_departments— All departmentslist_playlists— Playlists in a projectlist_task_statuses— Available task statuseslist_notifications— Recent notificationssearch— Search entities by namedaily_progress_report— Activity summary for last N hourslist_concepts— Concepts in a projectlist_edits— Edits in a projectlist_scenes— Scenes in a projectlist_metadata_descriptors— Custom metadata fieldsget_budgets— Budgets for a projectget_budget_entries— Entries in a budgetexport_assets_csv— Export assets to CSVexport_shots_csv— Export shots to CSV
Create
create_project— Create a new projectcreate_asset_type— Create an asset typecreate_asset— Create an assetcreate_episode— Create an episodecreate_sequence— Create a sequencecreate_shot— Create a shotcreate_task— Create a task with optional assigneescreate_person— Create a new usercreate_department— Create a departmentcreate_playlist— Create a playlistcreate_budget— Create a budgetcreate_budget_entry— Create a budget entrycreate_concept— Create a conceptcreate_edit— Create an editcreate_scene— Create a sceneadd_metadata_descriptor— Add a custom metadata field
Update
update_task_status— Change task status with optional commentassign_task— Assign a person to a taskset_task_estimate— Set time estimate for a taskadd_comment— Add a comment to a taskset_shot_casting— Set which assets appear in a shotupdate_asset— Update asset description/metadataupdate_shot— Update shot description/frames/metadataadd_time_spent— Add time spent on a taskset_time_spent— Set time spent on a taskadd_person_to_department— Add person to departmentremove_person_from_department— Remove person from departmentadd_entity_to_playlist— Add shot/asset to playlist
Batch
batch_create_shots— Create multiple shots at once (e.g. SH010-SH200)batch_create_tasks— Add a task type to all shots/assets in a group
Preview
upload_preview— Upload a preview file to a taskpublish_preview— Status + comment + preview in one step
Import/Export
import_assets_csv— Import assets from CSVimport_shots_csv— Import shots from CSVimport_otio— Import timeline from OpenTimelineIO
Dangerous (require confirm=True)
delete_shot— Delete a shotdelete_asset— Delete an assetdelete_task— Delete a taskclose_project— Close/archive a projectbuild_playlist_movie— Build a movie from playlist
License
MIT License — see LICENSE.