This release is a pre-release and may not be stable for production use.
vmaf-mcp
DEPRECATED (ADR-1229). The MCP server is now the Go binary
vmafx-mcp(cmd/vmafx-mcp/), installed at/usr/local/bin/vmafx-mcpin every container image. Attach withdocker exec -i vmaf-dev-mcp vmafx-mcp. This Python package implements the same fifteen tools and is retained for one release as a reference implementation; it is no longer installed bydev/Containerfileand a follow-up removes it. Do not add tools here — add them tocmd/vmafx-mcp/.
MCP (Model Context Protocol) server that exposes the VMAFx fork's scoring CLI to LLM tooling via JSON-RPC over stdio.
Tools
| Tool | Description |
|---|---|
vmaf_score |
Score a (ref, dis) raw YUV pair. Returns the full JSON report. |
vmaf_score_encoded |
Score encoded video (MP4/MKV/Y4M/…) — decodes via ffmpeg, then scores. (ADR-0608) |
list_models |
Enumerate models under model/ (.json, .pkl, .onnx). |
list_backends |
Report which backends (cpu/cuda/sycl/hip/metal) are compiled in. |
probe_backend |
Runtime health check: compiled-in vs driver-functional distinction. (ADR-0608) |
vmaf_version |
Return binary path, version string, and build flags. (ADR-0608) |
run_benchmark |
Run testdata/bench_all.sh on the built-in fixture pairs. |
eval_model_on_split |
Evaluate an ONNX tiny-AI model on a parquet feature split. |
compare_models |
Rank ONNX models on the same split by PLCC. |
| Tool | Description |
| --------------- | ------------------------------------------------------------ |
vmaf_score |
Score a (ref, dis) YUV pair. Returns the full JSON report. |
list_models |
Enumerate models under model/ (.json, .pkl, .onnx). |
list_backends |
Report which backends (cpu/cuda/sycl/hip) are live. |
run_benchmark |
Run testdata/bench_all.sh on a pair. |
eval_model_on_split |
Evaluate an ONNX tiny-AI model on a parquet feature split. |
compare_models |
Rank ONNX models on the same split by PLCC. |
describe_worst_frames |
Extract the lowest-VMAF frames and describe visible artefacts with local VLM extras. |
Install
cd mcp-server/vmaf-mcp
pip install -e .
Requires a built libvmaf binary at build/tools/vmaf (override via
VMAF_BIN=/abs/path/to/vmaf).
Run
# Stdio transport (default for Claude Desktop, Cursor, etc.)
vmaf-mcp
Path allowlisting
For safety, the server only reads files under testdata/,
python/test/resource/, and model/. Extend via colon-separated
VMAF_MCP_ALLOW:
VMAF_MCP_ALLOW=/data/my-corpus:/mnt/yuv vmaf-mcp
Claude Desktop config
{
"mcpServers": {
"vmaf": {
"command": "vmaf-mcp",
"env": {
"VMAF_BIN": "/home/you/dev/vmaf/build/tools/vmaf",
"VMAF_MCP_ALLOW": "/data/yuv-corpus"
}
}
}
}
Release files for vmaf-mcp 1.0.0rc2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vmaf_mcp-1.0.0rc2.tar.gz | 295.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vmaf_mcp-1.0.0rc2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 360.5 kB
Release files / vmaf_mcp-1.0.0rc2.tar.gz
| Download URL | vmaf_mcp-1.0.0rc2.tar.gz |
|---|---|
| Size | 295.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a41c19bc3f4cca2c3f1484f4f05341eccac88f70b82af0e360f6292277ce65f9
|
|
BLAKE2b-256 checksum How to use checksums |
5841500f24c2c8c3b9fa31299dc20773e25fe8c4930a67b99462264b156a0747
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency logRelease files / vmaf_mcp-1.0.0rc2-py3-none-any.whl
| Download URL | vmaf_mcp-1.0.0rc2-py3-none-any.whl |
|---|---|
| Size | 64.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d16e608f371faa91291d2a20a0101d0140b76bd873cc30d48fa75a8e322b2333
|
|
BLAKE2b-256 checksum How to use checksums |
0391368cec493f28ebd887af0bf69ed61330f0afb6c1ca43cf778ab45bf7ec33
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
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.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 28, 2026.
Transparency log