Skip to main content
Glama

webcam-mcp

Un servidor MCP que le da a un agente de codificación ojos y oídos en la máquina anfitriona: imágenes fijas de la cámara web, voz a texto del micrófono y respuestas opcionales de texto a voz.

Todo se ejecuta localmente. ffmpeg captura fotogramas, faster-whisper transcribe en la CPU, openWakeWord gestiona la palabra de activación. No se envía audio, vídeo, transcripción ni imagen a ningún sitio. La única llamada de red que hace el servidor es una descarga única del modelo desde Hugging Face la primera vez que transcribes algo.

Por qué existe: un agente de codificación que puede leer tu pantalla pero no puede verte ni oírte se pierde toda una parte de la conversación. Esto cierra esa brecha para cualquier cliente MCP en una máquina con cámara y micrófono.

Herramientas

Herramienta

Qué hace

list_devices

Enumera cámaras y micrófonos. Llama a esto primero cuando falla una captura.

capture_frame

Un JPEG fijo de una cámara. Devuelve una ruta de archivo.

record_audio

Graba un micrófono en WAV mono de 16 kHz. Sin transcripción.

transcribe_file

Transcribe cualquier archivo de audio/vídeo existente a texto.

record_and_transcribe

Graba el micrófono y devuelve lo que se dijo. Bloquea durante la duración.

capture_stitched

Dos cámaras en una imagen, la primera arriba, la segunda abajo.

list_voices

Voces de texto a voz instaladas en la máquina.

speak

Di algo en voz alta, o reprodúcelo en un WAV.

listen_for_wake_word

Espera una frase de activación, luego graba y transcribe lo que sigue.

Related MCP server: Voice MCP

Configuración

Requiere Python 3.11+, ffmpeg en PATH y uv.

uv sync

Ejecútalo de forma independiente para confirmar que arranca:

uv run server.py

Se queda esperando entrada MCP stdio, así que parece que no hace nada hasta que un cliente se conecta. Eso es normal. Ctrl+C para salir.

Regístralo en tu cliente MCP como un comando stdio, con el mismo patrón que cualquier otro servidor.

Notas aprendidas por las malas

  • mcp está fijado por debajo de 2. mcp 2.0.0 renombró mcp.server.fastmcp a mcp.server.mcpserver, lo que rompe la importación silenciosamente al iniciar el servidor. Quédate en la 1.x que realmente carga.

  • El tiempo de calentamiento no es un relleno. Las cámaras web se abren oscuras y la autoexposición necesita un momento. Por debajo de aproximadamente un segundo, el fotograma sale negro o mal expuesto. El valor predeterminado es 1,5 segundos por una razón.

  • Una captura fallida casi siempre se debe a un dispositivo ya en uso. Zoom, Teams o una pestaña del navegador que tenga la cámara produce un error de E/S de ffmpeg. Las herramientas lo detectan y lo indican. La segunda causa más común es el ajuste de privacidad del sistema operativo que bloquea el acceso de las aplicaciones de escritorio a la cámara o al micrófono.

  • Tamaño del modelo Whisper: base (el predeterminado) es el punto óptimo de velocidad y precisión. small es notablemente mejor con acentos marcados a aproximadamente el triple de cómputo. Los modelos se guardan en caché en el perfil de usuario tras la primera descarga.

  • Los modelos se cargan de forma diferida y permanecen en caché por tamaño durante toda la vida del proceso del servidor. Recargarlos en cada llamada cuesta segundos y mucha RAM.

  • El modelo de activación predeterminado es el hey_jarvis preentrenado de openWakeWord. Sin entrenamiento, sin conjunto de datos, viene de serie. Con el umbral predeterminado de 0,5 es fiable, y los falsos positivos no son una preocupación práctica.

Límites de voz y habla

speak usa las voces SAPI heredadas por defecto. Suenan robóticas. Las voces naturales de los sistemas operativos modernos son mucho mejores y se ejecutan localmente una vez instaladas, y speak las detecta automáticamente cuando existen.

El límite arquitectónico honesto es que esto es un pipeline de cuatro saltos: voz a texto, texto a modelo, modelo a texto y texto a voz. Es más lento que un modelo de audio nativo, y convertir la voz en texto descarta el tono, el volumen y la emoción antes de que el modelo vea las palabras. Una configuración de audio nativa de un solo salto arreglaría ambas cosas, pero eso requiere un proveedor que acepte audio de forma nativa. Dentro de un entorno MCP de texto, cuatro saltos es el diseño correcto, no un atajo.

capture_stitched solo merece la pena cuando hay una segunda cámara realmente conectada. De lo contrario, la segunda mitad de la imagen es un indicador de conexión.

Archivos de salida

Las capturas van por defecto a una carpeta temporal con nombres con marca de tiempo. Pasa output_path para enviarlas a un lugar duradero. record_and_transcribe elimina su WAV después a menos que pases keep_audio=True.

Nada de esto elimina capturas antiguas automáticamente. Vacía esa carpeta de vez en cuando.

Autocomprobación

uv run server.py --selftest

Imprime la lista de dispositivos sin necesidad de un cliente MCP, que es la forma más rápida de confirmar que la instalación es correcta.

Licencia

MIT. Consulta LICENSE.

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Enables bidirectional voice interaction for Claude Code using local speech-to-text and text-to-speech models optimized for Apple Silicon. It provides tools to listen to user speech via microphone and speak responses aloud through system speakers.
    16
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • OCR, transcription, file extraction, and image generation for AI agents via MCP.

  • Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.

  • Transform video, audio and images, and generate media from prompts. FFmpeg, captions, models.

View all MCP Connectors

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/luigimasango-dev/webcam-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server