集成: AI 助手

连接 AI 助手

Agent DVR 可以直接从 AI 助手(如 Claude、ChatGPT、Cursor 和 VS Code Copilot)使用。用自然语言提问 - "我昨晚收到了什么警报?"、"显示今早走道摄像头发生了什么"、"禁用车库里的摄像头" - 助手会从您的直播摄像头、录像文件和警报日志中回答,包括图像。

这是通过模型上下文协议 (MCP)实现的,MCP 是助手用来连接外部工具的开放标准。Agent DVR 在两个地方提供 MCP 服务器,您可以根据需要将您的助手连接到其中一个:

  • 内置于 Agent DVR(本地端点):由您本地网络上的服务器提供。不需要账户或订阅。适用于在同一台计算机或 LAN 上运行的助手。
  • 通过 iSpyConnect.com(云端点):通过与网络门户和移动应用相同的远程访问来访问您的服务器,可从任何地方访问,无需端口转发。需要 iSpyConnect 订阅。这是用于 claude.ai、ChatGPT 和手机的选项。

两者都公开相同的工具集。需要 Agent DVR 8.0.3 或更高版本。

本地端点

每个 Agent DVR 服务器都在其本地 Web 服务器上的 /mcp 处提供 MCP,因此如果您在 http://localhost:8090 打开 Agent DVR 用户界面,端点为 http://localhost:8090/mcp(从局域网上的另一台计算机使用您的服务器地址和端口,例如 http://192.168.1.10:8090/mcp)。默认情况下此功能处于启用状态,可以在 服务器设置 - 本地服务器中使用 AI 助手 (MCP) 端点关闭。

访问遵循与其余 本地 API 完全相同的规则:从您自己的网络无需登录,除非启用了 保护 API,在这种情况下助手必须发送管理员用户的用户名和密码(大多数 MCP 客户端允许您添加 授权标头)。来自网络外部的连接另外需要 许可证,与端口转发访问用户界面相同。

Claude Code

claude mcp add --transport http agentdvr http://localhost:8090/mcp

Gemini CLI

gemini mcp add -s user --transport http agentdvr http://localhost:8090/mcp

然后在 Gemini CLI 中输入 /mcp 以确认工具已加载。-s user 部分将服务器存储在您的用户设置中,以便从任何文件夹访问。

Cursor

添加到 .cursor/mcp.json(或通过设置 - MCP):

{ "mcpServers": { "agentdvr": { "url": "http://localhost:8090/mcp" } } }

VS Code(Copilot)

添加到 .vscode/mcp.json:

{ "servers": { "agentdvr": { "type": "http", "url": "http://localhost:8090/mcp" } } }

Claude Desktop

Claude Desktop 应用程序无法直接调用您自己计算机上的服务器,因此它使用一个小扩展来为您完成此操作。下载 AgentDVR.mcpb,然后在 Claude Desktop 中打开"设置"-"扩展",将文件拖到页面上。它会在已启用状态下安装并连接到 http://localhost:8090/mcp;只有当您的服务器在另一台计算机上或已启用"保护 API"时,才点击"配置"。Claude 在每次工具首次使用时会请求权限 - 选择"始终允许"以停止提示。

Claude Desktop 对于每个不是从 Anthropic 自己的目录安装的扩展都会显示红色警告。这对此文件来说是正常的;该扩展仅与您提供的地址通信。

其他助手

任何支持 HTTP 上 MCP("可流式 HTTP")的客户端都可以使用相同的 URL。在助手的设置中查找"MCP 服务器"、"连接器"或"工具"。

Claude 网页版和移动应用,以及 ChatGPT,完全无法访问您自己网络上的服务器;它们使用云端点。

云端点

使用 iSpyConnect 订阅,您的服务器也可以通过以下地址访问:

https://www.ispyconnect.com/mcp

将该 URL 作为自定义连接器或 MCP 服务器添加到您的助手中(例如 claude.ai 和 Claude 应用中的设置 - 连接器,或 Cursor 中的等效选项)。助手会打开 iSpyConnect 登录页面;登录后,选择是否允许控制以及查看,然后点击允许。无需进行其他配置:与您的账户连接的每个启用了远程访问的 Agent DVR 服务器都是可用的,如果您拥有多个服务器,助手会询问您指的是哪一个。

