Video Still Capture MCP
An MCP server for accessing and controlling webcams using OpenCV.
Video Still Capture MCP
A Model Context Protocol server for accessing and controlling webcams via OpenCV
Overview
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.
Examples
Here are some examples of the Video Still Capture MCP server in action:
Orange Example
| Left: Claude's view of the image | Right: Actual webcam capture |
|---|---|
![]() | ![]() |
Magnet Example
| Left: Claude's view of the image | Right: Actual webcam capture |
|---|---|
![]() | ![]() |
Installation
Prerequisites
- Python 3.10+
- OpenCV (
opencv-python) - MCP Python SDK
- UV (optional)
Installation from source
git clone https://github.com/13rac1/videocapture-mcp.git
cd videocapture-mcp
pip install -e .
Run the MCP server:
mcp dev videocapture_mcp.py
Integrating with Claude for Desktop
macOS/Linux
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.
Windows
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.
Using the Installation Command
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.
Features
- Quick Image Capture: Capture a single image from a webcam without managing connections
- Connection Management: Open, manage, and close camera connections
- Video Properties: Read and adjust camera settings like brightness, contrast, and resolution
- Image Processing: Basic image transformations like horizontal flipping
Tools Reference
quick_capture
Quickly open a camera, capture a single frame, and close it.
quick_capture(device_index: int = 0, flip: bool = False) -> Image
- device_index: Camera index (0 is usually the default webcam)
- flip: Whether to horizontally flip the image
- Returns: The captured frame as an Image object
open_camera
Open a connection to a camera device.
open_camera(device_index: int = 0, name: Optional[str] = None) -> str
- device_index: Camera index (0 is usually the default webcam)
- name: Optional name to identify this camera connection
- Returns: Connection ID for the opened camera
capture_frame
Capture a single frame from the specified video source.
capture_frame(connection_id: str, flip: bool = False) -> Image
- connection_id: ID of the previously opened video connection
- flip: Whether to horizontally flip the image
- Returns: The captured frame as an Image object
get_video_properties
Get properties of the video source.
get_video_properties(connection_id: str) -> dict
- connection_id: ID of the previously opened video connection
- Returns: Dictionary of video properties (width, height, fps, etc.)
set_video_property
Set a property of the video source.
set_video_property(connection_id: str, property_name: str, value: float) -> bool
- connection_id: ID of the previously opened video connection
- property_name: Name of the property to set (width, height, brightness, etc.)
- value: Value to set
- Returns: True if successful, False otherwise
close_connection
Close a video connection and release resources.
close_connection(connection_id: str) -> bool
- connection_id: ID of the connection to close
- Returns: True if successful
list_active_connections
List all active video connections.
list_active_connections() -> list
- Returns: List of active connection IDs
Example Usage
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)
Advanced Usage
Resource Management
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.
Multiple Cameras
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)
Troubleshooting
- Camera Not Found: Ensure your webcam is properly connected and not in use by another application
- Permission Issues: Some systems require explicit permission to access the camera
- OpenCV Installation: If you encounter issues with OpenCV, refer to the official installation guide
License
This project is licensed under the MIT License - see the LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Related Servers
ISO 42001 AI Management MCP
AI management system compliance per ISO 42001 — risk registers, control assessments, gap analysis, and audit-ready documentation for responsible AI governance.
Runframe
Incident management MCP server. Acknowledge, escalate, page, and resolve incidents, check on-call, manage services, postmortems, and teams from any MCP client.
Learning Hub
AI learning assistant that manages game time rewards based on school grades, homework, and bonus tasks
The Agent Times
Agent economy news with 6 tools. Agents can read articles, get stats, and comment. Earn Bitcoin for contributions.
Nefesh Human State
Fuses biometric signals into a stress score (0-100) for real-time AI adaptation. MCP + A2A native.
Pace
Pace is the first MCP connector that brings wearable health data directly into Claude — no third-party dashboards, no manual exports, no extra apps. Most health apps lock your data behind their own UI. Pace breaks that wall: connect once, and Claude can analyze your sleep, activity, workouts, nutrition and recovery in natural language — with full visualizations inline.
mcp-cbr-rates
A Model Context Protocol (MCP) server that exposes public Bank of Russia (Центральный банк РФ, CBR) data — currency quotes, key rate, inflation and a compact macro snapshot — to AI agents.
mlp-tax
Deterministic MLP tax computation engine. 6 tools: basis projection, estate planning, sell vs hold comparison, MLP vs ETF tax analysis, distribution stress test, and MLP reference data. Returns IRS-cited calculations for K-1 basis tracking, §751 recapture, and §199A QBI.
Name Whisper
34 MCP tools to search, register, manage, value, and trade ENS names. AI-powered intelligence layer for the ENS ecosystem.
Stock Market Tracker
MCP server for advanced financial analysis, stock monitoring, and real-time market intelligence to support buy/sell decisions



