Kitsu MCP Server

Kitsu MCP Server

Enables LLMs to interact with Kitsu production tracker via its Zou API, providing tools for project management, asset and task operations, and cross-platform migration support.

Category
访问服务器

README

Kitsu MCP server

Connect any AI agent to Kitsu

A Model Context Protocol server that gives LLM agents (Claude Desktop, Claude Code, Cursor, …) access to Kitsu — CGWire's open-source production tracker — through its Zou API and the official Gazu SDK.

30 tools, one write family, a dry_run safety gate on every write. Tested live against a self-hosted Kitsu — including whole-project ShotGrid ↔ Kitsu and ftrack → Kitsu migrations carrying structure + statuses + casting + thumbnails + video version media (multiple versions) + notes + custom fields, verified by read-back and torn down with remove_project.

Part of a small tracker-MCP trio — see Migrating projects between platforms.

The 30 tools

Generic power tools (full reach over the Zou REST API):

  • get — GET any Zou route (the escape hatch)
  • create · update · delete — write to any Zou model collection
  • remove_project — delete a project (Kitsu requires close→force; the generic delete can't)

Media / versions (a "version" = a preview file on a task; thumbnails derive from previews):

  • upload_preview — upload an image/movie as a version on a task (+ optionally set the entity thumbnail)
  • download_preview — pull a preview's media (image or movie) to disk
  • list_previews — versions on a task
  • log_time — log time on a task (the person must be assigned to it — a Kitsu rule)

Schema & discovery (Kitsu is configurable — learn the site first):

  • list_projects
  • list_asset_types · list_task_types · list_task_statuses (with workflow flags) · list_departments
  • list_metadata_descriptors · add_metadata_descriptor · set_metadata — Kitsu's schema-as-data custom fields (for_client + per-department); define a field and set values (migration carries custom fields)

Typed convenience (structure, creation + the review loop):

  • list_assets · list_shots · list_sequences · list_tasks
  • new_project · new_sequence · new_asset · new_shot · new_task (entity-aware type resolution)
  • set_task_status — post a comment that sets a task's status (the Kitsu review loop)
  • set_casting — cast assets into a shot (breakdown)
  • project_summary — a normalized project snapshot (counts + per-shot cast/status/thumbnail, canonical statuses) for cross-tracker verify/diff
  • whoami

The new_* + media + set_casting tools make Kitsu a viable migration target — read structure, statuses, casting, thumbnails and version media from another tracker (e.g. shotgrid-mcp) and recreate the project here. See Migrating projects between platforms.

Dry-run modes

Every write takes dry_run (default false = perform the write). create / update / delete / set_task_status support two preview levels:

  • dry_run="plan" (or true) — client-side echo of the intent. No server contact.
  • dry_run="preflight" — a real dry run: resolves every reference against live data, validates (does the parent exist? is the status name valid?), returns a before→after diff for updates, and a verdict of ok / would_failwithout writing anything.

Set MCP_PLAN_LOG=/path/plan.jsonl and every plan/preflight is appended as a line, so a whole dry-run migration produces a reviewable plan file. (Other write tools take dry_run as a plain boolean.)

Install

pip install -r requirements.txt        # fastmcp, gazu

Configure (credentials)

var value
KITSU_URL your Kitsu API base, including /api — e.g. https://your.kitsu.host/api
KITSU_EMAIL a Kitsu user (a dedicated bot account is recommended)
KITSU_PASSWORD that user's password

For local dev you can drop them in a .env next to server.py (gitignored — see .env.example).

Run / wire into a client

python3 server.py        # stdio transport

Claude Code:

claude mcp add kitsu \
  -e KITSU_URL=https://your.kitsu.host/api \
  -e KITSU_EMAIL=bot@studio.com -e KITSU_PASSWORD=•••• \
  -- python3 /path/to/kitsu-mcp/server.py

Examples (what the agent calls)

get("data/projects")                                   # raw route, full reach
list_shots("<project_id>")                             # typed convenience
list_task_statuses()                                   # workflow-as-data (is_done/for_client/…)
new_asset("<project_id>", "Character", "Hero")         # asset-type name resolved for you
set_task_status("<task_id>", "wip", "Starting blocking")
create("shots", {"project_id":"…","name":"sh010"}, dry_run=True)   # preview, commit nothing

Migrating projects between platforms

This is one of three sibling tracker MCPs, each exposing the same shape (generic CRUD + schema + typed convenience, with a dry_run gate):

Tracker MCP
ShotGrid / Flow Production Tracking huikku/shotgrid-mcp
ftrack Studio huikku/ftrack-mcp
Kitsu (CGWire) this repo

📊 See COMPARISON.md for a side-by-side of the three trackers (data model, status vocabularies) and the migration incompatibilities to know about (casting can't round-trip through ftrack; statuses must be mapped; Kitsu projects need remove_project to delete; heavy publish bytes stay on storage — only references carry).

🧪 See TESTING.md for how these servers are validated — live round-trip tests, two-level dry-run checks, and the cross-tracker migration matrix (including what is not yet covered, stated plainly).

Because all three speak the same production model (Project → Sequence/Asset → Shot → Task → Version/Status) and present a uniform tool surface, an agent with two of them loaded can migrate a project from one platform to another — read the structure from the source tracker, map the schema, and recreate it in the target:

"Read every sequence, asset, shot and task from the ShotGrid project, then recreate them in Kitsu."

The agent calls find/list_* on the source MCP and create/new_* on the target — no bespoke migration script. (This trio grew out of exactly that exercise: a single project copied across ShotGrid, ftrack and Kitsu to prove the tracker-agnostic, agent-native approach.)

Credits

MIT licensed.


Built by John Huikku · alienrobot.com

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选