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.
95 tools covering the full Kitsu production pipeline:
| Category | Tools |
|---|---|
| Projects | List, overview, stats, create, close, add/remove task types |
| Assets | List, details, create, update, delete, update custom data, asset types, CSV import/export |
| Shots & Sequences | List, details, create, update, delete, update custom data, batch create, CSV import/export, OTIO import |
| Tasks | List, details, create, batch create, assign, unassign, start task, submit for review, update custom data, update status, set estimates, delete |
| Time Tracking | Add, set, get time spent, get time spent range |
| Comments | Add comments, reply to comment, acknowledge comment, list comment history |
| Previews | Upload, publish, set main, list per task, get URLs, download, update annotations |
| Attachments | List attachment files per task |
| Casting | Get/set shot casting, get asset casting |
| Team & People | List team, update roles, add/remove members, person tasks, create person, invite, departments |
| Playlists | List, create, add entities, remove entities, build movie |
| Budgets | List, create budgets and budget entries |
| Concepts | List, create concepts |
| Edits | List, create, details, update, delete, list previews |
| Scenes | List, create scenes |
| Metadata | List and add custom metadata descriptors |
| Notifications | List, mark all as read, subscribe/unsubscribe from tasks |
| Other | Search, task statuses, daily progress report |
Edits are full-length montages or sequences (like animatics, trailers, or final cuts) — the Kitsu equivalent of Frame.io's file-based review. Upload a complete video with audio and review it with annotations, comments, and version tracking.
1. create_edit("My Project", "Trailer_v03")
2. create_task("My Project", "Trailer_v03", "Edit", entity_type="edit")
3. upload_preview(task_id, "/path/to/trailer_v03.mp4", comment="v3 with music")
The team can then review the full montage in Kitsu's player with drawing/annotation tools and timecoded comments.
- Python 3.10+
- A running Kitsu instance (self-hosted or cloud)
- A Kitsu user account with appropriate permissions
git clone https://github.com/INGIPSA/kitsu-mcp-server.git
cd kitsu-mcp-server
pip install -r requirements.txtThe server requires three environment variables:
| Variable | Description | Example |
|---|---|---|
KITSU_HOST |
Your Kitsu API URL | https://kitsu.yourstudio.com/api |
KITSU_USER |
Login email | [email protected] |
KITSU_PASSWORD |
Login password | your-password |
Add to your Claude Code MCP config (~/.claude/mcp.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": "[email protected]",
"KITSU_PASSWORD": "your-password"
}
}
}
}Add the same config block to Claude Desktop's settings under MCP servers.
export KITSU_HOST="https://kitsu.yourstudio.com/api"
export KITSU_USER="[email protected]"
export KITSU_PASSWORD="your-password"
python server.pyOnce 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 [email protected]"
- "Remove [email protected] from the modeling task on Capsule"
- "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"
- "Create an edit called Trailer_v01 and upload the montage for review"
- "Show me the details and previews for edit Animatic_v2"
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, shot, or editget_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 notificationslist_preview_files_for_task— All preview files for a tasklist_attachment_files_for_task— All attachment files for a taskget_preview_file_url— Direct image/video URLs for a previewget_time_spents_range— Time spent by person over a date rangesearch— Search entities by namedaily_progress_report— Activity summary for last N hourslist_concepts— Concepts in a projectlist_edits— Edits in a projectget_edit_details— Edit details with tasks and previewslist_previews_for_edit— All preview files for an editlist_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_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 for an asset, shot, or editcreate_person— Create a new userinvite_person— Send invitation email to a 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 edit (montage/sequence for review)create_scene— Create a sceneadd_metadata_descriptor— Add a custom metadata field
update_task_status— Change task status with optional commentassign_task— Assign a person to a taskunassign_task— Remove a person from a task (or clear all assignees)set_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/metadataupdate_edit— Update edit name/descriptionupdate_team_member_role— Change a team member's roleadd_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 playlistadd_team_member— Add a person to a project teamset_main_preview— Set a preview as the main thumbnailstart_task— Start a task (set to WIP)submit_for_review— Submit task for supervisor review (WFA)reply_to_comment— Threaded reply to a commentacknowledge_comment— Mark a comment as acknowledgedupdate_asset_data— Update custom metadata on an assetupdate_shot_data— Update custom metadata on a shotupdate_task_data— Update custom metadata on a taskupdate_preview_annotations— Add/edit/remove annotations on a previewmark_all_notifications_as_read— Clear all notificationssubscribe_to_task— Subscribe to task notificationsunsubscribe_from_task— Unsubscribe from task notificationsremove_entity_from_playlist— Remove entity from a playlistadd_task_type_to_project— Add a task type to a projectremove_task_type_from_project— Remove a task type from a project
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
upload_preview— Upload a preview file to a taskpublish_preview— Status + comment + preview in one stepdownload_preview_file— Download a preview file to local path
import_assets_csv— Import assets from CSVimport_shots_csv— Import shots from CSVimport_otio— Import timeline from OpenTimelineIO
delete_shot— Delete a shotdelete_asset— Delete an assetdelete_task— Delete a taskdelete_edit— Delete an editclose_project— Close/archive a projectbuild_playlist_movie— Build a movie from playlist
- Task workflow:
start_task(WIP),submit_for_review(WFA),reply_to_comment,acknowledge_comment - Custom data:
update_asset_data,update_shot_data,update_task_data— set custom metadata dicts - Preview files:
get_preview_file_url,download_preview_file,update_preview_annotations,list_preview_files_for_task - Attachments:
list_attachment_files_for_task - Schedule:
get_time_spents_range— query time entries over date ranges - Notifications:
mark_all_notifications_as_read,subscribe_to_task,unsubscribe_from_task - Playlist:
remove_entity_from_playlist - Project:
add_task_type_to_project,remove_task_type_from_project
- Edit entity support: Full CRUD for Edits — create tasks on edits, get details with previews, update, delete
- Unassign task: Remove specific people or clear all assignees from a task
- Edit review workflow: Upload full montages/animatics for team review with annotations (Frame.io-like)
- Team management: add/remove members, update roles, invite users
- Departments: create, add/remove people
- Metadata descriptors
- Budget management
- Concepts, scenes, edits (basic create/list)
- Initial release with 60+ tools covering projects, assets, shots, tasks, previews, playlists
MIT License — see LICENSE.