Gameplay Studio MCP Server
README.md
<div align="center">
<img src="./docs/screenshots/hero-banner.jpg" alt="Gameplay Studio Banner" width="100%" style="border-radius: 14px;" />
# Gameplay Studio (`v0.7.0`)
**Multi-Track NLE Video Editor That Cuts Gameplay From Its Own Label Track ⢠Agent-Driven Over MCP ⢠Bring-Your-Own AI Model & Base URL ⢠Cinema 3D `.cube` LUTs & Split-Wipe Scopes ⢠Hardware GPU Render**
[](./docs/labelled-gameplay.md)
[](#connect-an-agent-mcp)
[](./test)
[](#)
### [š Labelled gameplay: how an agent cuts from a label track](./docs/labelled-gameplay.md)
</div>
---
## Visual Studio Showcase
<p align="center">
<img src="./docs/screenshots/shot-01-editor.jpg" alt="Gameplay Studio 4-Zone Multi-Track Editor" width="100%" />
</p>
<table>
<tr>
<td width="50%">
<img src="./docs/screenshots/shot-02-color-scopes.jpg" alt="Cinema 3D LUTs & Broadcast Scopes" width="100%" />
<p align="center"><strong>Cinema 3D <code>.cube</code> LUTs, Split-Wipe Compare & Broadcast RGB Scopes</strong><br/><sub>Kodak 2383, Teal & Orange, Fuji Eterna, Bleach Bypass, Cyberpunk Neon + live touch/pointer Split-Wipe</sub></p>
</td>
<td width="50%">
<img src="./docs/screenshots/shot-03-ai-copilot.jpg" alt="Custom API, Model Picker & AI Copilot" width="100%" />
<p align="center"><strong>Custom API Key, Base URL & Model Configurator</strong><br/><sub>OpenAI, OpenRouter, DeepSeek, NVIDIA NIM, Groq, Ollama / LM Studio + live <code>/models</code> search</sub></p>
</td>
</tr>
<tr>
<td width="50%">
<img src="./apps/desktop/public/showcase/hero-cinema.jpg" alt="35mm Film Look Demo" width="100%" />
<p align="center"><strong>Built-In 35mm Cinema Plates & Interactive Demo Scenes</strong><br/><sub>One-click demo timelines right inside Gameplay Studio's <code>⨠Showcase</code> studio modal</sub></p>
</td>
<td width="50%">
<img src="./apps/desktop/public/showcase/motion-neon.jpg" alt="High-Speed VFX & Motion Presets" width="100%" />
<p align="center"><strong>Touch & Mouse Multi-Track NLE Timeline, Speed Ramps & PiP Layouts</strong><br/><sub>Smooth touch & mouse splitters, UI scaling (<code>70%ā150%</code>), and native Win32 Fullscreen</sub></p>
</td>
</tr>
</table>
---
## Architecture Overview
<p align="center">
<img src="./docs/graphics/architecture.svg" alt="Gameplay Studio Architecture" width="100%" />
</p>
---
## Highlights in `v0.7.0`
- **Native Windows Desktop App (`GameplayStudio_installer.exe`)**: 4-Zone Resizable Studio Workspace, universal `Ctrl+K` instant search, hardware-accelerated FFmpeg (`NVENC` / `AMF` / `QSV` / `ProRes` / `HEVC`), in-place NSIS `Update` installer, and 1-click **`š Update`** self-updater.
- **Interactive Before / After Split-Wipe & Broadcast Scopes**: Compare raw vs. color-graded video directly inside the Player monitor (`ā Split Wipe`) alongside live RGB Histograms & IRE Waveforms (`š Scopes`).
- **Bring Your Own API Key, Base URL & AI Model (`ā API & Model`)**: Connect OpenAI, OpenRouter, DeepSeek, NVIDIA NIM, Groq, Ollama, LM Studio, or any custom OpenAI-compatible `/v1` endpoint with live `/models` discovery, connection testing, and natural-language AI Copilot execution on Windows.
---
## Labelled gameplay footage
This is what Gameplay Studio adds on top of a conventional NLE.
A game recorded with the [Labeled Recorder](../com.labeledrecorder) Unity package writes a sidecar next
to its video:
```
Recordings/arena_run_003.mp4 the footage
Recordings/arena_run_003.labels.json what happened in it, frame-accurately
```
The sidecar lists the events the game fired, the things that lasted, the moments a developer flagged as
worth keeping, the chapter structure, and game-data signals sampled whenever they changed. So an agent
does not watch the video or guess from pixels ā it is told, to the frame, and can justify every cut it
makes:
> `marker 'highlight' (note=triple kill from the rafters) at 00:10.666`
```
labels.attach bring a labelled recording in (video path, label path, or asset name)
labels.describe this game's event names, signals, chapters, busiest stretch
labels.find_windows ranked candidate clip ranges, each with a reason
labels.build_edit put the chosen ranges on a new track, as one undo step
labels.auto_short do all of the above with sensible defaults
```
Full workflow, including the strategies for shorts vs. trailers: **[docs/labelled-gameplay.md](./docs/labelled-gameplay.md)**.
Unlabelled footage still works; it just falls back to the pixel-based tools (`edit.highlight`,
`analysis.scenes`, `analysis.beats`), which guess.
---
## Install
Build from source. Node 20+ and Git are the only requirements; FFmpeg and FFprobe are fetched as npm
dependencies.
```bash
npm ci
npm run build
```
Download the Windows installer from [Releases](https://github.com/ZermatAbdenour/GameplayStudio/releases/latest),
or build it yourself with `npm run dist:desktop`.
---
## Quick Start (Development & Building From Source)
```bash
npm ci
npm test # Run all end-to-end Vitest tests
npm run build # Build TypeScript backend + CLI + MCP
npm run dev:api # Start local Gameplay Studio Engine on http://127.0.0.1:47000
npm run dev:ui # Start React + Vite Studio UI on http://localhost:5173
```
## Connect an agent (MCP)
Gameplay Studio is an MCP server, so any MCP-capable agent drives the whole editor ā the ~110 ordinary
editing tools plus the `labels.*` family. The first call an agent should make is **`labels.guide`**,
which returns the entire labelled-footage workflow so it never has to be briefed out of band.
**Claude Code**
```bash
claude mcp add gameplaystudio --env GAMEPLAY_STUDIO_PROJECT=.gameplaystudio/project.gameplaystudio -- node "/path/to/Gameplay Studio/dist/mcp/stdio.js"
```
**opencode** (any model ā DeepSeek, Qwen, local Ollama ā¦) in `opencode.json`:
```json
{
"mcp": {
"gameplaystudio": {
"type": "local",
"command": ["node", "/path/to/Gameplay Studio/dist/mcp/stdio.js"],
"environment": { "GAMEPLAY_STUDIO_PROJECT": ".gameplaystudio/project.gameplaystudio" },
"enabled": true
}
}
}
```
**Claude Desktop / Cursor / anything else speaking MCP**
```json
{
"mcpServers": {
"gameplaystudio": {
"command": "node",
"args": ["/path/to/Gameplay Studio/dist/mcp/stdio.js"],
"env": { "GAMEPLAY_STUDIO_PROJECT": ".gameplaystudio/project.gameplaystudio" }
}
}
}
```
`GAMEPLAY_STUDIO_PROJECT` is the `.gameplaystudio` project file the agent edits, created on first run if missing.
`GAMEPLAY_STUDIO_PROJECT` is still honoured so an existing config keeps working. An HTTP transport is available
via `gameplay-studio mcp --http`.
---
## Credits
Gameplay Studio is a renamed derivative of **[Vedit Studio](https://github.com/lilrepaer-glitch/Vedit)**
by lilrepaer-glitch, used under the MIT licence. The NLE engine, render pipeline, and desktop
shell, and the original MCP server are its work. Gameplay Studio adds the labelled-gameplay layer
(`src/labels`, `src/mcp/labels.ts`) and the rename.
The label format it reads is produced by the
[Labeled Recorder](../com.labeledrecorder) Unity package.
## License
MIT ā see [LICENSE](./LICENSE).
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues