MCP Video Converter Server
Convierte archivos de video entre varios formatos usando FFmpeg. Requiere que FFmpeg esté instalado en el sistema.
Documentación
MCP Video Converter Server
Un servidor MCP que proporciona herramientas para verificar la instalación de FFmpeg y convertir archivos de video entre varios formatos.
Características
- Verificar FFmpeg: Comprueba si FFmpeg está instalado y accesible.
- Convertir Video: Convierte archivos de video, audio e imagen a varios formatos (por ejemplo, MP4, WebM, MOV, MP3, PNG).
- Información de Formatos: Obtén una lista de formatos de archivo compatibles para la conversión.
Requisitos previos
- Python 3.10+
- FFmpeg instalado y disponible en el PATH de tu sistema
- [Opcional] uv para la gestión del entorno
Configuración
-
Clona este repositorio:
git clone https://github.com/adamanz/mcp-video-converter.git cd mcp-video-converter -
Crea y activa un entorno virtual:
# Using venv (standard library) python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # Or using uv (recommended if available) uv venv source .venv/bin/activate # On Windows: .venv\Scripts\activate -
Instala las dependencias:
# Using pip pip install -e . pip install fastmcp # Or using uv uv pip install -e . uv pip install fastmcp -
Verifica tu instalación:
# Run the installation check script python check_installation.py
Ejecutar el Servidor Directamente
Puedes ejecutar el servidor directamente:
# Activate the virtual environment if not already activated
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Run the server
python -m mcp_video_converter.server
Integración con Claude Desktop
Para agregar este servidor MCP a Claude Desktop:
-
Localiza o crea el archivo de configuración de Claude Desktop:
# macOS mkdir -p ~/Library/Application\ Support/Claude/ nano ~/Library/Application\ Support/Claude/claude_desktop_config.json # Windows mkdir -p %APPDATA%\Claude\ notepad %APPDATA%\Claude\claude_desktop_config.json -
Agrega la configuración del servidor MCP:
{ "mcpServers": { "video-convert": { "command": "/bin/bash", "args": [ "-c", "cd /absolute/path/to/mcp-video-converter && source .venv/bin/activate && python -m mcp_video_converter.server" ] } } }Alternativa para Windows:
{ "mcpServers": { "video-convert": { "command": "cmd.exe", "args": [ "/c", "cd /d C:\\absolute\\path\\to\\mcp-video-converter && .venv\\Scripts\\activate && python -m mcp_video_converter.server" ] } } }Reemplaza
/absolute/path/to/mcp-video-convertercon la ruta absoluta a tu repositorio. -
Reinicia Claude Desktop
- El servidor aparecerá como "video-convert" en el menú de herramientas MCP
-
Notas importantes:
- Usa siempre rutas absolutas en tu configuración
- Asegúrate de que FFmpeg esté instalado y en tu PATH
- Si encuentras problemas, revisa los registros de Claude Desktop:
# macOS tail -n 20 -F ~/Library/Logs/Claude/mcp*.log # Windows type %APPDATA%\Claude\logs\mcp*.log
Integración con Cursor
Para agregar este servidor MCP a Cursor:
-
Localiza o crea el archivo de configuración de Cursor:
# macOS mkdir -p ~/.cursor/ nano ~/.cursor/config.json # Windows mkdir -p %USERPROFILE%\.cursor\ notepad %USERPROFILE%\.cursor\config.json -
Agrega la configuración del servidor MCP:
{ "ai": { "mcpServers": { "video-convert": { "command": "/bin/bash", "args": [ "-c", "cd /absolute/path/to/mcp-video-converter && source .venv/bin/activate && python -m mcp_video_converter.server" ] } } } }Alternativa para Windows:
{ "ai": { "mcpServers": { "video-convert": { "command": "cmd.exe", "args": [ "/c", "cd /d C:\\absolute\\path\\to\\mcp-video-converter && .venv\\Scripts\\activate && python -m mcp_video_converter.server" ] } } } }Reemplaza
/absolute/path/to/mcp-video-convertercon la ruta absoluta a tu repositorio. -
Reinicia Cursor
- El servidor estará disponible para Claude en Cursor
-
Notas importantes:
- Usa siempre rutas absolutas en tu configuración
- Asegúrate de que FFmpeg esté instalado y en tu PATH
- Los registros se pueden acceder a través de las herramientas de desarrollador de Cursor
Despliegue con Smithery
Smithery es una plataforma que simplifica el despliegue y la gestión de servidores MCP. Este proyecto está completamente configurado para el despliegue con Smithery, con los archivos y configuraciones requeridos.
Archivos de Configuración Requeridos
Este proyecto incluye todos los archivos de configuración requeridos para el despliegue con Smithery:
- smithery.yaml: Define cómo iniciar tu servidor y sus opciones de configuración
- Dockerfile: Define cómo construir la imagen de contenedor de tu servidor
Configuración YAML de Smithery
El archivo smithery.yaml proporciona a Smithery instrucciones sobre cómo ejecutar tu servidor:
startCommand:
type: stdio
configSchema:
type: object
properties:
ffmpegPath:
type: string
title: "FFmpeg Path"
description: "Optional path to FFmpeg executable (uses system PATH by default)"
outputDirectory:
type: string
title: "Output Directory"
description: "Optional custom directory for output files"
quality:
type: string
enum: ["low", "medium", "high"]
default: "medium"
title: "Default Quality"
name: "MCP Video Converter"
description: "Convert video files between formats and check FFmpeg installation"
commandFunction: |
(config) => {
// Function that returns command details based on configuration options
}
build:
dockerfile: Dockerfile
dockerBuildPath: .
env:
OUTPUT_DIRECTORY: "/data/converted"
buildOptions:
buildArgs:
PYTHON_VERSION: "3.10"
INSTALL_DEV: "false"
labels:
org.opencontainers.image.source: "https://github.com/adamanz/mcp-video-converter"
org.opencontainers.image.description: "MCP Server for video conversion using FFmpeg"
org.opencontainers.image.licenses: "MIT"
Componentes clave:
- type: stdio: Define que nuestro servidor utiliza el transporte estándar de E/S
- configSchema: Define las opciones de configuración que los usuarios pueden establecer (ruta de FFmpeg, directorio de salida, calidad)
- commandFunction: Función de JavaScript que devuelve cómo iniciar el servidor según la configuración
- build: Configuración específica del contenedor para el despliegue con Docker
Despliegue en Smithery
-
Instala la CLI de Smithery si aún no lo has hecho:
# Install the Smithery command-line tool npm install -g @smithery/cli -
Inicia sesión en Smithery:
smithery login -
Despliega directamente desde el repositorio:
# Navigate to the repository directory cd /path/to/adamanz/mcp-video-converter # Deploy to Smithery smithery deployAlternativamente, despliega con opciones de compilación explícitas:
# Deploy with container build smithery deploy --build # Deploy with custom build arguments smithery deploy --build --build-arg PYTHON_VERSION=3.11 -
Configura e inicia el servidor en Smithery:
# Configure the server (interactive) smithery configure mcp-video-converter # Start the server smithery start mcp-video-converter
Soporte de Docker
Este proyecto incluye un Dockerfile de múltiples etapas para un despliegue contenerizado eficiente. El contenedor:
- Utiliza un proceso de compilación de múltiples etapas para reducir el tamaño final de la imagen
- Instala FFmpeg y todas las dependencias requeridas
- Crea un punto de montaje de volumen dedicado para los archivos convertidos
- Incluye una verificación de salud para un mejor monitoreo del contenedor
Puedes compilar y ejecutar el contenedor Docker manualmente:
# Build the container
docker build -t mcp-video-converter .
# Run the container
docker run -it --rm \
-v $(pwd)/converted:/data/converted \
-e FFMPEG_PATH=/usr/bin/ffmpeg \
-e DEFAULT_QUALITY=high \
mcp-video-converter
Consideraciones de Alojamiento Serverless
Al desplegar en el entorno serverless de Smithery, ten en cuenta lo siguiente:
- Tiempo de Espera de Conexión: Las conexiones a tu servidor expirarán después de 2 minutos de inactividad
- Almacenamiento Efímero: Diseña tu servidor teniendo en cuenta el almacenamiento efímero
- Diseño Sin Estado: El servidor no debe depender de almacenamiento local persistente
- Archivos de Salida: Las salidas de conversión de video deben devolverse correctamente como parte de la respuesta de la herramienta para garantizar que los clientes puedan acceder a ellas
Gestión de Smithery
Comandos útiles de Smithery para gestionar tu despliegue:
# View server logs
smithery logs mcp-video-converter
# Update to latest version
smithery update mcp-video-converter
# Stop the server
smithery stop mcp-video-converter
# Remove the server
smithery remove mcp-video-converter
Integración con Aplicaciones de Smithery
Los usuarios pueden acceder a tu servidor a través de la aplicación de Smithery:
- Abre la aplicación de Smithery
- Navega a la pestaña "Servers"
- Selecciona "mcp-video-converter"
- Configura los ajustes si se te solicita (ruta de FFmpeg, directorio de salida, calidad)
- Conéctate al servidor
- Usa el servidor con clientes MCP compatibles
Pruebas Antes del Despliegue
Antes de desplegar en Smithery, se recomienda probar tu servidor localmente:
# Test with MCP Inspector (if available)
mcp-inspector -s /path/to/mcp-video-converter/smithery.yaml
# Or test by running the server directly
cd /path/to/mcp-video-converter
python -m mcp_video_converter.server
Solución de Problemas Comunes
Servidor No Encontrado
Si el servidor MCP no se está detectando:
- Verifica que las rutas en tu archivo de configuración sean absolutas y correctas
- Comprueba que FFmpeg esté instalado y en tu PATH
- Asegúrate de que el entorno virtual esté activado en tu comando
- Revisa los registros para ver mensajes de error específicos
Módulo de Python No Encontrado
Si ves errores sobre módulos faltantes:
- Asegúrate de haber instalado todas las dependencias con
pip install -e .ypip install fastmcp - Verifica que el entorno virtual se esté activando correctamente
- Intenta reinstalar el paquete:
pip install -e .
FFmpeg No Encontrado
Si no se puede encontrar FFmpeg:
- Verifica que FFmpeg esté instalado:
which ffmpegowhere ffmpegen Windows - Agrega el directorio de FFmpeg a tu PATH
- En la configuración, puedes especificar la ruta completa a FFmpeg:
"env": { "PATH": "/usr/local/bin:/usr/bin:/bin:/path/to/ffmpeg/bin" }
Ejemplo de Uso (con Claude)
Una vez integrado, puedes pedirle a Claude que realice tareas como:
- "Comprueba si FFmpeg está instalado en mi sistema"
- "Convierte este archivo de video: /path/to/video.webm a formato MP4 con alta calidad"
- "¿A qué formatos de video puedo convertir?"
Claude utilizará las herramientas apropiadas del servidor MCP para realizar estas tareas.
Avanzado: Uso con el cliente fastmcp
Para uso programático, puedes usar el cliente fastmcp:
# Check FFmpeg installation
fastmcp client call <SERVER_URL_OR_FILE_PATH> check_ffmpeg_installed '{}'
# Get supported formats
fastmcp client call <SERVER_URL_OR_FILE_PATH> get_supported_formats '{}'
# Convert a video
fastmcp client call <SERVER_URL_OR_FILE_PATH> convert_video '{
"input_file_path": "/path/to/your/video.webm",
"output_format": "mp4",
"quality": "high"
}'
Reemplaza /path/to/your/video.webm con una ruta real de archivo de video.
Formatos Compatibles
- Video: MP4, WebM, MOV, AVI, MKV, FLV, GIF
- Audio: MP3, WAV, OGG, AAC, M4A
- Imagen: WebP, JPG, PNG, BMP, TIFF
Ejecutar Pruebas
# Using pip
pip install pytest
pytest
# Using uv
uv pip install pytest
uv run pytest
Licencia
Este proyecto es de código abierto y está disponible bajo la Licencia MIT.
Contribuciones
¡Las contribuciones son bienvenidas! Consulta CONTRIBUTING.md para obtener detalles sobre cómo contribuir a este proyecto.