通过OpenCV访问和控制网络摄像头的模型上下文协议服务器
视频快照捕获MCP是一个用Python实现的模型上下文协议(MCP)服务,它提供了AI助手通过OpenCV访问和控制网络摄像头及视频源的能力。该服务器提供了一组工具,允许语言模型捕捉图像、操作相机设置和管理视频连接。没有视频捕获功能。
这里有一些视频快照捕获MCP服务器的实际应用示例:
| 左:Claude对图像的看法 | 右:实际的网络摄像头捕获 |
|---|---|
![]() | ![]() |
| 左:Claude对图像的看法 | 右:实际的网络摄像头捕获 |
|---|---|
![]() | ![]() |
opencv-python)git clone https://github.com/13rac1/videocapture-mcp.git
cd videocapture-mcp
pip install -e .
运行MCP服务器:
mcp dev videocapture_mcp.py
编辑你的Claude Desktop配置:
# Mac
nano ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Linux
nano ~/.config/Claude/claude_desktop_config.json
添加这个MCP服务器配置:
{
"mcpServers": {
"VideoCapture ": {
"command": "uv",
"args": [
"run",
"--with",
"mcp[cli]",
"--with",
"numpy",
"--with",
"opencv-python",
"mcp",
"run",
"/ABSOLUTE_PATH/videocapture_mcp.py"
]
}
}
}
确保替换/ABSOLUTE_PATH/videocapture-m-mp为项目的绝对路径。
编辑你的Claude Desktop配置:
nano $env:AppData\Claude\claude_desktop_config.json
添加这个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"
]
}
}
}
确保替换C:\ABSOLUTE_PATH\videocapture-mcp为项目的绝对路径。
或者,你可以使用mcp CLI来安装服务器:
mcp install videocapture_mcp.py
这将自动配置Claude Desktop以使用你的视频捕获MCP服务器。
一旦集成完成,Claude就能在请求时访问你的网络摄像头或视频源。只需让Claude拍照或执行任何与网络摄像头相关的任务即可。
quick_capture快速打开一个摄像头,捕获一帧,并关闭它。
quick_capture(device_index: int = 0, flip: bool = False) -> Image
open_camera打开到摄像头设备的连接。
open_camera(device_index: int = 0, name: Optional[str] = None) -> str
capture_frame从指定的视频源捕获一帧。
capture_frame(connection_id: str, flip: bool = False) -> Image
get_video_properties获取视频源的属性。
get_video_properties(connection_id: str) -> dict
set_video_property设置视频源的属性。
set_video_property(connection_id: str, property_name: str, value: float) -> bool
close_connection关闭视频连接并释放资源。
close_connection(connection_id: str) -> bool
list_active_connections列出所有活动的视频连接。
list_active_connections() -> list
以下是AI助手如何使用Webcam MCP服务器的一些示例:
快速拍照:
我会使用你的网络摄像头拍一张照片。
(AI会在后台调用quick_capture())
打开持久连接:
我会打开一个到你网络摄像头的连接,这样我们可以拍摄多张照片。
(AI会调用open_camera()并存储连接ID)
调整相机设置:
让我增加网络摄像头馈送的亮度。
(AI会调用set_video_property()并传入适当的参数)
服务器会自动管理相机资源,确保所有连接在服务器关闭时都被正确释放。对于长时间运行的应用程序,最好在不再需要时显式关闭连接。
如果你的系统有多个摄像头,可以在打开连接时指定设备索引:
# 打开第二个网络摄像头(索引1)
connection_id = open_camera(device_index=1)
本项目采用MIT许可证——详情见LICENSE文件。
欢迎贡献!请随时提交Pull Request。