studio-state
Officialby dkf2studios
README.md
# studio-state — MCP server for AI film & video production state
**Keep AI-generated characters, locations, and shots consistent across an entire
project — by giving Claude (or any MCP client) a single source of truth for where
your production stands.**
`studio-state` is a small, stateless [Model Context Protocol](https://modelcontextprotocol.io)
server for people producing **AI-generated film, video, episodic shows, and animation**
with tools like **Higgsfield, Runway, Kling, Seedance, nano-banana, Veo, and ElevenLabs**.
It reads your project's plain files on every call and answers three questions an AI
filmmaking assistant constantly needs to re-establish:
- **`orient`** — *"Where am I right now?"* Project, phase, active episode, budget/spend
posture, open blockers, next actions, and the scene index — one call instead of a
50-line copy-paste at the start of every session.
- **`get_shot_status`** — *"What's the state of this scene?"* Per-shot status
(planned / pending / fired / locked / needs-rework / dropped) reconciled from your
shot plan, your canonical lock state, and the server's own working notes.
- **`update_shot`** — *"Mark this shot fired/locked and attach the generation job + still."*
It's the free companion tool to **[The Studio Method](#the-studio-method-paid-companion)** —
a complete system for getting **consistent characters and zero-retry continuity** out of
generative video models.
---
## Why this exists
AI generation tools drift. Across a long shoot they hallucinate characters, swap faces,
reinvent backgrounds, and contradict your references — and the human becomes the only
thing holding continuity together. Most of that pain is *state* pain: the assistant
helping you forgets where the production stands the moment a session resets.
`studio-state` fixes the state half structurally. Truth lives in your files, not in a
chat history or a server-side database. Every tool call re-reads the files, so it is
**crash-proof and always current**, and it **never mutates your canonical files** — the
only thing it writes is its own per-scene `shot_status.json` sidecar.
## What makes it safe
- **Read-dominant.** 2 of 3 tools are pure reads. The one writer only ever touches a
shim-owned sidecar file — your shot plans, render manifests, and state file are never
modified.
- **Stateless.** No server-side store, no daemon state. Kill it mid-call and nothing
corrupts (atomic sidecar writes).
- **Path-sandboxed.** Scene/episode arguments are validated — no path traversal out of
your project tree.
- **Hardened.** Reviewed adversarially across multiple frontier models before release;
malformed files return structured errors instead of crashing the assistant.
## Quick start
```bash
# 1. Python 3.9+ and the MCP SDK
python3 -m pip install "mcp[cli]" # add --break-system-packages if needed
# 2. Try it against the bundled demo project (no setup)
python3 tests/test_acceptance.py # expect: 4/4 checks passed
# 3. Point it at your own project (a folder containing _pipeline/STATE.json + episodes/)
export STUDIO_ROOT="/path/to/your_show"
python3 server.py
```
Then register it in Claude Desktop (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"studio-state": {
"command": "python3",
"args": ["/abs/path/studio-state-public/server.py"],
"env": { "STUDIO_ROOT": "/abs/path/your_show" }
}
}
}
```
Full walkthrough: [`INSTALL.md`](./INSTALL.md).
## Does my project work with this?
`studio-state` expects a lightweight, file-based project layout:
```
your_show/
_pipeline/STATE.json # project phase, episode, budget, scenes
episodes/episode_001/scenes/<SCENE>/
phase_04_IRs.json # the shot plan (shot anchors + types)
phase_05_render_manifest.json # canonical lock/render state (optional)
```
A complete synthetic example ships in [`examples/demo_project/`](./examples/demo_project) —
copy its shape to adapt your own pipeline, or adopt the full convention via the paid pack
below.
## The Studio Method (paid companion)
This tool tracks state. The hard part — **getting the same character to render
consistently, shot after shot, with near-zero retries** — is a *method*. **The Studio
Method Starter Pack** is the full system: the character/location/camera "bible" templates,
the pre-fire ritual, the prompt-assembly formula, and the anti-default doctrine that make
generative models hold continuity.
→ **Get the Starter Pack:** https://dkf2studios.gumroad.com/l/flplx
*(Use code `EARLY` for the launch discount.)*
## Tools reference
| Tool | Type | Reads | Writes |
|---|---|---|---|
| `orient` | read | `_pipeline/STATE.json` | — |
| `get_shot_status` | read | scene IRs + render manifest + sidecar | — |
| `update_shot` | write | scene IRs (to validate) | `shot_status.json` sidecar only |
## Keywords
AI filmmaking · AI video production · generative video pipeline · character consistency ·
continuity · shot tracking · render manifest · production state · Model Context Protocol ·
MCP server · Claude Desktop · Higgsfield · Runway · Kling · Seedance · nano-banana ·
ElevenLabs · AI short film · AI episodic show · previs · session orientation
## License
MIT © 2026 DKF2 Studios. Contact: dkf2studios@gmail.com
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues