1

13rac1

@13rac1/videocapture-mcp
0 Stars 331 次浏览 13rac1 更新于 2026-08-23

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "VideoCapture ": {
      "args": [
        "run",
        "--with",
        "mcp[cli]",
        "--with",
        "numpy",
        "--with",
        "opencv-python",
        "mcp",
        "run",
        "/ABSOLUTE_PATH/videocapture_mcp.py"
      ],
      "command": "uv"
    }
  }
}

服务介绍

视频静态捕获 MCP

一个通过 OpenCV 访问和控制网络摄像头的 Model Context Protocol 服务器

概述

视频静态捕获 MCP 是 Model Context Protocol (MCP) 的 Python 实现,它为 AI 助手提供了通过 OpenCV 访问和控制网络摄像头及视频源的能力。该服务器提供了一组工具,允许语言模型捕捉图像、操作摄像头设置以及管理视频连接。请注意,这里没有视频录制功能。

示例

以下是一些视频静态捕获 MCP 服务器的实际应用示例:

橙子示例

左:Claude 对图像的视图 右:实际网络摄像头捕获
Claude 对橙子的视图 网络摄像头捕获的橙子

磁铁示例

左:Claude 对图像的视图 右:实际网络摄像头捕获
Claude 对磁铁的视图 网络摄像头捕获的磁铁

安装

前提条件

从源代码安装

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

运行 MCP 服务器:

bash
mcp dev videocapture_mcp.py

与 Claude for Desktop 集成

macOS/Linux

编辑你的 Claude Desktop 配置文件:

bash

Mac

nano ~/Library/Application Support/Claude/claude_desktop_config.json

Linux

nano ~/.config/Claude/claude_desktop_config.json

添加此 MCP 服务器配置:

json
{
"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 替换为项目的绝对路径。

Windows

编辑你的 Claude Desktop 配置文件:

powershell
nano $env:AppData\Claude\claude_desktop_config.json

添加此 MCP 服务器配置:

json
{
"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 来安装服务器:

bash
mcp install videocapture_mcp.py

这将自动配置 Claude Desktop 以使用你的视频捕获 MCP 服务器。

集成后,当请求时 Claude 将能够访问你的网络摄像头或视频源。只需让 Claude 拍照或执行任何与网络摄像头相关的任务即可。

功能

  • 快速图像捕获:无需管理连接即可从网络摄像头捕获单张图像
  • 连接管理:打开、管理和关闭摄像头连接
  • 视频属性:读取和调整摄像头设置,如亮度、对比度和分辨率
  • 图像处理:基本的图像变换,如水平翻转

工具参考

quick_capture

快速打开摄像头,捕获单帧图像并关闭它。

python
quick_capture(device_index: int = 0, flip: bool = False) -> Image

  • device_index:摄像头索引(0 通常是默认的网络摄像头)
  • flip:是否水平翻转图像
  • 返回:捕获的帧作为 Image 对象

open_camera

打开到摄像头设备的连接。

python
open_camera(device_index: int = 0, name: Optional[str] = None) -> str- device_index: 摄像头索引(0 通常是默认的网络摄像头)

  • name: 可选名称,用于标识此摄像头连接
  • Returns: 打开的摄像头连接 ID

capture_frame

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

python
capture_frame(connection_id: str, flip: bool = False) -> Image

  • connection_id: 之前打开的视频连接的 ID
  • flip: 是否水平翻转图像
  • Returns: 作为 Image 对象捕获的帧

get_video_properties

获取视频源的属性。

python
get_video_properties(connection_id: str) -> dict

  • connection_id: 之前打开的视频连接的 ID
  • Returns: 视频属性字典(宽度、高度、帧率等)

set_video_property

设置视频源的属性。

python
set_video_property(connection_id: str, property_name: str, value: float) -> bool

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

close_connection

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

python
close_connection(connection_id: str) -> bool

  • connection_id: 要关闭的连接的 ID
  • Returns: 如果成功则返回 True

list_active_connections

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

python
list_active_connections() -> list

  • Returns: 活动连接 ID 列表

示例用法

以下是一个 AI 助手如何使用 Webcam MCP 服务器的示例:

  1. 快速拍照

    我将使用您的网络摄像头拍摄一张照片。

    (AI 会在幕后调用 quick_capture()

  2. 打开持久连接

    我将打开一个到您网络摄像头的连接,以便我们可以拍摄多张照片。

    (AI 会调用 open_camera() 并存储连接 ID)

  3. 调整摄像头设置

    让我增加网络摄像头画面的亮度。

    (AI 会使用适当的参数调用 set_video_property()

高级用法

资源管理

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

多个摄像头

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

python

打开第二个网络摄像头(索引 1)

connection_id = open_camera(device_index=1)

故障排除

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

许可证

本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件。

贡献

欢迎贡献!请随时提交 Pull Request。

相关 MCP 服务