Model Context Protocol server for PandaStudio. Exposes the desktop video editor's automation surface to Cursor, Continue, Cline, Claude Desktop, and any MCP-compliant client.
PandaStudio MCP demonstrates solid tool design with clear naming conventions (verb_noun), comprehensive descriptions (avg 180+ chars), and well-structured input schemas. All 9 tools have explicit schemas with typed properties and descriptions. However, output schemas are not documented in the source code, and some parameter descriptions lack actionable constraints (e.g., sessionId format, enum values for command strings). Error handling guidance is minimal. The escape hatch tool (pandastudio_call) is mentioned but not fully defined in the visible code. Tool composition is clean, each tool has a single responsibility, and naming clearly distinguishes tools (system_* vs agent_*). Descriptions are LLM-optimized and include prerequisites and context (e.g., 'ALWAYS call this first' for system_status, dependency hints for Whisper model checks).
List the embedded in-app agent's opencode sessions (id, title, created/updated timestamps). Observational only — never starts the agent server; returns running:false when it isn't up. Use before agent_session_stop to find the session to kill.
Abort an in-app agent session by id (from agent_session_list), or every session with all:true. Stops that session's tool execution immediately; the transcript survives for replay. The kill switch for a runaway/ghost in-app agent session.
Read the active narration (TTS) engine for the current workspace. Returns { engine } — 'local-kokoro' (default; Kokoro-82M on-device, English, no key/cloud) or 'replicate' (cloud TTS, needs the user's Replicate key). Use before recommending a switch or when disclosing which engine narration uses.
Read the active transcription engine selection for the current workspace. Returns { language } where language is one of: 'auto' (Parakeet TDT v3, default — auto-detects English + 25 European languages including Russian/Ukrainian), or a Whisper Large-v3-turbo language: 'chinese' / 'japanese' / 'korean' / 'hindi' / 'arabic' / 'thai' / 'tamil' / 'telugu' / 'kannada' / 'malayalam' / 'bengali' / 'marathi' / 'gujarati' / 'punjabi'. Use this when surfacing the active engine to the user or before recommending a switch.
Output schemas not documented. Tool descriptions state what is returned (e.g., 'Returns app version, license state, automationGated') but formal output schema definitions are absent from the source code. LLMs cannot plan downstream tool calls or extract fields without knowing the response structure.
agent_session_stop parameters lack validation constraints. sessionId has no format description (UUID? string length?), and the mutual exclusivity of sessionId vs all:true is not documented. LLMs may pass both or neither.
Error handling guidance is absent. Tool descriptions do not explain what to do if the automation server is unreachable, the trial is expired (automationGated=true), or a Whisper model download fails. LLMs have no recovery path.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Check whether the Whisper Large-v3-turbo model has been downloaded yet. Returns { downloaded: boolean }. ALWAYS call this before `system_set_transcription_language` to a non-'auto' value — Whisper transcription fails with a structured error if the model isn't on disk, and surprising the user with a 1.1 GB download mid-flow is bad UX.
List every verb.noun command the desktop app's automation server exposes — including ones added after this MCP version shipped. Use the long-tail ones via the `pandastudio_call` escape hatch.
Set the DEFAULT narration engine for the current workspace. Pass `engine` = 'local-kokoro' (on-device English, no key) or 'replicate' (cloud, needs the user's Replicate key). Affects all future narration calls in this workspace unless overridden per-call. Use when the user explicitly asks to switch TTS engines, or when you detect they have a Replicate key and want to offer higher-quality voices.
Switch the transcription engine for the current workspace. Default 'auto' uses Parakeet (English + 25 European languages, auto-detected, word-level timestamps native). Non-'auto' values route to Whisper Large-v3-turbo with that language locked in. **Important**: non-'auto' choices require a one-time ~1.1 GB Whisper model download — call `system_is_whisper_model_downloaded` first, and surface the download requirement to the user before switching. Use this when the user explicitly asks for a non-European transcription language (e.g., 'transcribe this in Chinese'), or when project content clearly indicates a different language than the current setting.
Probe PandaStudio's automation server. Returns app version, license state, and `automationGated` (true if trial expired and no license — every other tool will fail). ALWAYS call this first.
pandastudio_call escape hatch tool is mentioned in comments but not defined in the TOOLS array. If it exists, it should be explicitly registered with a schema showing command (string) and args (object) parameters. If it does not exist, the comment is misleading.
No pagination or result limits documented. system_list_commands and agent_session_list may return large result sets. No limit, offset, or cursor parameters are defined, risking context window exhaustion.