video-explainer-mcp
Create explainer projects, run pipeline steps, and render videos through MCP. This server wraps the video_explainer CLI with 15 tools for projects, generation, rendering, audio, and quality checks. The upstream checkout owns provider integrations, model selection, Remotion code, and rendering dependencies.
Repository links point to the published source release. For the exact source and bundled README of a registry version, use its source archive on PyPI.
Install and configure
The wrapper requires Python 3.11 or newer and uv. Before generation, install the upstream CLI in its own checkout and virtual environment, following that checkout's instructions. The wrapper expects:
<EXPLAINER_PATH>/.venv/bin/video-explaineras an executable console script.- The Node.js version required by the upstream checkout, plus FFmpeg on
PATH. - Upstream Remotion npm dependencies under
remotion/node_modules/. - Credentials and compatible upstream support for each provider you intend to use.
From this package directory in a source checkout:
uv sync --locked --extra dev
uv run --locked video-explainer-mcp
The command starts a stdio server. Add this entry to your client's mcpServers
configuration, replacing the absolute checkout path:
{
"video-explainer": {
"command": "uv",
"args": [
"run", "--locked", "--directory",
"/absolute/path/to/video-research-mcp/packages/video-explainer-mcp",
"video-explainer-mcp"
]
}
}
For a registry release, register uvx with
video-explainer-mcp==<published-version> and confirm that version is published.
The core npm installer does not register this companion or install the upstream
renderer.
Configuration comes from the process environment and
~/.config/video-research-mcp/.env; nonempty process values take precedence:
EXPLAINER_PATH=/absolute/path/to/video_explainer
# Optional: defaults to EXPLAINER_PATH/projects
EXPLAINER_PROJECTS_PATH=/absolute/path/to/projects
EXPLAINER_TTS_PROVIDER=mock
EXPLAINER_TIMEOUT=600
EXPLAINER_RENDER_TIMEOUT=1800
Restart after changing configuration. EXPLAINER_PATH is the checkout root,
not the projects directory. The CLI runs directly without a shell, receives
--projects-dir, and inherits provider credentials while recursive Claude Code
guard variables are removed from its child environment.
Wrapper TTS selectors are mock, elevenlabs, and edge.
The default mock avoids paid TTS; other generation steps can still call paid
providers. A selector is usable only if the upstream CLI supports it and its
credentials are configured. Updating this wrapper does not update that checkout
or add upstream provider support.
The wrapper exposes script refinement and render presets 720p, 1080p, and
4k. These choices match the supported upstream CLI contract. Pipeline steps
remain script, narration, scenes, voiceover, and storyboard.
First project and render
These are MCP calls, made through your client after registration:
-
Create a project:
explainer_create(project_id="my-video")
-
Add source material:
explainer_inject(project_id="my-video", content="...", filename="research.md")
filenamemust be a single filename insideinput/. Injection replaces an existing file with the same name; preserve the original when that matters. -
Authorize generation, then run a bounded step such as
explainer_step(project_id="my-video", step="script"), or useexplainer_generatefor the pipeline. Inspect returned errors and outputs before continuing.force=Truereruns already completed generation steps. -
Read
explainer_statusand inspect the actual generated files. Review and typecheck TSX upstream, then preview scenes before rendering. -
Start a render with
explainer_render_start(project_id="my-video"). Poll the returnedjob_idwithexplainer_render_polluntilcompletedorfailed. Use blockingexplainer_renderfor a short render.
Render acceptance requires exit code zero and a new or updated, nonempty regular
.mp4 or .webm file in the project's output/. An unchanged older video does
not satisfy the current render. Inspect the returned output path, decode/play
that file, and review picture, sound, timing, and claims before publication.
The wrapper's artifact check establishes file production, not those quality checks.
Status and recovery
explainer_status reports filesystem observations. A step file's presence does
not establish its validity or publication readiness. Background jobs live in
memory, so their IDs are lost on restart. Shutdown cancels and joins active render
tasks and stops their CLI subprocesses.
The server prevents concurrent renders of the same project. After a failure, inspect the job error and project output before retrying. Preserve project files when upgrading the wrapper or renderer; they are separate from package installs.
Development
From this package directory:
uv run --locked pytest tests/ -q
uv run --locked ruff check src/ tests/
uv build
Tests use temporary projects and mocked CLI processes; no paid provider calls
are made. The lockfile records the development environment; pyproject.toml
defines supported dependency ranges. See the root
contribution guide and
publishing guide for repository and release checks.
Metadata
Release files for video-explainer-mcp 0.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| video_explainer_mcp-0.2.1.tar.gz | 108.8 kB | Without provenance | Details for video_explainer_mcp-0.2.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| video_explainer_mcp-0.2.1-py3-none-any.whl | Python 3 | none | any | Details for video_explainer_mcp-0.2.1-py3-none-any.whl |
Total release size: 132.6 kB
Release files / video_explainer_mcp-0.2.1.tar.gz
| Download URL | video_explainer_mcp-0.2.1.tar.gz |
|---|---|
| Size | 108.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9fa8d97872b7f7d6feb67bd3afc0ba664b3a4eaa141b1edb5d826ff3005d8554
|
|
BLAKE2b-256 checksum How to use checksums |
0dbc70342107385547b004f1597d1839f07ec03c1a0e88e29992dbb7c84adc62
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / video_explainer_mcp-0.2.1-py3-none-any.whl
| Download URL | video_explainer_mcp-0.2.1-py3-none-any.whl |
|---|---|
| Size | 23.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
89389866ba0ef2206ed28b9a20ea6f87d45b5de7d73a3e02f0f0e1ead8149e4d
|
|
BLAKE2b-256 checksum How to use checksums |
b11d88c5513c8c7d1f5285c599b7f3f1889e6ef5375889a71374555f6c32a247
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Security for video-explainer-mcp 0.2.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.