在 ChatGPT(Plus 或 Pro)中,步骤如下:设置 - 安全和登录 - 启用开发者模式;然后设置 - 插件 - 浏览插件 - 添加。将其命名为 Agent DVR,输入上述 URL,选择OAuth并将客户端 ID 和密钥留空,然后登录并点击允许。如果插件页面显示"暂无可用的应用操作",请点击该页面上的刷新。

从 Gemini CLI 或 Claude Code 等命令行助手,登录分为两个步骤:添加服务器,然后授权它,浏览器将在同一页面上打开。

gemini mcp add -s user --transport http agentdvr-cloud https://www.ispyconnect.com/mcp
gemini
/mcp auth agentdvr-cloud

请求通过 Web 门户使用的同一中继传输,因此无需进行端口转发,您的服务器永远不会暴露到互联网。当您的订阅过期时,访问权限停止,每个助手的访问权限可随时从助手自己的连接器设置中移除。

您的服务器必须处于运行状态并连接到 iSpyConnect(本地用户界面中的挂锁图标显示远程连接状态)。服务器设置中的阻止外部访问也会阻止此端点。

ChatGPT:使用所有工具,包括快照和录像文件,但不显示提示词模板。改为按名称要求工作流("运行 morning_briefing 工作流"),助手会自行获取步骤。在摄像头的警报设置中启用描述警报(需要在服务器设置 - AI 下设置 AI 提供商)会为每个警报提供一份文字说明给每个助手,这对于会触发警报但不进行录制的摄像头很有用。

辅助工具的功能

助手可以使用一套专门构建的工具,而不是原始API,因此响应速度快且成本低:

  • 查看:列出服务器和设备(包括位置和状态),获取活动摘要(每个摄像头每小时的录制文件和警报,以及检测到的内容),在时间窗口内列出录制文件,将整个窗口一览无余地显示为帧网格,将摄像头在一天内显示为帧时间轴,从单个录制文件中采样帧,获取摄像头的实时快照,读取警报日志,并获取在网页界面中打开录制文件的链接。
  • 控制:通过 API 武装和解除服务器,应用配置文件,启用或禁用设备,更改录制模式,切换警报、探测器、物体检测、人脸识别和车牌识别的开关,向摄像头的查找列表中添加物体,将设备放入组,将云台摄像头移动到预设位置,以及其他状态更改。
  • 规则:用自然语言设置规则 - "如果在接下来6小时内出现一辆红色汽车,告诉我"、"如果Dave在周二下午2点到4点出现在门口,向我发出警报"。助手选择探测器事件(对象、人脸、车牌、声音、动作),仅对探测器无法识别的细节(如颜色或品牌)添加一个视觉AI问题来确认匹配。该规则作为普通操作存储在摄像头上,标记为助手生成的规则并附有你使用的句子,并自动过期;你可以随时在那里删除它。请查看助手规则和规则示例。需要Agent DVR 8.0.7或更高版本。
  • 其他一切:当没有专门工具适用时,助手可以调用的进一步读取和控制命令的目录(系统统计、设备的完整状态、PTZ预设等)。

助手无法删除录像文件或照片、更改设备或服务器配置、添加或移除设备,或重启服务器:无论使用哪个端点,这些命令都故意不提供。规则是它唯一可以创建的内容,所有规则都列在服务器设置 - 助手规则中。在云端点上,查看、控制和规则是您在登录页面上授予的单独权限,使用情况受速率限制以保护中继。每次触发时询问视觉AI问题的规则需要消耗一次AI调用(每小时有上限);助手在设置规则时会告诉你这一点。

