mcpField
R
reolink-mcp

reolink-mcp

本地服务
github.com/ed-dryha安全316 周前更新

关于 reolink-mcp

reolink-mcp 是用于在本地网络中查看和控制 Reolink 摄像头的开源 MCP 服务,提供快照、设备状态,以及灯光、警报、变焦和 PTZ 控制。

主要功能

  1. 01列出摄像头并查看设备详情
  2. 02获取快照和 AI 检测状态
  3. 03控制警报、聚光灯、红外灯和 LED
  4. 04调整变焦并管理 PTZ 预设
  5. 05限制为只读模式运行

适用场景

  1. 01通过 MCP 客户端查看摄像头实时快照
  2. 02检查摄像头状态和近期检测活动
  3. 03调整摄像头灯光或移动至 PTZ 预设位置

MCP 相关

向 MCP 客户端提供 Reolink 摄像头观察和控制工具。连接仅限本地网络;启动时可移除控制工具以启用只读模式。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"ed-dryha-reolink": {
"command": "uvx",
"args": [
"reolink-mcp"
],
"env": {
"RMCP_CONFIG_FILE": "<RMCP_CONFIG_FILE>",
"RMCP_READ_ONLY": "<RMCP_READ_ONLY>"
}
}
}
}
启动命令uvx reolink-mcp
需要配置的环境变量
RMCP_CONFIG_FILEPath to the camera config YAML (default: ~/.config/reolink-mcp/config.yaml)
RMCP_READ_ONLYSet to 'true' to strip all control tools and run observe-only

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypireolink-mcp1.0.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

reolink-mcp

适用于 Reolink 摄像头的开源 MCP(Model Context Protocol)服务:让 Claude — 或任何 MCP 客户端 — 查看和控制本地网络上的 Reolink 摄像头。快照、设备状态、AI 检测状态、PTZ 预设以及 威慑控制(聚光灯、警报器、红外/白光 LED)。仅限本地网络,不使用 云服务。

市场空白(已于 2026-07-08 验证): GitHub、npm 或 PyPI 上都没有专门的 Reolink MCP 服务。 最接近的先例需要中间层: dedsxc/mcp-frigate(需要 Frigate NVR)、homeassistant-mcp(需要 Home Assistant)。这是该细分领域首个独立方案。

拥有 Reolink 摄像头的用户将 reolink-mcp 添加到 MCP 客户端配置中, 询问“显示前门摄像头画面”,即可获得实时快照 — 直接连接摄像头,中间无需 NVR 或家庭自动化守护进程。

快速入门

需要一台可在本地网络访问的 Reolink 摄像头及其管理员 用户名/密码。

1. 创建摄像头配置

将 config.example.yaml 复制到 ~/.config/reolink-mcp/config.yaml(或者将 RMCP_CONFIG_FILE 指向磁盘上其他位置的副本):

cameras:
  front_door:
    host: 192.168.1.44
    username: admin

密码绝不能写入此文件。为每台摄像头分别设置一个 RMCP_CAMERAS__<name>__PASSWORD 环境变量 — <name> 必须与上方 YAML 中的摄像头键完全一致(小写蛇形命名):

RMCP_CAMERAS__front_door__PASSWORD=<camera-password>

并发会话数限制: Reolink 摄像头允许的同时会话数有限。reolink-mcp 在服务运行期间,会为每台已配置的摄像头保持一个 reolink-aio 会话 — 若与另一个同样占用这些摄像头会话的系统(NVR、 另一个 MCP 服务等)同时运行,可能会耗尽会话数限制。请参阅下文的 摄像头兼容性与会话数限制。

2. 将其添加到 MCP 客户端

Claude Code:

claude mcp add reolink -- uvx reolink-mcp

Claude Desktop(claude_desktop_config.json — macOS: ~/Library/Application Support/Claude/claude_desktop_config.json,Windows: %APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "reolink": {
      "command": "uvx",
      "args": ["reolink-mcp"],
      "env": {
        "RMCP_CAMERAS__front_door__PASSWORD": "<camera-password>"
      }
    }
  }
}

其他任何 MCP 客户端(通用 stdio):

{
  "command": "uvx",
  "args": ["reolink-mcp"]
}

完成 — 让 MCP 客户端“显示前门摄像头画面”即可。

工具

基于 reolink-aio 和官方 MCP Python SDK 构建。每个工具都带有 readOnlyHint/destructiveHint 注解,以便 MCP 客户端控制审批——Observe 工具为只读,Control 工具会修改摄像头状态,而 set_siren 是唯一标记为具有破坏性的工具。

工具类型用途具有破坏性
list_camerasObserve列出所有已配置的摄像头,包括实时连接状态、型号和主机否
get_device_infoObserve获取摄像头的型号、固件和硬件详情否
get_capabilitiesObserve查看摄像头支持的功能——PTZ、警笛、聚光灯、红外/白色 LED、变焦、AI 检测类型——使用中性的功能术语否
get_statesObserve查看设备当前状态:日/夜模式、白色 LED/聚光灯、红外灯、警笛功能和移动状态否
get_recent_eventsObserve通过按需轮询获取当前 AI 检测状态(人员/车辆/宠物及摄像头报告的其他项目),以及普通移动标志否
get_snapshotObserve获取摄像头的实时静态图像,并以 MCP 图像内容块的形式返回否
set_sirenControl启动或停止摄像头警笛——默认安全时长约为 5 秒,硬性上限为 60 秒,超过上限的请求会被拒绝而非截断是
set_audio_alarmControl启用或禁用摄像头的警笛/音频警报功能——当固件接受 set_siren 却没有发出声音时,需要使用此工具否
set_spotlightControl打开或关闭摄像头聚光灯否
set_ir_lightsControl将摄像头红外灯设为 auto、on 或 off否
set_white_ledControl打开或关闭摄像头白色 LED,并可选择设置亮度否
set_zoomControl将摄像头变焦到绝对位置(0-100),或按相对步进放大/缩小否
list_presetsControl列出摄像头已命名的 PTZ 预设否
ptz_move_to_presetControl将摄像头移至已命名(或数字)的 PTZ 预设位置否
ptz_positionControl读取摄像头当前的水平转动/垂直倾斜/变焦位置;若接近已保存的预设,则显示最近的预设名称否
ptz_guardControl配置摄像头的 PTZ 守护点和自动返回(set/goto/enable/disable)否

安全

  • RMCP_READ_ONLY=true 会在服务器启动时移除全部 10 个 Control 工具——这些工具根本不会注册,而不只是隐藏。服务器会向 stderr 输出一行提示;客户端看到的是干净的只观察服务器,其注册表中完全没有 Control 工具。
  • set_siren 在未指定时长时默认鸣响约 5 秒,并会拒绝(绝不静默截断)超过 60 秒硬性上限的请求——清晰的错误信息会要求缩短时长。
  • 功能检查:每个 Control 工具在发送命令前,都会检查目标摄像头的实际功能;如果不支持,则会直接拒绝(例如“摄像头 'front_door' 不支持警笛”),而不会让原始 API 错误传到客户端。

摄像头兼容性与会话限制

开发期间已在以下设备上进行实时验证:

摄像头已验证的功能
P437警报器、聚光灯、变焦
P320红外灯

PTZ 工具(list_presets、ptz_move_to_preset、ptz_position、 ptz_guard)仅经过模拟验证,尚待真实 PTZ 硬件验证。

并发会话限制: reolink-aio 会在服务进程的整个生命周期内,为每台摄像头维护一个长期会话。 Reolink 摄像头会限制其可接受的同时会话数量;如果在另一套独立连接同一批摄像头并持有会话的系统(NVR、Reolink 自有应用或另一套自动化系统)运行时启动 reolink-mcp,可能会达到此上限。本项目的开发环境也会连接与另一套独立系统共享的摄像头,并已在这一确切的共存条件下进行过测试——如果遇到登录或会话错误,请先检查当前是否有其他程序占用了摄像头会话。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。