EI

ebenezer-isaac/vigi-nvr-mcp

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

0 stars 0 forks 质量 81 趋势 14MIT

本地、无浏览器的 TP-Link VIGI NVR MCP 服务器:优先读、写门、锁定感知;管理频道并通过 RTSP 导出画面。

概览

一个MCP服务器,适用于你自己网络上的单个TP-Link VIGI NVR。它直接通信NVR的本地JSON API——没有云端,没有浏览器,也没有供应商应用——并将它作为一组安全、有类型的工具暴露给AI代理或任何MCP客户端:读取设备及其摄像头,管理频道,并通过RTSP导出录制的录像。读取是免费的;每次写入都需要两次单独的选择加入;登录系统围绕NVR的账户锁定设计,确保代理无法锁定你自己的录制。 VIGI NVR在登录失败~10次后锁定管理员账户,锁定期间你完全无法访问NVR,包括其录制。该服务器从不自动重试登录,默认情况下,登录失败后会停止所有登录,直到有人清除断路器。在指向代理之前,请用vigi-nvr-mcp --check-auth --login确认密码。参见安全模型。 其他 VIGI 型号和固件很可能也能正常工作,但——这台设备使用 MD5+RSA,而较新的固件已知采用基于 SHA-256 的方案。

概述(AI 翻译)

单个TP-Link VIGI NVR的MCP服务器 在你自己的网络上。它直接使用NVR的本地JSON API——没有云端,没有 浏览器,没有供应商应用——并以 AI 代理或任何 MCP 客户端的形式暴露它 一套安全、打字工具:读取设备及其摄像头,管理频道, 并通过RTSP导出录制素材。读取是免费的;每次写入都需要两次 分开选择加入;登录系统设计时会围绕NVR的账户锁定设计,所以 代理不能把你自己的录音锁在外面。

[!警告] 账户锁定是主要风险。 VIGI NVR会在之后锁定admin账户 ~10次登录失败,锁定期间完全无法访问NVR,包括 它的录制。这个服务器从不自动重试登录,默认情况下会停止 在出现一次失败后,所有登录都>,直到有人清除断路器。 在指向前请先用vigi-nvr-mcp --check-auth --login确认密码 有个特工在做这件事。参见安全模型。

支持的硬件

测试模型VIGI NVR1016H(联合国)
测试过固件 1.1.3 构建260727
认证方案(本固件) MD5 + RSA-PKCS1v15 (encrypt_type 2),退回裸MD5(encrypt_type 1)

本页由 AI 翻译,技术细节请以原文为准。

README

以下为原文 README 节选,完整内容请查看原文。

vigi-nvr-mcp

An MCP server for a single TP-Link VIGI NVR on your own network. It speaks the NVR’s local JSON API directly — no cloud, no browser, no vendor app — and exposes it to an AI agent or any MCP client as a set of safe, typed tools: read the device and its cameras, manage channels, and export recorded footage over RTSP. Reads are free; every write needs two separate opt-ins; and login is engineered around the NVR’s account-lockout so an agent cannot lock you out of your own recordings.

[!WARNING] Account lockout is the main risk. VIGI NVRs lock the admin account after ~10 failed logins, and while locked you cannot reach the NVR at all, including its recordings. This server never auto-retries a login and, by default, stops all logins after a single failure until a human clears the breaker. Confirm your password with vigi-nvr-mcp --check-auth --login before pointing an agent at it. See Safety model.

Supported hardware

Tested model VIGI NVR1016H(UN)
Tested firmware 1.1.3 Build 260727
Auth scheme (this firmware) MD5 + RSA-PKCS1v15 (encrypt_type 2), falling back to bare MD5 (encrypt_type 1)

Other VIGI models and firmware very likely work, but the login scheme varies by firmware — this unit uses MD5+RSA, and newer firmware is known to use SHA-256-based schemes. The server auto-detects encrypt_type 1 vs 2, but if your firmware uses something else, login will fail. Verify first, without risking the lockout counter:

vigi-nvr-mcp --check-auth           # fetch the challenge only: offered schemes, counters; NO login
vigi-nvr-mcp --check-auth --login   # plus exactly ONE login attempt

The full wire protocol is documented in docs/protocol/vigi-nvr.md.

Features

  • 45 tools over one NVR, all returning a uniform {success, data, error} envelope with credentials redacted.
  • Catalog gateway — nvr_call reaches every one of the 586 documented calls across 61 API modules through one validated, write-gated entry point, so coverage is the whole inventory rather than 586 hand-written tools.
  • Typed reads for the high-value calls: device/system/network info, users, storage and disks, recording status, video/image/detection config, firewall, cloud status, time.
  • Channel management — list bound cameras, group duplicates by device UUID, flag stale “ghost” channels, and plan/execute cleanup (remove, move) with per-write UUID checks.
  • Footage over RTSP — enable ONVIF/RTSP, build redacted stream URLs, export replay windows to mp4 (lossless -c copy, or re-encode to a size target), grab snapshots, build time-stamped contact sheets, sample frames, and run a full “find the footage and send it” investigation recipe.
  • MCP resources — the export directory is also exposed as exports://
在 GitHub 查看完整 README

安装

This server does not publish a one-line install command.

Open the repository installation guide 新手?先看 mcpskill.org 教程 →

配置

{ "mcpServers": { "vigi-nvr": { "command": "/path/to/.venv/bin/vigi-nvr-mcp", "env": { "VIGI_NVR_HOST": "192.0.2.1", "VIGI_NVR_PASSWORD": "<password>" } } } }