This saves about
10.5 hours per year
vs conventional diff tools
Diff Delta:
4938
About 290 Diff Delta/hour
Classified as:
Feature Add
bmatherly's Description of Work
Summary
This PR adds Coproducer, a project-aware AI assistant for Shotcut, and exposes its tools through a Streamable HTTP MCP endpoint. Coproducer and external MCP clients use the same endpoint.
Coproducer
- Adds a QML-based Coproducer dock, opened with
Ctrl+Shift+7. - Adds Chat and Search User Guide entries to Help.
- Adds two interchangeable AI provider modes:
-
OpenAI-compatible API: configure the API key, model, and base URL. HTTPS is required except for localhost endpoints. -
Local model: select a GGUF model; Shotcut starts and managesllama-server.
-
-
AI Chat sends model-requested tools through MCP for project inspection, timeline summaries, and forum search. -
Search User Guide calls the forum-search MCP tool directly, without invoking an AI model. - Streams Markdown responses, supports citations, and includes cancellation and new-chat controls.
MCP
- Implements a stateless Streamable HTTP endpoint at
/mcp, with dynamic localhost ports and MCP initialization, tool discovery, and tool calls. - Adds Help β Copy MCP Endpoint so users can provide the current Shotcut instanceβs URL to external MCP clients.
- Registers three tools:
shotcut_project_inspect,shotcut_timeline_summary, andshotcut_forum_search. - Project inspection returns read-only clip, playlist, timeline, and UI context. Timeline summaries can omit per-track details to reduce payload size.
- Restricts connections to loopback and validates Host and Origin headers.
- Moves MCP-only forum search and project inspection into the
mcp/module.
Testing
- MCP tests cover initialization, tool listing and calls, per-instance isolation, HTTP Origin and GET handling, and timeline summary track inclusion.
- MCP Inspector was used to verify connection, tool discovery, and tool calls.
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Loading changes...
Youβve reached the end of the pull request
All files reviewed β nice work, champ! πͺ