Video Still Capture MCP

Um servidor MCP para acessar e controlar webcams usando OpenCV.

Documentação

Video Still Capture MCP

Um servidor Model Context Protocol para acessar e controlar webcams via OpenCV

Visão Geral

Video Still Capture MCP é uma implementação em Python do Model Context Protocol (MCP) que fornece a assistentes de IA a capacidade de acessar e controlar webcams e fontes de vídeo através do OpenCV. Este servidor expõe um conjunto de ferramentas que permitem que modelos de linguagem capturem imagens, manipulem configurações de câmera e gerenciem conexões de vídeo. Não há captura de vídeo.

Exemplos

Aqui estão alguns exemplos do servidor Video Still Capture MCP em ação:

Exemplo com Laranja

Esquerda: visão de Claude da imagemDireita: captura real da webcam
Claude's view of orangeWebcam capture of orange

Exemplo com Ímã

Esquerda: visão de Claude da imagemDireita: captura real da webcam
Claude's view of magnetWebcam capture of magnet

Instalação

Pré-requisitos

Instalação a partir do código-fonte

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

Execute o servidor MCP:

mcp dev videocapture_mcp.py

Integração com Claude for Desktop

macOS/Linux

Edite sua configuração do Claude Desktop:

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

Adicione esta configuração do servidor MCP:

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

Certifique-se de substituir /ABSOLUTE_PATH/videocapture-mcp pelo caminho absoluto do projeto.

Windows

Edite sua configuração do Claude Desktop:

nano $env:AppData\Claude\claude_desktop_config.json

Adicione esta configuração do 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"
      ]
    }
  }
}

Certifique-se de substituir C:\ABSOLUTE_PATH\videocapture-mcp pelo caminho absoluto do projeto.

Usando o Comando de Instalação

Alternativamente, você pode usar a CLI mcp para instalar o servidor:

mcp install videocapture_mcp.py

Isso configurará automaticamente o Claude Desktop para usar seu servidor MCP de captura de vídeo.

Uma vez integrado, Claude poderá acessar sua webcam ou fonte de vídeo quando solicitado. Basta pedir a Claude para tirar uma foto ou realizar qualquer tarefa relacionada à webcam.

Recursos

  • Captura Rápida de Imagem: Capture uma única imagem de uma webcam sem gerenciar conexões
  • Gerenciamento de Conexões: Abra, gerencie e feche conexões de câmera
  • Propriedades de Vídeo: Leia e ajuste configurações da câmera como brilho, contraste e resolução
  • Processamento de Imagem: Transformações básicas de imagem como inversão horizontal

Referência de Ferramentas

quick_capture

Abra rapidamente uma câmera, capture um único quadro e feche-a.

quick_capture(device_index: int = 0, flip: bool = False) -> Image
  • device_index: Índice da câmera (0 geralmente é a webcam padrão)
  • flip: Se deve inverter a imagem horizontalmente
  • Retorna: O quadro capturado como um objeto Image

open_camera

Abra uma conexão com um dispositivo de câmera.

open_camera(device_index: int = 0, name: Optional[str] = None) -> str
  • device_index: Índice da câmera (0 geralmente é a webcam padrão)
  • name: Nome opcional para identificar esta conexão de câmera
  • Retorna: ID da conexão para a câmera aberta

capture_frame

Capture um único quadro da fonte de vídeo especificada.

capture_frame(connection_id: str, flip: bool = False) -> Image
  • connection_id: ID da conexão de vídeo aberta anteriormente
  • flip: Se deve inverter a imagem horizontalmente
  • Retorna: O quadro capturado como um objeto Image

get_video_properties

Obtenha as propriedades da fonte de vídeo.

get_video_properties(connection_id: str) -> dict
  • connection_id: ID da conexão de vídeo aberta anteriormente
  • Retorna: Dicionário de propriedades de vídeo (largura, altura, fps, etc.)

set_video_property

Defina uma propriedade da fonte de vídeo.

set_video_property(connection_id: str, property_name: str, value: float) -> bool
  • connection_id: ID da conexão de vídeo aberta anteriormente
  • property_name: Nome da propriedade a ser definida (largura, altura, brilho, etc.)
  • value: Valor a ser definido
  • Retorna: True se bem-sucedido, False caso contrário

close_connection

Feche uma conexão de vídeo e libere recursos.

close_connection(connection_id: str) -> bool
  • connection_id: ID da conexão a ser fechada
  • Retorna: True se bem-sucedido

list_active_connections

Liste todas as conexões de vídeo ativas.

list_active_connections() -> list
  • Retorna: Lista de IDs de conexões ativas

Exemplo de Uso

Veja como um assistente de IA pode usar o servidor Webcam MCP:

  1. Tire uma foto rápida:

    I'll take a photo using your webcam.
    

    (A IA chamaria quick_capture() nos bastidores)

  2. Abra uma conexão persistente:

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

    (A IA chamaria open_camera() e armazenaria o ID da conexão)

  3. Ajuste as configurações da câmera:

    Let me increase the brightness of the webcam feed.
    

    (A IA chamaria set_video_property() com os parâmetros apropriados)

Uso Avançado

Gerenciamento de Recursos

O servidor gerencia automaticamente os recursos da câmera, garantindo que todas as conexões sejam liberadas adequadamente quando o servidor é encerrado. Para aplicações de longa duração, é uma boa prática fechar explicitamente as conexões quando não forem mais necessárias.

Múltiplas Câmeras

Se o seu sistema tiver múltiplas câmeras, você pode especificar o índice do dispositivo ao abrir uma conexão:

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

Solução de Problemas

  • Câmera Não Encontrada: Certifique-se de que sua webcam esteja conectada corretamente e não esteja em uso por outro aplicativo
  • Problemas de Permissão: Alguns sistemas exigem permissão explícita para acessar a câmera
  • Instalação do OpenCV: Se você encontrar problemas com o OpenCV, consulte o guia oficial de instalação

Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.