Video Still Capture MCP

Un servidor MCP para acceder y controlar cámaras web usando OpenCV.

Documentación

Video Still Capture MCP

Un servidor de Protocolo de Contexto de Modelo para acceder y controlar cámaras web mediante OpenCV

Descripción general

Video Still Capture MCP es una implementación en Python del Protocolo de Contexto de Modelo (MCP) que proporciona a los asistentes de IA la capacidad de acceder y controlar cámaras web y fuentes de video a través de OpenCV. Este servidor expone un conjunto de herramientas que permiten a los modelos de lenguaje capturar imágenes, manipular la configuración de la cámara y gestionar conexiones de video. No hay captura de video.

Ejemplos

Aquí hay algunos ejemplos del servidor Video Still Capture MCP en acción:

Ejemplo de Naranja

Izquierda: Vista de Claude de la imagenDerecha: Captura real de la cámara web
Claude's view of orangeWebcam capture of orange

Ejemplo de Imán

Izquierda: Vista de Claude de la imagenDerecha: Captura real de la cámara web
Claude's view of magnetWebcam capture of magnet

Instalación

Requisitos previos

Instalación desde el código fuente

git clone https://github.com/13rac1/videocapture-mcp.git
cd videocapture-mcp
pip install -e .

Ejecute el servidor MCP:

mcp dev videocapture_mcp.py

Integración con Claude para Desktop

macOS/Linux

Edite su configuración de Claude Desktop:

# Mac
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Linux
nano ~/.config/Claude/claude_desktop_config.json 

Agregue esta configuración del servidor MCP:

{
  "mcpServers": {
    "VideoCapture ": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "--with",
        "numpy",
        "--with",
        "opencv-python",
        "mcp",
        "run",
        "/ABSOLUTE_PATH/videocapture_mcp.py"
      ]
    }
  }
}

Asegúrese de reemplazar /ABSOLUTE_PATH/videocapture-mcp con la ruta absoluta del proyecto.

Windows

Edite su configuración de Claude Desktop:

nano $env:AppData\Claude\claude_desktop_config.json

Agregue esta configuración del servidor MCP:

{
  "mcpServers": {
    "VideoCapture": {
      "command": "uv",
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "--with",
        "numpy",
        "--with",
        "opencv-python",
        "mcp",
        "run",
        "C:\ABSOLUTE_PATH\videocapture-mcp\videocapture_mcp.py"
      ]
    }
  }
}

Asegúrese de reemplazar C:\ABSOLUTE_PATH\videocapture-mcp con la ruta absoluta del proyecto.

Usando el comando de instalación

Alternativamente, puede usar la CLI de mcp para instalar el servidor:

mcp install videocapture_mcp.py

Esto configurará automáticamente Claude Desktop para usar su servidor MCP de captura de video.

Una vez integrado, Claude podrá acceder a su cámara web o fuente de video cuando se le solicite. Simplemente pídale a Claude que tome una foto o realice cualquier tarea relacionada con la cámara web.

Características

  • Captura rápida de imágenes: Capture una sola imagen de una cámara web sin gestionar conexiones
  • Gestión de conexiones: Abra, administre y cierre conexiones de cámara
  • Propiedades de video: Lea y ajuste la configuración de la cámara como brillo, contraste y resolución
  • Procesamiento de imágenes: Transformaciones básicas de imágenes como volteo horizontal

Referencia de herramientas

quick_capture

Abra rápidamente una cámara, capture un solo fotograma y ciérrela.

quick_capture(device_index: int = 0, flip: bool = False) -> Image
  • device_index: Índice de la cámara (0 es generalmente la cámara web predeterminada)
  • flip: Si se debe voltear la imagen horizontalmente
  • Devuelve: El fotograma capturado como un objeto de imagen

open_camera

Abra una conexión a un dispositivo de cámara.

open_camera(device_index: int = 0, name: Optional[str] = None) -> str
  • device_index: Índice de la cámara (0 es generalmente la cámara web predeterminada)
  • name: Nombre opcional para identificar esta conexión de cámara
  • Devuelve: ID de conexión para la cámara abierta

capture_frame

Capture un solo fotograma de la fuente de video especificada.

capture_frame(connection_id: str, flip: bool = False) -> Image
  • connection_id: ID de la conexión de video abierta previamente
  • flip: Si se debe voltear la imagen horizontalmente
  • Devuelve: El fotograma capturado como un objeto de imagen

get_video_properties

Obtenga las propiedades de la fuente de video.

get_video_properties(connection_id: str) -> dict
  • connection_id: ID de la conexión de video abierta previamente
  • Devuelve: Diccionario de propiedades de video (ancho, alto, fps, etc.)

set_video_property

Establezca una propiedad de la fuente de video.

set_video_property(connection_id: str, property_name: str, value: float) -> bool
  • connection_id: ID de la conexión de video abierta previamente
  • property_name: Nombre de la propiedad a establecer (ancho, alto, brillo, etc.)
  • value: Valor a establecer
  • Devuelve: True si tiene éxito, False en caso contrario

close_connection

Cierre una conexión de video y libere recursos.

close_connection(connection_id: str) -> bool
  • connection_id: ID de la conexión a cerrar
  • Devuelve: True si tiene éxito

list_active_connections

Liste todas las conexiones de video activas.

list_active_connections() -> list
  • Devuelve: Lista de IDs de conexiones activas

Ejemplo de uso

Así es como un asistente de IA podría usar el servidor Webcam MCP:

  1. Tome una foto rápida:

    I'll take a photo using your webcam.
    

    (La IA llamaría a quick_capture() en segundo plano)

  2. Abra una conexión persistente:

    I'll open a connection to your webcam so we can take multiple photos.
    

    (La IA llamaría a open_camera() y almacenaría el ID de conexión)

  3. Ajuste la configuración de la cámara:

    Let me increase the brightness of the webcam feed.
    

    (La IA llamaría a set_video_property() con los parámetros apropiados)

Uso avanzado

Gestión de recursos

El servidor gestiona automáticamente los recursos de la cámara, asegurando que todas las conexiones se liberen correctamente cuando el servidor se apaga. Para aplicaciones de larga duración, es una buena práctica cerrar explícitamente las conexiones cuando ya no sean necesarias.

Múltiples cámaras

Si su sistema tiene múltiples cámaras, puede especificar el índice del dispositivo al abrir una conexión:

# Open the second webcam (index 1)
connection_id = open_camera(device_index=1)

Solución de problemas

  • Cámara no encontrada: Asegúrese de que su cámara web esté correctamente conectada y no esté en uso por otra aplicación
  • Problemas de permisos: Algunos sistemas requieren permiso explícito para acceder a la cámara
  • Instalación de OpenCV: Si encuentra problemas con OpenCV, consulte la guía de instalación oficial

Licencia

Este proyecto está licenciado bajo la Licencia MIT: consulte el archivo LICENSE para más detalles.

Contribuciones

¡Las contribuciones son bienvenidas! No dude en enviar una Solicitud de Extracción (Pull Request).