Video Still Capture MCP

Integrations

  • Leverages OpenCV's camera interfaces to capture images, manipulate video properties like brightness and contrast, and perform basic image transformations.

视频静态捕捉 MCP

用于通过 OpenCV 访问和控制网络摄像头的模型上下文协议服务器

概述

视频静态捕获 MCP 是模型上下文协议 (MCP) 的 Python 实现,它使 AI 助手能够通过 OpenCV 访问和控制网络摄像头及视频源。该服务器公开了一组工具,允许语言模型捕获图像、操作摄像头设置以及管理视频连接。但它不提供视频捕获功能。

示例

以下是视频静态捕获 MCP 服务器运行的一些示例:

橙色示例

左图:克劳德对图像的看法右图:实际网络摄像头捕捉到的图像

磁铁示例

左图:克劳德对图像的看法右图:实际网络摄像头捕捉到的图像

安装

先决条件

从源安装

git clone https://github.com/13rac1/videocapture-mcp.git cd videocapture-mcp pip install -e .

运行 MCP 服务器:

mcp dev videocapture_mcp.py

与 Claude 桌面版集成

macOS/Linux

编辑您的 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-mcp替换为项目的绝对路径。

视窗

编辑您的 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
  • device_index :摄像头索引(0 通常是默认的网络摄像头)
  • flip :是否水平翻转图像
  • 返回:捕获的帧作为图像对象

open_camera

打开与相机设备的连接。

open_camera(device_index: int = 0, name: Optional[str] = None) -> str
  • device_index :摄像头索引(0 通常是默认的网络摄像头)
  • name :可选名称,用于识别此相机连接
  • 返回:已打开相机的连接ID

capture_frame

从指定的视频源捕获单帧。

capture_frame(connection_id: str, flip: bool = False) -> Image
  • connection_id :之前打开的视频连接的ID
  • flip :是否水平翻转图像
  • 返回:捕获的帧作为图像对象

get_video_properties

获取视频源的属性。

get_video_properties(connection_id: str) -> dict
  • connection_id :之前打开的视频连接的ID
  • 返回:视频属性字典(宽度、高度、fps 等)

set_video_property

设置视频源的属性。

set_video_property(connection_id: str, property_name: str, value: float) -> bool
  • connection_id :之前打开的视频连接的ID
  • property_name :要设置的属性的名称(宽度、高度、亮度等)
  • value :要设置的值
  • 返回:如果成功则返回 True,否则返回 False

close_connection

关闭视频连接并释放资源。

close_connection(connection_id: str) -> bool
  • connection_id :要关闭的连接的 ID
  • 返回:如果成功则返回 True

list_active_connections

列出所有活动的视频连接。

list_active_connections() -> list
  • 返回:活动连接 ID 列表

示例用法

AI 助手可能会这样使用 Webcam MCP 服务器:

  1. 快速拍摄一张照片
    I'll take a photo using your webcam.
    (AI 会在后台调用quick_capture()
  2. 打开持久连接
    I'll open a connection to your webcam so we can take multiple photos.
    (AI 会调用open_camera()并存储连接 ID)
  3. 调整相机设置
    Let me increase the brightness of the webcam feed.
    (AI 会使用适当的参数调用set_video_property()

高级用法

资源管理

服务器会自动管理摄像头资源,确保在服务器关闭时所有连接都能正常释放。对于长时间运行的应用,最好在不再需要连接时明确关闭它们。

多台摄像机

如果您的系统有多个摄像头,您可以在打开连接时指定设备索引:

# Open the second webcam (index 1) connection_id = open_camera(device_index=1)

故障排除

  • 未找到摄像头:确保您的网络摄像头已正确连接且未被其他应用程序使用
  • 权限问题:某些系统需要明确许可才能访问摄像头
  • OpenCV 安装:如果您遇到 OpenCV 问题,请参阅官方安装指南

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅 LICENSE 文件。

贡献

欢迎贡献代码!欢迎提交 Pull 请求。

ID: 5h0cn62u05