示例提示词

  • "过去24小时内有人来过前门吗?给我看看。"
  • "今天早上有哪些鸟来过喂食器?"
  • "今天车道有多繁忙,什么时候?"
  • "给我看看后花园这一整天。什么时候开始下雨的?"
  • "我昨天有什么警报,其中有任何人员吗?"
  • "现在谁在前门?"
  • "哪些摄像头离线?"
  • "我们要出门了 - 用离家配置文件启动所有设备。"
  • "禁用家庭位置中的所有摄像头。"
  • "给我发送快递员的剪辑链接。"
  • "告诉我未来 6 小时内是否有人来前门。"
  • "提醒我如果今天车道上出现红色汽车。"
  • "让我知道周二下午 2 点到 4 点 Dave 第一次在门口的时候。"
  • "如果后门摄像头本周离线,请发电子邮件通知我。"
  • "当今天上午有人走进停车场时,告诉他们办公室在后面。"
  • "如果今晚有人在侧门,播放狗叫声并同时录制花园摄像头。"
  • "如果周日下午 6 点垃圾箱还没有放在路边,请发电子邮件给 [email protected]。"
  • "工作日上午 9 点到下午 5 点,告诉我是否有送货车停在店外。"
  • "告诉我今天是否有人在前门携带包裹。"
  • "每天中午拍摄花园的照片。"
  • "将车道、花园和大门摄像头放入一个名为"户外"的组。"
  • "在晚上11点到早上6点之间,只要任何室外摄像机上出现人员,就通知我。"
  • "每晚10点武装系统,并在系统解除武装时通知我。"
  • "哪些摄像头可以识别狗?你认识谁?门摄像头能说话吗?"
  • "你为我设置了什么,每一个现在都正常工作吗?"
  • "改为给我发电子邮件而不是车道摄像头的通知。"
  • "你设置了什么规则?暂停车道摄像头的规则并删除其余的。"

预设工作流

服务器还提供提示词模板,支持提示词的助手(Claude Desktop、Claude Code、Gemini CLI、Cursor 等)将其显示为斜杠命令或菜单中的选项。每一个都运行完整的多步骤工作流并报告结果:

  • morning_briefing - 摄像头从上个晚上以来拍摄到的内容:活动、警报、显著人员、车辆和动物,以及摄像头状态。
  • door_report - 谁来过门开关声摄像头,包括时间、每位访客的操作和每个剪辑的链接。
  • wildlife_report - 摄像头拍摄到哪些动物和鸟类,识别精度取决于录像的清晰度。
  • camera_health - 检查每个服务器和摄像头是否离线、已禁用、出错或摄像头是否没有活动。
  • day_in_review - 摄像头在一整天内的内容显示为帧时间轴,并附带场景如何变化的叙述。
  • set_up_a_rule - 从句子设置规则:检查你的摄像头能做什么,向你展示规则会做什么,然后在你确认后创建它。

助手规则

