Kitsu MCP Server
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
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 |
Edit / Montage Review Workflow
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.
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.txtConfiguration
The server requires three environment variables:
Variable | Description | Example |
| Your Kitsu API URL |
|
| Login email |
|
| Login password |
|
Usage
With Claude Code
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": "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.pyExample 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"
"Remove anna@studio.com 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"
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, 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
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
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
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 stepdownload_preview_file— Download a preview file to local path
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 taskdelete_edit— Delete an editclose_project— Close/archive a projectbuild_playlist_movie— Build a movie from playlist
Changelog
v0.4.0 (2026-04-13)
Task workflow:
start_task(WIP),submit_for_review(WFA),reply_to_comment,acknowledge_commentCustom data:
update_asset_data,update_shot_data,update_task_data— set custom metadata dictsPreview files:
get_preview_file_url,download_preview_file,update_preview_annotations,list_preview_files_for_taskAttachments:
list_attachment_files_for_taskSchedule:
get_time_spents_range— query time entries over date rangesNotifications:
mark_all_notifications_as_read,subscribe_to_task,unsubscribe_from_taskPlaylist:
remove_entity_from_playlistProject:
add_task_type_to_project,remove_task_type_from_project
v0.3.0 (2026-04-12)
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)
v0.2.0
Team management: add/remove members, update roles, invite users
Departments: create, add/remove people
Metadata descriptors
Budget management
Concepts, scenes, edits (basic create/list)
v0.1.0
Initial release with 60+ tools covering projects, assets, shots, tasks, previews, playlists
License
MIT License — see LICENSE.
Credits
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/INGIPSA/kitsu-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server