RV MCP Server
Servidor MCP de RV
Servidor MCP (Model Context Protocol) que conecta asistentes de IA como Claude con Autodesk/Tweak RV, la aplicación de revisión de medios estándar en la industria. Controla la reproducción, compara tomas, ajusta la gradación de color y gestiona sesiones de revisión, todo mediante lenguaje natural.
No se requiere ningún plugin dentro de RV. Utiliza el listener de red integrado de RV con scripting Mu a través de remote-eval.
Requisitos
OpenRV (o RV 2022.3.1+) con el modo de red habilitado
Python 3.10+
Gestor de paquetes uv
Inicio rápido
1. Iniciar RV con red
Habilita la red en RV a través de RV → Networking → Enable Network (puerto predeterminado 45124).
O desde la línea de comandos:
rv -network -networkPort 451242. Instalar y registrar
Claude Code (CLI):
claude mcp add --scope user rv-mcp -- uv run --no-sync --directory /path/to/RV_MCP rv-mcpNota:
--no-syncevita conflictos de bloqueo de archivos cuando varias sesiones de Claude comparten el mismo servidor MCP. Ejecutauv syncmanualmente después de cambiar las dependencias.
Claude Desktop (~/.claude.json):
{
"mcpServers": {
"rv-mcp": {
"command": "uv",
"args": ["run", "--no-sync", "--directory", "/path/to/RV_MCP", "rv-mcp"]
}
}
}Variables de entorno (opcional):
Variable | Predeterminado | Descripción |
|
| Host de red de RV |
|
| Puerto de red de RV |
3. Uso
Pídele a Claude que cargue medios, controle la reproducción, compare tomas o ajuste colores. El servidor traduce automáticamente el lenguaje natural a comandos de RV.
Arquitectura
Claude (stdio/MCP) --> FastMCP Server --> RV Network Protocol (TCP:45124) --> RVEl servidor mantiene una conexión TCP persistente con RV utilizando un protocolo personalizado basado en RvCommunicator de RV. Decisiones clave de diseño:
Conexión persistente con reconexión automática en caso de pérdida de socket
Seguro para hilos (Thread-safe) mediante
threading.Lockpara llamadas a herramientas concurrentesCierre limpio mediante un manejador
atexitque envíaDISCONNECT(sin esto, RV rechaza conexiones futuras)Manejo de cadenas Mu — los valores de retorno se eliminan automáticamente de comillas y caracteres de escape
Flujo del protocolo
1. Connect TCP to 127.0.0.1:45124
2. Send: NEWGREETING <len> rv-mcp rvController
3. Send: PINGPONGCONTROL 1 0 (disable heartbeat)
4. Recv: NEWGREETING <len> <rv-name> (consume RV's greeting)
5. For each command:
Send: MESSAGE <len> RETURNEVENT remote-eval * { require commands; <mu_code> }
Recv: MESSAGE <len> RETURN <value>
6. On shutdown:
Send: MESSAGE <len> DISCONNECTGestión de color OCIO
El servidor incluye soporte completo para OCIO v2. Cuando $OCIO está configurado, RV puede igualar la transformación de pantalla exacta utilizada por tus aplicaciones DCC (3ds Max/Redshift, Nuke, etc.).
Configuración automática
Se incluye un script rv_ocio_setup.py que configura automáticamente OCIO cuando RV carga medios:
Archivos EXR/HDR/TX se detectan automáticamente como scene-linear (ACEScg a través del rol
scene_linear)Transformación de pantalla se establece a partir de los valores predeterminados de la configuración (ej.
sRGB/ACES 1.0 SDR-video)Metadatos de cromaticidad en EXRs se comparan con los espacios de color de la configuración activa
Para instalar, copia rv_ocio_setup.py a tu ruta de soporte de RV:
# Windows
copy rv_ocio_setup.py %APPDATA%\RV\Python\
# Linux/macOS
cp rv_ocio_setup.py ~/.rv/Python/El paquete integrado ocio_source_setup de RV detectará y utilizará esta anulación automáticamente.
OCIO manual mediante MCP
Herramienta | Descripción |
| Lista espacios de color, pantallas, vistas y looks de la configuración OCIO activa |
| Establece el espacio de color de entrada para una fuente (inserta nodo OCIOFile) |
| Establece la transformación de pantalla (inserta nodo OCIODisplay) |
| Aplica un look OCIO a una fuente |
| Obtiene el estado actual del nodo OCIO como JSON |
| Elimina nodos OCIO y restaura la tubería predeterminada |
Coincidencia de color Redshift + RV
Si utilizas la configuración OCIO de Redshift ($OCIO = C:\ProgramData\redshift\Data\OCIO\config.ocio), ten en cuenta que sus reglas de archivo marcan los EXR como "Raw". El script rv_ocio_setup.py anula esto detectando formatos de punto flotante como scene-linear, asegurando que el tonemapper ACES se aplique en RV igual que en la vista de renderizado de Redshift.
Herramientas (47 en total)
Ejecución (1)
Herramienta | Descripción |
| Ejecuta código Mu arbitrario — vía de escape para cualquier cosa no cubierta por herramientas dedicadas |
OCIO (6)
Herramienta | Descripción |
| Obtiene información de configuración OCIO (espacios de color, pantallas, vistas, looks) |
| Establece el espacio de color de entrada OCIO para una fuente |
| Establece la transformación de pantalla OCIO |
| Aplica un look OCIO |
| Obtiene el estado OCIO actual como JSON |
| Elimina nodos OCIO, restaura valores predeterminados |
Ejecución (1)
Herramienta | Descripción |
| Ejecuta código Mu arbitrario — vía de escape para cualquier cosa no cubierta por herramientas dedicadas |
Reproducción (17)
Herramienta | Descripción |
| Carga un archivo de medios (secuencia de imágenes, película o imagen única) |
| Carga múltiples archivos de medios a la vez |
| Inicia la reproducción |
| Detiene la reproducción |
| Alterna reproducción/parada, devuelve el nuevo estado |
| Obtiene el número de fotograma actual |
| Salta a un fotograma específico |
| Avanza N fotogramas (predeterminado 1) |
| Retrocede N fotogramas (predeterminado 1) |
| Establece el punto de entrada (inicio del rango de reproducción) |
| Establece el punto de salida (fin del rango de reproducción) |
| Obtiene los puntos de entrada/salida actuales como JSON |
| Establece los fotogramas por segundo de reproducción |
| Obtiene los FPS de reproducción actuales |
| Habilita/deshabilita el modo en tiempo real (salta fotogramas para mantener los FPS) |
| Establece el modo de bucle: |
| Establece la dirección y velocidad de reproducción (1=adelante, -1=atrás, 2=2x, etc.) |
| Obtiene el estado completo de reproducción como JSON (fotograma, rango, entrada/salida, reproduciendo, fps) |
Fuentes (7)
Herramienta | Descripción |
| Lista todos los nodos de fuente cargados como matriz JSON |
| Obtiene información detallada de los medios (resolución, rango de fotogramas, fps, profundidad de bits, canales) |
| Obtiene los nodos de fuente visibles en un fotograma específico |
| Crea una nueva sesión vacía |
| Borra todas las fuentes de la sesión actual |
| Guarda la sesión en un archivo |
| Obtiene el estado de la sesión como JSON (nodo de vista, rango de fotogramas, recuento de fuentes) |
Comparación (4)
Herramienta | Descripción |
| Cambia la vista: |
| Establece el modo de composición de pila: |
| Alterna la comparación de barrido A/B (cambia automáticamente a la vista de pila) |
| Obtiene el estado de vista actual como JSON |
Color (12)
Herramienta | Descripción |
| Carga un archivo LUT ( |
| Desactiva LUT en un objetivo |
| Establece valores CDL (pendiente, desplazamiento, potencia, saturación) — se admiten actualizaciones parciales |
| Desactiva la corrección de color CDL |
| Establece la exposición (por canal o uniforme) |
| Establece la corrección gamma |
| Establece la saturación |
| Obtiene el estado actual de corrección de color como JSON |
| Establece la gamma de pantalla (ej. 2.2 para sRGB) |
| Habilita/deshabilita la transformación de pantalla sRGB |
| Establece el fondo del visor: |
Ejemplos de uso
Cargar y revisar metraje
"Load the EXR sequence at /shots/sh010/comp/sh010_comp.1-100#.exr"
"Play it back at 24fps"
"Go to frame 50"
"Set in point at 20 and out point at 80"Comparar dos versiones
"Load both /shots/sh010/comp_v1.mov and /shots/sh010/comp_v2.mov"
"Switch to stack view"
"Set composite to difference mode"
"Toggle the wipe to compare side by side"Corrección de color
"Apply CDL with slope [1.1, 0.95, 1.0] and saturation 1.2"
"Load the ACES LUT from /luts/sRGB.cube"
"Set exposure to 0.5"
"Show me the current color settings"Avanzado (Mu sin procesar)
"Execute this Mu code: { require commands; let s = sources(); string(s.size()); }"Estructura del proyecto
RV_MCP/
├── pyproject.toml # Package config, entry point, dependencies
├── README.md
├── .gitignore
└── src/
├── __init__.py
├── server.py # FastMCP server + RvClient instantiation
├── rv_client.py # Persistent TCP client (RV network protocol)
└── tools/
├── __init__.py
├── execute.py # execute_mu — raw Mu escape hatch
├── playback.py # 17 playback/transport tools
├── sources.py # 7 source & session tools
├── compare.py # 4 view/compare tools
├── color.py # 12 color/LUT/CDL tools
└── ocio.py # OCIO v2 color management toolsSolución de problemas
"Could not connect to RV"
Asegúrate de que RV se esté ejecutando con el flag
-networkComprueba que el puerto 45124 no esté bloqueado por un firewall
Usa
-networkPort 45124para establecer explícitamente el puerto
RV rechaza conexiones después de un bloqueo
Si el servidor sale sin enviar DISCONNECT, RV puede rechazar nuevas conexiones. Reinicia RV para borrar el estado. El servidor incluye un manejador atexit para evitar esto bajo operación normal.
Errores de código Mu
Envuelve siempre los bloques de código en
{ require commands; ... }Mu evalúa ambas ramas de
if/then/else— evita el acceso a propiedades en nodos que pueden no existirLas rutas de archivo deben usar barras inclinadas hacia adelante;
escape_mu_string()maneja esto automáticamente
Errores de tiempo de espera (Timeout)
El tiempo de espera predeterminado es de 30 segundos. Si el código Mu tarda más (ej. cargar secuencias grandes), puede agotarse el tiempo. Usa execute_mu para operaciones largas y considera dividirlas en pasos más pequeños.
Desarrollo
# Install dependencies
uv sync
# Run the server directly
uv run rv-mcp
# Run with debug logging
uv run python -m src.serverLicencia
MIT
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Geddart/rv-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server