在助手规则权限下,助手可以根据一个句子为你建立规则:"告诉我接下来6小时内是否有人来到前门"。Agent DVR将其转换为摄像机上的普通操作,因此它在你的服务器上运行,就像你手动创建的规则一样。规则存在后,助手不再参与。

  • 它的位置:摄像机的操作列表中,标记为助手规则,旁边显示规则结束的日期,以及对于触发次数有限的规则,它已触发的次数。将鼠标悬停在标记上可以看到该规则来自的句子。可以在那里像编辑或删除任何其他操作一样编辑或删除它,或要求助手列出、暂停或删除其规则。服务器上的每条规则也都列在一个地方,即服务器设置 - 助手规则,显示规则来自的句子、它涵盖的内容、是否活跃、等待中、暂停或已完成,以及一个删除按钮。为一组摄像机或系统本身创建的规则仅在该处显示。没有权限更改服务器设置的用户可以查看列表,但不能从中删除。
  • 可以监视的内容:摄像头已经检测到的任何内容 - 运动、物体(人、汽车、狗等)、已识别的人脸、车牌、声音或摄像头离线。您也可以提问:"哪些摄像头可以发现狗?"、"您认识谁?"、"门摄像头能对话吗?"。
  • 发生时可以执行的操作:通过推送通知、电子邮件或短信通知您;通过摄像头大声说出一条消息("当有人走进停车场时,告诉他们办公室在后面")或通过摄像头播放声音(狗叫声);在另一台摄像头上录制;将 PTZ 摄像头移动到预设位置;调用 URL(网络钩子、智能插头);标记录制;应用配置文件。说话和播放声音需要设置了通话功能的摄像头,语音和短信需要已连接的账户,电子邮件需要在摄像头上启用消息功能 - 助手会检查这些条件并告诉您哪些摄像头符合条件。
  • 多个摄像头或系统本身:命名一个组、一个位置或"所有摄像头",你会得到一条跟踪它的规则 - "在夜间任何户外摄像头上有人时告诉我"也会覆盖你下个月添加到"户外"组的摄像头。组中无法检测你要求内容的摄像头根本不是信息来源,助手会告诉你有多少个摄像头可以。如果该组尚不存在,拥有控制权限的助手可以创建它:"将车道、花园和大门摄像头放在一个名为'户外'的组中"(需要 Agent DVR 8.0.7 或更高版本)。组与你在设备"常规"标签上设置的组相同,它们也决定了受限用户账户可以看到哪些设备,所以你放入一个组的摄像头对其账户不包含该组的受限用户是隐藏的。规则也可以属于服务器而不是摄像头:"每晚 10 点时系统布防"、"在工作日日落时应用夜间配置文件"、"系统已解除警报时告诉我"。系统规则按自己的时间表运行,所以没有摄像头的计划任务开关会影响它们;它们无法查看图片或通过摄像头讲话。
  • 时间:接下来的几个小时、直到某个日期和时间、在每周的时间段内("周二下午2点到4点之间")、在某一天、或每隔一段时间("每小时给花园拍一张照片"、"每15分钟检查一次大门是否关闭" - 如果需要可以限制在某个时间段内)。时间可以跟随太阳:根据摄像机位置的坐标,"天黑后"、"从日落到日出"、"日出前半小时"每天都会重新计算(没有设置纬度和经度的位置默认为早上6点和晚上6点)。"告诉我何时..."会通知您一次,之后规则暂停;如果想每次都收到通知,请说"每次"或"每当"。每次是指每次访问,而不是每秒钟有人站在那里:规则在再次通知前需要等待一分钟(对于规则说话、播放声音或录制的情况为半分钟),您也可以要求更长的间隔("每小时最多一次")。对于重复的时间段("工作日上午9点到下午5点,如果有货车停在外面请告诉我"),一次是指每次时间段打开时发生一次。询问"您设置了什么,它在工作吗?"可以查看每条规则及其是否激活、等待时间段、暂停或已完成。"让那个改为发送电子邮件给我"会改变一条规则。设定了时间限制的规则会在时间流逝后自动删除。
  • 探测器无法看到的详细信息:对于颜色、品牌、衣着等特征(如"一辆红色汽车"),规则每次探测器触发时都会向你的 AI 提供商(服务器设置 - AI 设置)提出一个关于图片的是/否问题,仅在答案为是时才会执行。这对于任何探测器都不知道的事物(如"花园里的一只袋鼠")也适用,使用动作作为触发器。它还可以在设定时间查看:"如果周日晚上 8 点时垃圾桶没有放出来,发短信给 Max"会在每个周日晚上 8 点检查摄像头,仅在答案为否时才会发送消息。如果 AI 无法判断(光线暗、视图被遮挡),则不会发送任何内容,因此请选择摄像头能够看到的时间。这是每个触发器一次 AI 调用,默认情况下每条规则限制为每小时 30 次,助手会在规则以这种方式工作时告诉你。如果没有设置 AI 提供商,助手会告诉你并说明如何添加一个(Google Gemini 有免费层级)- 它无法为你完成该步骤,因为这涉及 API 密钥 - 并提供不带问题的规则:任何汽车而不是红色汽车,你之后可以与之一起查看。精细细节,例如汽车的确切型号或摄像头切换到黑白夜视图像时的颜色,并不可靠。
  • 规则被拒绝的原因:Agent DVR 不会创建无法工作的规则,并一次性说出所有问题。如果没有以您给定的名称注册人脸,如果您想通过的摄像头没有通话通道,如果该摄像头上关闭了物体检测,如果您要求的内容不在其"查找"列表中,或者如果您对计划已关闭的摄像头请求时间段,助手会被告知需要更改的确切内容。有了控制权限后,它可以为您进行更改并重新尝试:打开检测器或计划,或将物体添加到摄像头的"查找"列表(在仅查找人和汽车的摄像头上添加"狗")。它只能添加摄像头的 AI 模型知道的物体。对于其他任何事物,它使用更广泛的物体并要求您的 AI 提供商检查细节。声音是例外:请自己将其添加到麦克风的列表中。
  • 尚不支持:计数("今天第二次")、尚未发生的事物("下午 6 点前未送达")和跨摄像头序列。

需要 Agent DVR 8.0.7 或更高版本。在云端点上,规则是登录页面上的单独权限,因此之前连接的助手会要求您重新批准访问。

规则示例

