by 13rac1
Capture single images and manage webcam connections using OpenCV for AI assistants.
Video Capture MCP provides a Model Context Protocol (MCP) server that lets AI assistants interact with webcams or video sources through OpenCV. It offers tools for quick image capture, persistent camera connections, property manipulation, and basic image transformations.
git clone https://github.com/13rac1/videocapture-mcp.git
cd videocapture-mcp
pip install -e .
mcp dev videocapture_mcp.py
claude_desktop_config.json
that points to the absolute path of videocapture_mcp.py
.Q: Does the server stream video? A: No, it only captures still images; video streaming is not provided.
Q: Which Python version is required? A: Python 3.10 or newer.
Q: What dependencies are needed?
A: opencv-python
, the MCP Python SDK, and optionally uv
for isolated environments.
Q: How do I close a camera to free resources?
A: Call close_connection(connection_id)
or rely on the server’s automatic cleanup at shutdown.
Q: Can I use this on Windows? A: Yes. Follow the Windows‑specific configuration snippet in the README to add the MCP server to Claude Desktop.
A Model Context Protocol server for accessing and controlling webcams via OpenCV
Video Still Capture MCP is a Python implementation of the Model Context Protocol (MCP) that provides AI assistants with the ability to access and control webcams and video sources through OpenCV. This server exposes a set of tools that allow language models to capture images, manipulate camera settings, and manage video connections. There is no video capture.
Here are some examples of the Video Still Capture MCP server in action:
Left: Claude's view of the image | Right: Actual webcam capture |
---|---|
![]() |
![]() |
Left: Claude's view of the image | Right: Actual webcam capture |
---|---|
![]() |
![]() |
opencv-python
)git clone https://github.com/13rac1/videocapture-mcp.git
cd videocapture-mcp
pip install -e .
Run the MCP server:
mcp dev videocapture_mcp.py
Edit your Claude Desktop configuration:
# Mac
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Linux
nano ~/.config/Claude/claude_desktop_config.json
Add this MCP server configuration:
{
"mcpServers": {
"VideoCapture ": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"numpy",
"--with",
"opencv-python",
"mcp",
"run",
"/ABSOLUTE_PATH/videocapture_mcp.py"
]
}
}
}
Ensure you replace /ABSOLUTE_PATH/videocapture-mcp
with the project's absolute path.
Edit your Claude Desktop configuration:
nano $env:AppData\Claude\claude_desktop_config.json
Add this MCP server configuration:
{
"mcpServers": {
"VideoCapture": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"numpy",
"--with",
"opencv-python",
"mcp",
"run",
"C:\ABSOLUTE_PATH\videocapture-mcp\videocapture_mcp.py"
]
}
}
}
Ensure you replace C:\ABSOLUTE_PATH\videocapture-mcp
with the project's absolute path.
Alternatively, you can use the mcp
CLI to install the server:
mcp install videocapture_mcp.py
This will automatically configure Claude Desktop to use your videocapture MCP server.
Once integrated, Claude will be able to access your webcam or video source when requested. Simply ask Claude to take a photo or perform any webcam-related task.
quick_capture
Quickly open a camera, capture a single frame, and close it.
quick_capture(device_index: int = 0, flip: bool = False) -> Image
open_camera
Open a connection to a camera device.
open_camera(device_index: int = 0, name: Optional[str] = None) -> str
capture_frame
Capture a single frame from the specified video source.
capture_frame(connection_id: str, flip: bool = False) -> Image
get_video_properties
Get properties of the video source.
get_video_properties(connection_id: str) -> dict
set_video_property
Set a property of the video source.
set_video_property(connection_id: str, property_name: str, value: float) -> bool
close_connection
Close a video connection and release resources.
close_connection(connection_id: str) -> bool
list_active_connections
List all active video connections.
list_active_connections() -> list
Here's how an AI assistant might use the Webcam MCP server:
Take a quick photo:
I'll take a photo using your webcam.
(The AI would call quick_capture()
behind the scenes)
Open a persistent connection:
I'll open a connection to your webcam so we can take multiple photos.
(The AI would call open_camera()
and store the connection ID)
Adjust camera settings:
Let me increase the brightness of the webcam feed.
(The AI would call set_video_property()
with the appropriate parameters)
The server automatically manages camera resources, ensuring all connections are properly released when the server shuts down. For long-running applications, it's good practice to explicitly close connections when they're no longer needed.
If your system has multiple cameras, you can specify the device index when opening a connection:
# Open the second webcam (index 1)
connection_id = open_camera(device_index=1)
This project is licensed under the MIT License - see the LICENSE file for details.
Contributions are welcome! Please feel free to submit a Pull Request.
Please log in to share your review and rating for this MCP.
{ "mcpServers": { "Video Capture": { "command": "mcp", "args": [ "dev", "videocapture_mcp.py" ] } } }
Explore related MCPs that share similar capabilities and solve comparable challenges
by zed-industries
A high‑performance, multiplayer code editor designed for speed and collaboration.
by modelcontextprotocol
Model Context Protocol Servers
by modelcontextprotocol
A Model Context Protocol server for Git repository interaction and automation.
by modelcontextprotocol
A Model Context Protocol server that provides time and timezone conversion capabilities.
by cline
An autonomous coding assistant that can create and edit files, execute terminal commands, and interact with a browser directly from your IDE, operating step‑by‑step with explicit user permission.
by continuedev
Enables faster shipping of code by integrating continuous AI agents across IDEs, terminals, and CI pipelines, offering chat, edit, autocomplete, and customizable agent workflows.
by upstash
Provides up-to-date, version‑specific library documentation and code examples directly inside LLM prompts, eliminating outdated information and hallucinated APIs.
by github
Connects AI tools directly to GitHub, enabling natural‑language interactions for repository browsing, issue and pull‑request management, CI/CD monitoring, code‑security analysis, and team collaboration.
by daytonaio
Provides a secure, elastic infrastructure that creates isolated sandboxes for running AI‑generated code with sub‑90 ms startup, unlimited persistence, and OCI/Docker compatibility.