mcp.film / Story & Pre-Production / PenShot (story-shot-agent)
PenShot (story-shot-agent)
Breaks screenplays into shot lists and generates Sora/Veo/Runway-ready video prompts.
What it does
An LLM-powered agent that parses scripts in any format, performs shot-by-shot breakdowns, and emits coherent text-to-video prompts with cross-shot character consistency. Runs as an MCP server, Python SDK, REST API, or LangGraph node — the missing link between a screenplay and a generation pipeline.
Connect
claude mcp add penshot -- python -m penshot.mcp_server --max-concurrent 5 --queue-size 500
{
"mcpServers": {
"penshot": {
"command": "python",
"args": [
"-m",
"penshot.mcp_server",
"--max-concurrent",
"5",
"--queue-size",
"500"
],
"env": {
"PENSHOT_LLM__DEFAULT__API_KEY": "YOUR_KEY_HERE"
}
}
}
}
{
"mcpServers": {
"penshot": {
"command": "python",
"args": [
"-m",
"penshot.mcp_server",
"--max-concurrent",
"5",
"--queue-size",
"500"
],
"env": {
"PENSHOT_LLM__DEFAULT__API_KEY": "YOUR_KEY_HERE"
}
}
}
}
PENSHOT_LLM__DEFAULT__API_KEY — Bring your own LLM and embedding endpoints — set PENSHOT_LLM__DEFAULT__{BASE_URL,API_KEY,MODEL_NAME} and the matching PENSHOT_EMBED__DEFAULT__* vars; OpenAI, Qwen, DeepSeek and Ollama are named as working providers
Sample tools
breakdown_scriptget_task_statusget_task_resultcancel_tasklist_tasksget_queue_statusget_statsField notes
Still growing and genuinely active: 203 stars (up from 139 in five weeks), last commit 17 Sep 2026, PyPI 0.3.7 shipped 2 Sep 2026, MIT. Seven tools, read from the server source rather than the README — breakdown_script, get_task_status, get_task_result, cancel_task, list_tasks, get_queue_status, get_stats — and the install line now carries the --max-concurrent/--queue-size flags the project's own example config uses. THE CATCH THAT BITES: the stdio server advertises every tool with an empty JSON-Schema parameter block, so your client sees no argument names and you have to spell the arguments out in the prompt; the FastAPI surface in mcp_http_server.py has full parameter descriptions but it is a plain REST façade on :8000, not MCP over HTTP, so do not expect a remote_url. Setup is heavier than the one-line install suggests — an LLM endpoint, an embedding model and PENSHOT_REDIS_URL all have to be in .env first, or use the published ghcr.io/neopen/penshot image with docker compose. The maintainers still say it is optimized in depth for Chinese scripts with other languages 'in continuous iteration'. Async is the sane mode: submit with breakdown_script, poll get_task_status, collect get_task_result — and note task success reports as 'success', not 'completed'. Directory finding, still true: no dedicated MCP exists for Final Draft, Celtx, WriterDuet, or Fountain — script writing itself is best done with your agent directly (Fountain is plain text), stored via the Notion or Google Drive MCPs.
Also in Story & Pre-Production
Where films and series were actually shot: 31,000+ locations in 177 countries, from Wikidata.
Official Miro MCP — build and read storyboards, frames, and planning boards via AI.
Cinematography reference: search film stills from 5,489 films by lighting, lens, shot size, colour and mood.
Keeps AI-film characters, locations, shots, and lock status grounded in project files.
Pairs well with
Adobe's official hosted MCP — 50+ tools across Photoshop, Lightroom, Firefly, Premiere, Express and Stock.
Adobe's second hosted MCP — compose and run Firefly Creative Production batch pipelines.
Official hosted Airtable MCP: query, create, and update production-tracking bases.