人们对摄像头的常见需求,作为向联网助手说的句子、Agent DVR 设置的内容,以及它需要的东西。所有这些都是助手规则:它们在你的服务器上运行,不需要连接助手也能继续工作。需要 Agent DVR 8.0.7 或更高版本和规则权限。

  • 当某种颜色的汽车到达时获得警报。说:"如果在接下来的 6 小时内有红色汽车出现在车道上,请告诉我。"摄像头的物体检测对每辆车都触发,你的 AI 提供商被询问该汽车是否为红色,当答案第一次为肯定时你会收到一条推送通知。6 小时后规则自动删除。需要打开物体检测,且摄像头的查找列表中包含"汽车"(助手可以使用控制权限执行两者),以及服务器设置 - AI 设置中的 AI 提供商。
  • 了解何时有特定的人到达。说:"如果周二下午 2 点到 4 点之间 Dave 在门口,请告诉我一次。"人脸识别根据名字触发,你会被通知一次。需要为摄像头打开人脸识别,且已注册该名字的人脸 - 如果没有 Dave,规则会被拒绝并显示已注册的名字。
  • 在设定时间前了解是否已完成某项任务。说:"如果周日晚上 6 点前垃圾桶还没放到路边,请给我发短信。"每周日晚上 6 点,摄像头的图片会被发送到你的 AI 提供商并提出一个是或否问题,只有当答案为否时你才会收到消息。如果 AI 无法判断(太暗、视线被遮挡),则不发送任何内容,所以请选择摄像头能看到的时间。需要 AI 提供商和已连接的短信账户。
  • 在营业时间内监视送货。说:"工作日 9 点到 5 点,如果送货车停在店铺外,请告诉我。"时间窗口每天打开一次,而不是永远打开一次。如果你想要每次都通知,请说"每一次"。需要打开摄像头的计划任务。
  • 发现探测器不认识的东西。说:"告诉我花园里是否有袋鼠。"或"告诉我前门是否有人携带包裹。"移动侦测或人员触发规则,AI 提供商回答关于图片的问题。每次触发一次 AI 调用,每条规则限制为每小时 30 次。
  • 与到达的人对讲。说:"当任何人今早走进停车场时,告诉他们办公室在后面。"消息通过摄像头的扬声器用文字转语音播放。需要已设置对讲的摄像头和已连接的账户。
  • 吓走夜间访客。说:"如果今晚有人在侧门,播放狗叫声并录制花园摄像头。"通过摄像头播放声音文件并启动另一台摄像头录制,最多每 30 秒一次。需要已设置对讲的摄像头。
  • 覆盖所有室外摄像头的夜间监视。说:"将车道、花园和大门摄像头分组为'Outside'。"然后"从日落到日出,如果 Outside 组中的任何摄像头出现人员,请告诉我。"一条规则跟随该组,包括你之后添加的摄像头,日落由位置的坐标每天计算。来自每台摄像头的通知最多每分钟一条。
  • 了解摄像头何时停止工作。说:"如果后面门摄像头在本周离线,请给我发电子邮件。"需要在摄像头上启用消息传递。
  • 按时间表进行武装和解除警报,并了解何时更改。说:"每晚 10 点武装系统,并告诉我何时已解除警报。"这些是服务器本身的规则,所以没有摄像头的计划任务会影响它们。
  • 每天录制一张照片。说:"每天中午拍一张花园的照片。"

要查看或更改已设置的内容,问"你设置了什么规则,每条规则都在正常工作吗?"、"将车道的规则改为给我发电子邮件"、"暂停送货车规则",或打开服务器设置 - 助手规则。如果请求无法完成,助手会说明原因和需要更改的内容;有关限制,请参阅助手规则。

故障排除

  • 助手无法连接到本地端点:在浏览器中检查 URL - http://localhost:8090/mcp 应该有响应(错误消息可以接受;"连接被拒绝"则不行)。确保端口与"服务器设置"中的"本地服务器"匹配,并且端点在那里已启用。
  • 401 未授权:保护 API 已启用,所以助手必须发送管理员用户的凭证,或者你是从网络外部连接的。
  • 403 禁止访问:在没有许可证的情况下从网络外部连接。改用 云端点。
  • 404 未找到:端点在"服务器设置"中已关闭,或服务器版本早于 8.0.3。
  • 云端点显示服务器离线:服务器未连接到 iSpyConnect。检查本地 UI 中的挂锁图标,并确保"阻止外部访问"已关闭。
  • 查看助手正在执行的操作:在"服务器设置"中将"记录日志"设置为调试,然后从"服务器菜单"打开日志。在本地端点,每个请求和工具调用都会使用"MCP"前缀记录,包括参数和所需时间。通过云端点,工具在 iSpyConnect.com 上运行,服务器只能看到它们发送的各个命令,这些命令使用"RelayApi"前缀记录。