webcam-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@webcam-mcpWhat do you see through the webcam?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
webcam-mcp
MCP server giving coding agents eyes and ears: local webcam stills, mic transcription and speech replies.

Quick start
Requires Python 3.11+, uv and ffmpeg on PATH.
Tested 2026-09-11 from a fresh clone on Windows 11 (POSIX same, minus py):
git clone https://github.com/luigimasango-dev/webcam-mcp.git
cd webcam-mcp
uv sync
uv run server.py --selftest--selftest prints the device list without needing an MCP client — the
fastest way to confirm the install is sane. Without flags the server sits
waiting for MCP stdio input; appearing to do nothing until a client
connects is normal. Ctrl+C to exit.
Related MCP server: voice-mcp-server
How it works
A coding agent that can read your screen but cannot see you or hear you is missing a whole side of a conversation. This closes that gap for any MCP client on a machine with a camera and a microphone.
Everything runs locally. ffmpeg captures frames, faster-whisper transcribes on CPU, openWakeWord handles the wake word. No audio, video, transcript, or image is sent anywhere. The only network call the server ever makes is a one-time model download from Hugging Face the first time you transcribe something.
Tools
Tool | Purpose | Key args |
| Enumerate cameras and microphones. Call this first when a capture fails | — |
| One still JPEG from a camera. Returns a file path |
|
| Two cameras in one image, first on top, second below |
|
| Record a mic to 16kHz mono WAV. No transcription |
|
| Transcribe any existing audio/video file to text, locally |
|
| Record the mic and return what was said. Blocks for the duration |
|
| Text-to-speech voices installed on the machine | — |
| Say something out loud, or render it to a WAV |
|
| Wait for a wake phrase, then record and transcribe what follows |
|
Captures default to a temp folder with timestamped names. Pass
output_path to send them somewhere durable. record_and_transcribe
deletes its WAV afterwards unless you pass keep_audio=True. Nothing here
prunes old captures automatically — clear that folder occasionally.
Limitations
Warmup time is not padding. Webcams open dark and auto-exposure needs a moment; below about one second the frame comes back black or badly exposed. The default is 1.5 seconds for a reason.
A failed capture is almost always a device already in use. Zoom, Teams, or a browser tab holding the camera produces an ffmpeg I/O error. The second most common cause is the OS privacy setting blocking desktop apps from the camera or microphone.
Whisper
base(the default) is the speed/accuracy sweet spot.smallis meaningfully better on strong accents at roughly three times the compute. Models cache under the user profile after the first download, load lazily, and stay cached per size for the life of the server process.The default wake model is openWakeWord's pretrained
hey_jarvis. At the default 0.5 threshold it is reliable; false positives are not a practical concern.speakuses the legacy SAPI voices by default. They sound robotic; OS natural voices run locally once installed and are picked up automatically.The honest architectural limit is the four-hop pipeline: speech to text, text to model, model to text, text to speech. Slower than a native audio model, and tone/volume/emotion are discarded before the model sees the words. Within a text MCP harness, four hops is the correct design.
capture_stitchedonly earns its keep with a second camera connected; otherwise the second half is a connection spinner.
Development
uv sync
uv run --with pytest python -m pytest tests/ -vThe suite launches the real server over stdio, calls tools/list, and
asserts the nine tool names are present. No camera or mic is touched. Pin
mcp>=1.28.1 but stay below 2.0 — mcp 2.x renamed mcp.server.fastmcp
and the import breaks at server start.
License
MIT. See LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Let cloud agents talk to you: progress updates spoken on your Mac, and replies you send back.
OCR, transcription, file extraction, and image generation for AI agents via MCP.
Turns a phone into a camera+Bluetooth remote so AI assistants can see and control any PC.
Command your AI agents by voice: PTT rooms, channels, direct messages, agent email, memory (mRAG).
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables 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.16Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to speak and listen in real-time with interruption handling, using local ML models and hot-swappable adapters.10 npmMIT
- AlicenseAqualityBmaintenanceProvides local vision and audio perception for MCP-compatible agents, enabling them to read images, transcribe text from visual media, analyze videos, and convert speech to text entirely on-device. It is privacy-focused with no cloud upload or API keys by default, using Ollama for inference.61MIT
- AlicenseAqualityBmaintenanceEnables an AI agent to run local tools on the user's own machine via stdio, including command execution, workspace file read/write, and system status checks.52MIT